szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfa folyamat! 1. teszt tervez s! c lok,...

26
Szoftver tesztelés a gyakorlatban 3 Speciális tesztelési helyzetek A tesztelési folyamat

Upload: others

Post on 09-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Szoftver tesztelés a gyakorlatban 3

Speciális tesztelési helyzetek

A tesztelési folyamat

Page 2: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Tevékenységek! El!készítés

! tervezés! tesztkörnyezet kialakítása! teszteset tervezés

! Tesztelés lezárás! tesztelési folyamat nyomonkövetése! tesztelés értékelése! dokumentálás

3

Általános tesztelési elvek! Tesztelési nehézségek

! Kimerít! tesztelés lehetlen! Korai tesztelés kívánatos! Hibák eloszlása nem egyenletes a

szoftverben! Pareto-elv

! Immunissá válás a tesztesetekre! folytonos teszt eset fejlesztés

! A tesztelési gyakorlat kontextus függ!! pl. beágyazott bizt. krit. sw, web-alk. stb.

4

Page 3: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

A folyamat! 1. Teszt tervezés

! célok, stratégia, kiterjedés, technika, személyzet

! 2. Teszt analízis! tesztesetek el!állítása, teszt környezet

létrehozása

! 3. Teszt implementálás, végrehajtás! 4. Lezárási kritérium értékelése! 5. Teszt lezárás

5

Független tesztelés! A kód írója! Más személy a fejleszt! csapatból! Más személy másik szervezeti

egységb!l! Küls! szervezet

6

Page 4: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Tesztel! személyzet! Nem szorosan a teszteléshez

kapcsolódó! projekt menedzser! min!ségbiztosítási menedzser! fejleszt!k! egyéb specialisták! felhasználók

! Tesztel! csapat! tesztelés vezet!! teszter

7

Tesztelési megközelítések! Kockázat alapú! Sztochasztikus! Szabvány alapú! Heurisztikus

! Stratégia! kockázat! tesztel!k képzettsége! szabályozási háttér! a termék jellege

8

Page 5: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Teszt követés! Visszacsatolás a tesztelési folyamatról

! manuális vagy automatikus adatgy"jtés

! Magas szint" teszt metrikák! tervezett és elvégzett tesztek! teszteset állapotok! hiba statisztikák! lefedési metrikák! határid!k! költségek

9

Teszt követés (folyt.)! vizualizálás

10

ISTQB CTFL – © Department of Software Engineering, Univ. Szeged 188

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Dep

art

men

t o

f S

oft

wa

re E

ngin

eeri

ng

Visualization

!Dashboard

! “everything on one page”

– More important metrics and other information

visualized on one page

!Graphical visualization

! Easily comprehensible

ISTQB CTFL – © Department of Software Engineering, Univ. Szeged 189

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Dep

art

men

t o

f S

oft

wa

re E

ngin

eeri

ng

Visualization

0

10

20

30

40

50

60

70

Number

0

20

40

60

80

100

120

New

In test

Failed

Planned executions

Actual executions

New 5 15 62

In test 2 13 20

Failed 1 5 6

Planned executions 2 20 50 60 80 100

Actual executions 5 20 82

14th May 21st May 28th May 4th July 11th July 18th July

Page 6: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Rendszer tesztelés

12

Rendszer tesztelés! Magas szint" tesztelés

! cél -> követelmény spec. transzformáció hibáinak felderítése

! elvárásoknak való megfelelés (validáció)! teljesítmény demonstrálás (!?)! funkcionális néz!pont

! nehéz a tesztesetek származtatása! célok elemzése! felhasználói dokumentáció

Page 7: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

13

Magas szint" tesztek! Szolgáltatás tesztelés! Mennyiségi tesztelés! Löket terheléses tesztelés (Stressz-

tesztelés! Használhatósági tesztelés! Biztonsági tesztelés! Teljesítménytesztelés! Konfigurációtesztelés! Dokumentációtesztelés

14

Komponens interakció tesztelés! Különféle komponensek közötti

interakciók! pl. web alkalmazás

! böngész!k! operációs rendszerek! hálózati összeköttetések! printer konfigurációk

! Kombinatórikai megközelítés! túl sok teszt helyzet! teljes n-way interakció út tesztelés! interakció páronkénti tesztelés

Page 8: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

15

Alacsony szint" interakció tesztelés

! Követelmény spec. alap konstrukciók! adatok! tevékenységek, akciók! I/O eszközök (portok)! események! szálak

Adat

Esemény

Eszköz

Tevékenység

Szál

input

output

input

output

fellépés

végrehajtás

16

Alacsony szint" interakció tesztelés (folyt.)! Modellezés az alap konstrukciókkal

Adat

Esemény

Eszköz

Tevékenység

Szál

viselkedési modell

szerkezeti modell

kontextus modell

Page 9: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

17

Alacsony szint" interakció tesztelés (folyt.)! Modellezési eszközök

! állapotgépek (FSM)! menu és esemény vezérelt rendszerek

! Petri hálók! konkurrens rendszerek

! M"ködési szálak azonosítása! Tesztelés FSM szálak mentén

! viselkedési megközelítés! Tesztelés port, esemény, vagy adat

szálak mentén! funkcionális megközelítés

18

Alacsony szint" interakció tesztelés (folyt.)! Interakció típusok

! Statikus egy processzoros! adatok! propozíciós logika

! Statikus több processzoros! statikus elosztott interakció

! Dinamikus egy processzoros! adatok, események, szálak! temporális logika! Event Driven Petri Net

! Dinamikus több processzoros! konkurrencia

Page 10: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Automatizált tesztelés

20

Automatizált tesztelés hatásai! Általában több különböz! eszköz

szükséges! Tesztelési ráfordítás nem feltétlenül

csökken! Tesztelési id! nem csökken! Egy “mini” fejlesztési folyamat jelenik

meg! Nem minden teszt automatizálható! Képzés szükséges

Page 11: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Automatizált tesztelés hatásai (folyt.)

21

Köl

tség

ek

Tesztelés mennyisége

Automatizált

Manuális

Eszközök bevezetése! Szempontok

! tesztelési folyamat érettsége! eszköz alternatívák

! az eszköz szolgáltatásai! az eszköz szállítója, támogatási háttere

! Költségek! ár, licensz díjak, támogatás! bevezetési költségek

" implementáció, testreszabás" képzés

22

Page 12: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

23

Modell alapú tesztautomatizálás! Célok

! költségcsökkentés! követelmény hiányosságok felderítése! átfogóbb tesztelés

! Gyakorlati megoldás! interfész vezérelt elemzés, teszt készítés

24

Modell alapú tesztautomatizálás

Követelmények

Interfész + Viselkedés modellek

Teszt szkript

generátor

Teszt szkript leképezések

Tesztvektor generátor

Rendszer

Teszt eredm.

Teszt szkript

Komponens interfészek

Teszt mérnök

(modellez!)

Tervez!/

ProgramozóKövetelmény

mérnök

Teszt mérnök

(automatizálás)

Teszt végrehajtás

Page 13: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

25

Modell alapú tesztautomatizálás! Modellezési perspektívák

! Követelmény specifikáció! rendszer <-> környezet interfészek

! Funkció specifikáció! rendszeren belüli interfészek

! Tervezési specifikáció! komponens definíciók

26

Modell alapú tesztautomatizálás! Nehézségek

! Modell elemek vs. szoftver-komponensek! Nem nyílvános interfészek! Komponens csatolások

! Alkalmazhatóság! világos fejlesztési helyzet

! gyorsan stabilizálódó interfészek

! modellek iteratív fejlesztése! biztonság kritikus rendszerek

Page 14: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

27

Automatikus tesztel! eszközök! Tesztel! eszköz ismerete

! kompatibilitás a fejlesztési környezettel

! Automatizálható tesztek! Kereskedelmi termékek

! szükséges funkcionalitás vs. túl sok funkció

! Speciálisan fejlesztett megoldások! létrehozási költségek

28

Eszköz típusok! Teszt-eset generátor! Lefedettség elemz! és kód

bem"szerez!! Memória szivárgás detektorok! Használhatósági vizsgálati eszközök! Teszt management eszközök! Hálózati tesztel! eszközök! GUI teszt eszközök! Teljesítmény, stressz tesztel! eszközök

Page 15: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

29

Speciálisan fejlesztett eszközök! Fejlesztési okok

! Operációs rendszer inkompatibilitás! Alkalmazás inkompatibilitás! Speciális tesztelési igény

! A fejlesztés menete! Er!forrásigény, fejlesztési korlátok

meghatározása! Teszteszköz fejlesztése része a rendszer

fejlesztési folyamatnak,! de önnálló célként kezelend!

30

Technológiák automatikus teszt eszközök fejlesztésére! shell scriptek! script nyelvek: Perl, Python! magas szint" programozási nyelvek! COTS integrálás

! adatbázis kezel!k! sorkezel!k! XML editorok, parszerek! makro rögzít!k! verzió management eszközök! összehasonlító eszközök

Page 16: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

31

Spec. fejlesztés" tesztkörnyezet példa struktúra

Test Automation Framework

EquipmentUnder Test

Queue Manager

AnalysisModule

Test Management

ModuleWeb Tier

Test Case DB

Test Result

DB

Test Case Version

Management Module

Equipment Adapter

Control PC

Control PC

32

Tesztel! eszközök kiválasztása! Meghatározó szempontok

! szoftver technológiai, fejlesztési környezet! alkalmazott tesztelési módszertan! támogatandó tesztelési tevékenység! alkalmazott szoftver architektúra

! adatbázisok, middleware, GUI, OR

! egy vagy több eszköz?! szoftver által kezelt adatok

verifikálhatósága! teszt típusok

Page 17: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

33

Tesztkörnyezetek (pl.)! sgi Tester! teszt paraméterek beállítása

34

Tesztkörnyezetek (pl.)! lefedettségi adatok

Page 18: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

35

Tesztkörnyezetek (pl.)! WDTest

T# 512# 860# 753# 47843# "Saj·tgÈp-CabinetWClass-717-653-0-0-"T# 512# 861# 753# 47869# "Saj·tgÈp-CabinetWClass-718-653-0-0-"T# 512# 863# 753# 47964# "Saj·tgÈp-CabinetWClass-720-653-0-0-"T# 512# 864# 753# 47990# "Saj·tgÈp-CabinetWClass-721-653-0-0-"T# 512# 864# 752# 48016# "Saj·tgÈp-CabinetWClass-721-652-0-0-"T# 512# 866# 752# 48065# "Saj·tgÈp-CabinetWClass-723-652-0-0-"T# 512# 867# 752# 48114# "Saj·tgÈp-CabinetWClass-724-652-0-0-"T# 516# 867# 752# 48277# "-Shell_TrayWnd-865-8-0-0--TrayNotifyWnd-8-7-0-0-"T# 517# 867# 752# 48371# "-Shell_TrayWnd-865-8-0-0--TrayNotifyWnd-8-7-0-0-"T# 512# 867# 752# 48471# "WinVNC Tray Icon-WinVNC Tray Icon-819-685-0-0-"T# 512# 867# 752# 48573# "WinVNC Tray Icon-WinVNC Tray Icon-819-685-0-0-"T# 512# 869# 750# 48878# "WinVNC Tray Icon-WinVNC Tray Icon-821-683-0-0-"T# 512# 885# 742# 48904# "WinVNC Tray Icon-WinVNC Tray Icon-837-675-0-0-"T# 512# 897# 740# 48936# "WinVNC Tray Icon-WinVNC Tray Icon-849-673-0-0-"T# 512# 903# 739# 48976# "WinVNC Tray Icon-WinVNC Tray Icon-855-672-0-0-"

Teszt script (macro) részlet

36

Tesztkörnyezetek (pl.)! IPL Cantata++ Studio

Technical BriefV4.1!

!

Cantata++ has been designed around the requirements of the C/C++ languages to produce a tool which allows developers to efficiently perform unit and integration testing. The product offers high productivity and a unique set of testing, coverage analysis and static analysis features.

Major Features

! Unit and Integration Testing: on both host and target platforms

! Integrated Coverage

Analysis

! Full support for: ANSI C, ISO C++ and EC++

! GUI: Graphical results analysis and Wizard-driven test preparation

! Object Oriented: OO-aware testing and coverage analysis

! Stubbing and Wrapping: to simulate and control external interfaces

! Static analysis: code

complexity and size metrics

Unit and Integration Testing

! Wizard-driven Test Script generation step-by-step facilities for creating a complete test driver environment.

! Flexible Test Build/Run from inside Cantata++ or via developer’s compiler IDE.

! Cross-Platform Execution of tests from development environment to target.

! Intuitive Test Directives for quickly developing structured repeatable tests yielding clear and unambiguous results.

! Checks for all standard and user-defined data types.

The Test Script Wizards accelerate the test generation process.

"#

Developed under the control of IPL’s Quality Management System which is certified to ISO 9001:2000 (TickIT)

Test and Coverage results in ! Studio

! Exception verification to check for expected and unexpected exceptions.

! White Box and Black Box testing techniques are fully supported.

! Stubbing - programmable versions of external software, with call sequence validation.

! Automated Wrapping provides full control over external interfaces, allowing use of real external objects in integration testing.

! Test Case Re-use for inherited classes and template instantiation.

! Project Level Tree View of test pass/fail results with drill-down for easy navigation to individual tests.

! Detailed Test Diagnostics for all checks of expected against actual results.

! Printable Coverage Listings of tested / untested source code.

! Configurable XML reports with summary and full test details.

Page 19: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Web teszt környezetek

37

Teszt rögzítés

Teszt visszajátszás

Webböngész! WebszerverTeszteszköz

(proxy)

Script

WebszerverTeszteszköz

(proxy)

Teszteszköz(script editor)

Teszt szerkesztés

Web teszt környezetek (pl.)

38

web2test

Page 20: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Statikus kód elemz! eszközök! Alkalmazás

! szintaktikai hibák! kódólási szabványtól való eltérések! elérhetetlen kód! nem inicializált / nem használt változók! hordozhatósági problémák! kód metrika gy"jtés

! méret! komplexitás! függ!ségek

39

Statikus kód elemzés (pl.)

40

Page 21: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

Tesztelés grafikus felhasználói felületeken keresztül

42

Probléma! események (tér és id!beli) képezik a

bemenetet! eseményvezérelt rendszerek

! nagy és komplex eseménytér! felhasználói beavatkozások lehetséges

száma nagy! tetsz!leges id!zítés és esemény sorozatok! nagy kódkomplexitás

! a kimenet fogalmának értelmezése nem egyszer"

Page 22: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

43

Következmények! Kézzel végrehajtott tesztelés problémás

! nem dokumentált! nehezen reprodukálható! de hatékony!

! Tesztautomatizálás költséges! rögzített (capture tool) tesztek nem alkalmasak

automatizálásra -> teszt fejlesztés! Gyakran csak könnyen végrehajtható teszteket

automatizálnak! Nehéz a tesztesetek karbantartása

! komponensek helye, mérete változik! felület nyelve változik! rögzit! eszköz nehezen módosítható scriptet készit

44

Rögzít!/visszajátszó eszközök! Fix (rögzített) adatértékek

! input értékek! képerny! koordináták! ablak címkék! id!k!

! Nem moduláris scriptek! Nincsenek szabványok

Page 23: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

45

Helyes megközelítés! Tudatosítani a tesztfejlesztés költségeit

! tervezés! fejlesztés

! Adatvezérelt teszt architektúra használata! teszt végrehajtó kódtól elkülönített paraméter

állományok! komplex tesztesetek szétbontása résztesztekre

! Keretrendszer jelleg" tesztkörnyezet használata! tesztelt felülett!l elválasztott tesztfüggvény-

könyvtár (teszt script független )! custom control vezérlés! elemi és komplex függvények létrehozása! struktúrált rögzít!-visszajátszó környezet

46

Helyes megközelítés (folyt.)! Struktúrált, moduláris UI navigáció

! navigációs függvények külön modulba! UI componensek elérése! billenty" használat szimulálása! objektum nevek, egyedi ID-k! esetleg címkék, x,y koordináták! GUI map adatbázis

! Különböz! ablakkezel!khöz tesztelési függvény könyvtárak! pl. WinRunner

Page 24: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

47

Test harness rendszerek! Magas szint" programozási nyelven

fejlesztve! Illeszt! tervezési minta alkalmazása

! többféle rendszer tesztelhet!

! Felhasználói felület megkerülése! gyorsabb tesztelés! MVC!

! Tesztesetek leírása! Kiinduló pont beállítás

48

GUI test harness pl.! Mercury WinRunner

Page 25: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

49

Véletlen tesztgenerálás! Palm OS Emulator Gremlins

50

Tesztelés standard script interfészen keresztül! Perl, VB + COM! AppleScript

Program kód

GUIScript

interfész

Teszt script

Page 26: Szoftver tesztel s a gyakorlatban 3heckenas/okt/spectest.pdfA folyamat! 1. Teszt tervez s! c lok, strat gia, kiterjed s, technika, szem lyzet! 2. Teszt anal zis! tesztesetek el ! ll

51

Tesztelés virtuális perifériákon keresztül! Eggplant + VNC

! image capturing + scriptingImage Capture Technology Drives

the Remote Application

Scripts are generated

in “Capture Mode”

Menu, tab, text or

other UI element is

selected

The command is

executed

The image is saved

Line of script is written

for you

The SenseTalk code for the command is added to the Script.3.

52

AppleScript és tesztelés! System Events! Mac OS X accessibility interface! UI Element inspector! AppleScript Studio

Program kód

GUIScript

interfész

Teszt script