Tesztelés
10. előadás
SZOFTVERTECHNOLÓGIA © Bánsághi Anna
[email protected]
10. ELŐADÁS - TESZTELÉS
© Bánsághi Anna
1 of 62
Tesztelés
10. előadás
TEMATIKA I. SZOFTVERTECHNOLÓGIA ALTERÜLETEI II. KÖVETELMÉNY MENEDZSMENT III. RENDSZERMODELLEK IV. RENDSZERARCHITEKTÚRÁK V. RENDSZERTERVEZÉS VI. VERIFIKÁCIÓ ÉS VALIDÁCIÓ VII. MINŐSÉGBIZTOSÍTÁS VIII. TESZTELÉS
© Bánsághi Anna
2 of 62
Tesztelés
10. előadás
VIII. TESZTELÉS 1. A tesztelés céljai 2. A tesztelési folyamat 3. Tesztelési szintek egységteszt integrációs teszt rendszer teszt elfogadási teszt 4. objektumorientált tesztelés 5. teszteszközök
© Bánsághi Anna
3 of 62
Tesztelés
10. előadás
1. A TESZTELÉS CÉLJAI bizonyosságot szerezni a rendszer minőségi állapotáról információ a döntéshozáshoz (új verzió kibocsátása avagy sem) hibák keresése hibák megakadályozása
© Bánsághi Anna
4 of 62
Tesztelés
10. előadás
MOTTÓK Dijkstra A tesztelés a hibák jelenlétét, és nem a hibamentességet tudja kimutatni Hoare A tesztelés egy induktív bizonyítás része: Ha a program jól működik egy adott tesztadatra, akkor várhatóan hasonló adatokra is jól működik majd
© Bánsághi Anna
5 of 62
Tesztelés
10. előadás
A TESZTELÉS 7 ALAPELVE 1. csak a hibák meglétét tudja kimutatni 2. a kimerítő tesztelés legtöbbször lehetetlen (Hány teszt kellene egy 3 integer paraméterű függvényhez?) 3. tesztelés már a korai fázisokban szükséges 4. hibák csomósodása (Pareto elv), azaz a komponensek 20%-ban bukkan elő a hibák 80%-a 5. rovarirtó paradoxon, azaz a teszt újra és újra futtatva egyre kevésbé hatékony, illetve minden módszer után marad még valami más típusú hiba 6. a tesztelés (eredményessége) kontextus függő 7. a hibák hiányából fakadó tévedés, azaz a hibamentes tesztlefutás még nem jelent jó rendszert
© Bánsághi Anna
6 of 62
Tesztelés
10. előadás
MI A TESZTELÉS? nem hibakeresés (debugging), mert a hibakeresés a hibák okainak felderítési és javítási folyamata, míg a tesztelés a szoftver hibáinak szisztematikus felderítése kétféle típusa van statikus, amikor a kód nem fut dinamikus, amikor a kód tesztadatokkal fut a tesztelés egy folyamat, hasonlóan a fejlesztési folyamathoz a tesztelés technikák gyűjteménye
© Bánsághi Anna
7 of 62
Tesztelés
10. előadás
ALAPFOGALMAK
test case (teszteset) bemeneti értékek és végrehajtási előfeltételek halmaza várt eredmények és végrehajtási utófeltételek halmaza test suite (tesztkészlet) együtt végrehajtandó tesztesetek gyűjteménye Software Under Test (SUT) a tesztelendő szoftver egység test oracle (orákulum) várt eredmények származtatása, összehasonlítása a teszt kimenetével (automatizált) verdict (eredmény) sikeres (pass), sikertelen (fail), nem meggyőző (inconclusive), hiba (error)
© Bánsághi Anna
8 of 62
Tesztelés
10. előadás
ALAPVETŐ PROBLÉMÁK teszt kiválasztás Milyen teszteseteket használjunk? tesztadat kiválasztás Milyen tesztadatokat használjunk? kilépési feltétel Meddig teszteljünk? Amíg a specifikációt, a kódot, a hibákat lefedtük? jó orákulum Hogyan építsünk jó orákulumot? prioritás Mely kódrészeket teszteljük? (szembetűnő helyeket, legvalószínűbb hibaforrásokat, leggyakrabban változó komponenseket, a múltban problémás részeket)
© Bánsághi Anna
9 of 62
Tesztelés
10. előadás
2. A TESZTELÉSI FOLYAMAT stratégiai terv (planning) és kontroll elemzés és tervezés (design) implementáció és végrehajtás kiértékelés, kilépési feltétel, riportolás tesztlezáró tevékenységek
© Bánsághi Anna
10 of 62
Tesztelés
10. előadás
STRATÉGIAI TERV (PLANNING) ÉS KONTROLL Milyen metodológiát?
test-driven development
Milyen típusú teszteket?
modul, rendszer
Milyen teszteszközöket?
JUnit, GUI Tester
Ki fogja használni?
fejlesztő és teszt csapat
Milyen kilépési feltétellel?
90% utasítás lefedettség, minden használati eset
Milyen dokumentáció kell?
© Bánsághi Anna
11 of 62
Tesztelés
10. előadás
TESZTTERV (TEST PLAN) teszt stratégia leképezése az aktuális projektre tesztelési célok, irányelvek, szervezeti környezet feladatok projekt szerepekhez rendelése tesztelési fázisok definiálása fázisok hossza kilépési feltétel tesztelés minőségét hogyan fogjuk mérni
© Bánsághi Anna
12 of 62
Tesztelés
10. előadás
ELEMZÉS ÉS TERVEZÉS (DESIGN) még mielőtt elkezdenénk tesztkódot írni, szisztematikusan feltérképezzük, hogy mit tesztelünk, megtervezzük és specifikáljuk a teszteseteket
TESZTESET FELÉPÍTÉSE teszteset célja kiindulási környezet teszteset lépései, teszt adatok elvárt kimenet
© Bánsághi Anna
13 of 62
Tesztelés
10. előadás
IMPLEMENTÁCIÓ ÉS VÉGREHAJTÁS manuális vagy automatikus, mert van, amit nem éri meg automatizálni automatikus esetben a teszt a build folyamat része kimenetek naplózása (idő, teszt környezet, komponensek verziói, rendszer kimenet)
© Bánsághi Anna
14 of 62
Tesztelés
10. előadás
KIÉRTÉKELÉS, KILÉPÉSI FELTÉTEL, RIPORTOLÁS incidensek rögzítése döntés a tesztelés folytatásáról
TESZTLEZÁRÓ TEVÉKENYSÉGEK tipikusan mérföldkövenként tapasztalat összegyűjtése teszt eszközök, automatikus tesztek lezárása
© Bánsághi Anna
15 of 62
Tesztelés
10. előadás
3. TESZTELÉSI SZINTEK egységteszt (unit test) modul (integrációs) teszt (integration test) rendszerteszt (system test) elfogadási teszt (acceptance test)
© Bánsághi Anna
16 of 62
Tesztelés
10. előadás
A TESZTELÉS SZINTJEI 1. egységteszt a fejlesztés alatt álló alkalmazás egységeinek tesztelése könnyen automatizálható általában a fejlesztő készíti a teszteket a kódolás előtt a korai tesztelés alapelve szerint integrációs teszt a modullá integrált egységek tesztelése a modulok együttműködésének (interfészek) tesztelése a tesztelő saját kódjával teszteli a GUI nélküli modulokat könnyen automatizálható
© Bánsághi Anna
17 of 62
Tesztelés
10. előadás
A TESZTELÉS SZINTJEI 2. rendszerteszt a GUI elérhető funkcióinak tesztelése a specifikációnak megfelelő működés vizsgálata biztonsági, terheléses és stressztesztelés a tesztelő végzi elfogadási teszt optimális esetben közös, megrendelői és fejlesztői feladat cél, hogy a végfelhasználót támogassa az új szoftver elfogadásában az éles vagy ahhoz nagyon hasonló környezetben zajlik
© Bánsághi Anna
18 of 62
Tesztelés
10. előadás
EGYSÉGTESZT specifikáció alapú (fekete doboz) technikák struktúra alapú (fehér doboz) technikák tapasztalat alapú technikák hibatípus alapú technikák valószínűségen alapuló technikák
© Bánsághi Anna
19 of 62
Tesztelés
10. előadás
TESZTESETEK SZÁRMAZTATÁSA specifikáció alapú (fekete doboz) a rendszer vagy a komponens specifikációjának elemzésével struktúra alapú (fehér doboz) a rendszer vagy a komponens belső szerkezetének elemzésével tapasztalat alapú hasonló rendszerek vagy általános tesztelési tapasztalattal bíró emberek készítik hibatípus alapú az adott hibatípus szabja meg a teszteseteket valószínűségen alapuló a teszteseteket valószínűségi (véletlenszerű vagy statisztikai) módon származtatjuk
© Bánsághi Anna
20 of 62
Tesztelés
10. előadás
SPECIFIKÁCIÓ ALAPÚ (FEKETE DOBOZ) TECHNIKÁK a programot fekete doboznak tekintjük, a tesztesetek a programspecifikáció alapján készülnek nem foglalkozik a program implementációjával a tesztek tervezése a szoftverfolyamat korai szakaszában megkezdődhet (egyes agilis módszereknél előbb, mint a program tervezése!) az előreláthatóan hibát okozó tesztesetek tervezéséhez szakterületi ismeretekre van szükség
© Bánsághi Anna
21 of 62
Tesztelés
© Bánsághi Anna
10. előadás
22 of 62
Tesztelés
10. előadás
SPECIFIKÁCIÓ ALAPÚ (FEKETE DOBOZ) TECHNIKÁK ekvivalencia partícionálás a hasonló tesztfeltételek csoportosítása és hasonló módon való kezelése határérték elemzés a beazonosított partíciók határértékeinek tesztelése döntési tábla különféle feltétel kombinációk tesztelése
© Bánsághi Anna
23 of 62
Tesztelés
10. előadás
ERŐS NORMÁL EKVIVALENCIA PARTÍCIONÁLÁS a valid input halmazt valamely szempont alapján ekvivalens partíciókra osztjuk, és ezen partíciókból egy-egy reprezentáns adattal tesztelünk
© Bánsághi Anna
24 of 62
Tesztelés
10. előadás
GYENGE ROBUSZTUS EKVIVALENCIA PARTÍCIONÁLÁS mind a valid, mind az invalid input halmazt partícionáljuk, és néhány partícióbeli reprezentással tesztelünk
© Bánsághi Anna
25 of 62
Tesztelés
10. előadás
ERŐS ROBUSZTUS EKVIVALENCIA PARTÍCIONÁLÁS mind a valid, mind az invalid input halmazt partícionáljuk, és az összes partícióbeli reprezentással tesztelünk
© Bánsághi Anna
26 of 62
Tesztelés
10. előadás
HATÁRÉRTÉK ELEMZÉS a programozói hibák a határértékek körül csomósodnak
© Bánsághi Anna
27 of 62
Tesztelés
ROBUSZTUS HATÁRÉRTÉK EL‐ EMZÉS
© Bánsághi Anna
10. előadás
LEGROSSAZBB ESET HATÁRÉRTÉK ELEMZÉS
28 of 62
Tesztelés
10. előadás
ROBUSZTUS LEGROSSZABB ESET HATÁRÉRTÉK ELEMZÉS
© Bánsághi Anna
29 of 62
Tesztelés
© Bánsághi Anna
10. előadás
30 of 62
Tesztelés
10. előadás
DÖNTÉSI TÁBLA logikai kifejezéseket tesztelünk megadva, hogy adott esetben milyen tevékenység következhet be
© Bánsághi Anna
31 of 62
Tesztelés
10. előadás
DÖNTÉSI TÁBLA PÉLDA
© Bánsághi Anna
32 of 62
Tesztelés
10. előadás
STRUKTÚRA ALAPÚ (FEHÉR DOBOZ) TECHNIKÁK a tesztek a program struktúrájának, implementációjának ismeretében készülnek a struktúra és a kód ismeretében újabb ekvivalencia osztályok definiálhatók a tesztelő a tesztesetek készítésekor elemzi a kódot, hogy biztosítsa minden utasítás legalább egyszeri végrehajtását (az összes lehetséges út-kombináció tesztelésére nincs reális lehetőség) a kód lefedettség azt méri, hogy milyen mértékben vannak tesztelve az utasítások, elágazások, ciklusok
© Bánsághi Anna
33 of 62
Tesztelés
10. előadás
STRUKTÚRA ALAPÚ (FEHÉR DOBOZ) TECHNIKÁK utasítás tesztelés a program vezérlési gráfját tekintve az összes futtatható utasítást teszteljük döntési ág tesztelés minden döntési ágat tesztelünk útvonal tesztelés minden független útvonalat tesztelünk, így legalább egyszer biztosan sor kerül minden utasítás végrehajtására, és minden feltételes utasítás igaz és hamis ágának végrahajtására
© Bánsághi Anna
34 of 62
Tesztelés
10. előadás
UTASÍTÁS TESZTELÉS 100%-os utasítás lefedettséghez 1 teszteset szükséges
© Bánsághi Anna
35 of 62
Tesztelés
10. előadás
DÖNTÉSI ÁG TESZTELÉS 100%-os döntési ág lefedettséghez 3 teszteset szükséges
© Bánsághi Anna
36 of 62
Tesztelés
10. előadás
ÚTVONAL TESZTELÉS két út független, ha legalább egy élben vagy egy csomópontban különböznek hány független út van egy kódban? McCabe ciklomatikus komplexitás megmondja: CC = élek száma - csomópontok száma +2 a CC megmutatja, hogy hány tesztet kellene végrehajtani az összes független út végrehajtásához, vagyis minden vezérlő utasítás legalább egyszeri végrehajtásához lehetetlen a független utak összes kombinációját végrehajtani
© Bánsághi Anna
37 of 62
Tesztelés
10. előadás
ÚTVONAL TESZTELÉS 100%-os útvonal lefedettséghez 7 - 6 + 2 teszteset szükséges
© Bánsághi Anna
38 of 62
Tesztelés
10. előadás
INTEGRÁCIÓS TESZT teljes rendszerek vagy alrendszerek tesztelése, amelyek előzőleg már tesztelt komponensekből állnak a komponensek együttműködéséből származó hibák feltárására szolgál az integrációs teszt fekete doboz tesztelés, a tesztek a specifikációból származnak komplex rendszerben az észlelt hibás eredményből nehéz a hiba helyére következtetni az inkrementális integrációs tesztelés némileg segít
© Bánsághi Anna
39 of 62
Tesztelés
10. előadás
AZ INTEGRÁCIÓS TESZTELÉS STRATÉGIÁI fentről lefelé tesztelés a rendszer lépcsőzetesen épül fel, kezdve azon kompenensekkel, melyek más komponenseket hívnak. A még el nem készült komponenseket azonos interfésszel készült csonkok (stubs) helyettesítik. Ezeket fokozatosan lecserélik a kész elemekkel. lentről felfelé tesztelés A hierarchia alsó szintjein lévő komponensek integrálásával és tesztelésével kezdik, ahol a magasabb szinteket tesztgenerátorok (drivers) helyettesítik
© Bánsághi Anna
40 of 62
Tesztelés
10. előadás
FENTRŐL LEFELÉ STRATÉGIA
© Bánsághi Anna
41 of 62
Tesztelés
10. előadás
LENTRŐL FELFELÉ STRATÉGIA
© Bánsághi Anna
42 of 62
Tesztelés
10. előadás
A KÉT STRATÉGIA ÖSSZEHASONLÍTÁSA szerkezeti validáció a fentről lefelé teszteléssel még a folyamat korai szakaszában felfedhetők a hibák a rendszerarchitektúrában és a magas szintű tervekben rendszerdemonstráció a fentről lefelé integráció korán lehetővé teszi a demonstrációt (újrafelhasználható komponensek alkalmazásával a lentről felfelé stratégiával is lehetséges) tesztimplementáció a fentről lefelé stratégia programcsonkjait nehéz implementálni, a lentről felfelé tesztelés tesztmeghajtóit valamivel egyszerűbb tesztmegfigyelés a tesztek eredményét mindkét módszernél nehéz megfigyelni, mesterséges környezetre, extra kódra van szükség
© Bánsághi Anna
43 of 62
Tesztelés
10. előadás
INTERFÉSZTESZTELÉS interfésztesztelésre akkor van szükség, amikor egy nagyobb rendszer összeépítésekor modulokat vagy alrendszereket integrálunk célja az interfészek specifikációs (félreértések, ellentmondások) vagy implementációs hibáinak felfedése az interfésztesztelés az objektumorientált fejlesztésnél fontos (különösen objektumok és osztályok újrafelhasználásakor), mert az objektumokat az interfészeikkel definiáljuk egyedi objektum tesztelésével az interfészhibákat nem lehet felfedni, mert a hibák az objektumok közti interakciókban jelentkeznek, nem egy egyedi objektum sajátosságaiként
© Bánsághi Anna
44 of 62
Tesztelés
10. előadás
INTERFÉSZ TÍPUSOK paraméter interfészek adatok továbbítása az egyik alrendszertől a másik felé osztott memória interfészek az alrendszerek közös memóriablokkon keresztül cserélnek adatot egymással procedurális interfészek egy alrendszer más alrendszerek által hívható eljárásokat tartalmaz üzenet alapú interfészek egy alrendszer úgy kér szolgáltatást egy másik alrendszertől, hogy üzenetet juttat el hozzá. A szolgáltatás eredményeit egy válaszüzenetben kapja meg
© Bánsághi Anna
45 of 62
Tesztelés
10. előadás
TIPIKUS INTERFÉSZHIBÁK interfész hibás alkalmazása egy hívó komponens hibája lehet: rossz típusú vagy sorrendű paraméterek, hibás számú paraméter interfész félreértése a hívó komponens hibásan értelmezi az interfészt vagy a hívott komponens válaszait időzítési hibák a hívó és a hívott komponens különböző sebességgel működik (osztott memória vagy üzenettovábbító interfész esetén), és a hívott nem aktuális információt kap
© Bánsághi Anna
46 of 62
Tesztelés
10. előadás
AZ INTERFÉSZTESZTELÉS IRÁNYELVEI a teszteket úgy kell tervezni, hogy a paraméterek értékei a határértékek közelében legyenek a pointer jellegű paramétereket null értékkel is teszteljük olyan tesztesetre is szükség van, amely a hívott komponens hibáját okozza (a specifikációs hibák többsége a hibák félreértelmezéséből fakad) üzenettovábbító vagy interaktív rendszereknél terheléses (stressz) tesztet is szükséges osztott memóriájú interfészeket a komponensek aktiválódása sorrendjének megváltoztatásával is teszteljünk (szinkronizációs hibák)
© Bánsághi Anna
47 of 62
Tesztelés
10. előadás
RENDSZERTESZT élő környezetben a teljes rendszer viselkedését és működését vizsgálja a teszt KÉT FAJTÁJA funkcionális tesztek nemfunkcionális tesztek
© Bánsághi Anna
48 of 62
Tesztelés
10. előadás
FUNKCIONÁLIS TESZTEK 1. installációs teszt a rendszer telepítésének tesztelése különböző eshetőségek (különböző hardver és szoftver konfigurációk, eltérő feltételek) esetén általános funkcionális teszt a rendszer működésének vizsgálata normál működés esetén. A teszt során ellenőrizzük, hogy a rendszer funkciói az elvártnak megfelelően működnek-e, a teszt során a kívánt eredményeket kapjuk-e. szélsőérték funkcionális teszt a rendszer működésének vizsgálata szélső bemeneti / kimeneti értékek esetén. A teszt során ellenőrizzük, hogy a rendszer funkciói az elvártnak megfelelően működnek-e, a teszt során az elvárt eredményeket kapjuk-e.
© Bánsághi Anna
49 of 62
Tesztelés
10. előadás
FUNKCIONÁLIS TESZTEK 2. konfigurációs teszt a rendszer funkcionalitásának tesztelése eltérő hardver / szoftver feltételek mellett mennyiségi teszt a rendszer funkcionalitásának tesztelése nagy mennyiségű bemenő, kimenő, illetve adatbázisbeli adat esetén biztonsági teszt a szoftver jogosultsági rendszerének tesztelése azt ellenőrzi, hogy a rendszer adataihoz csak a megfelelő jogosultsággal bíró felhasználók férnek-e hozzá
© Bánsághi Anna
50 of 62
Tesztelés
10. előadás
NEMFUNKCIONÁLIS TESZTEK 1. általános teljesítményteszt a rendszer számszerűsíthető működési paramétereit (sebesség, memóriahasználat, hálózati forgalom) összevetjük az elvárt értékekkel. A teszt segítségével fényt deríthetünk a rendszernek ezen paraméterek szempontjából kritikus pontjaira, szűk keresztmetszeteire referencia teljesítményteszt a rendszer működési paramétereit egy másik, a tesztelt rendszerhez hasonló funkcionalitású rendszer paramétereivel vetjük össze terheléses teljesítményteszt a rendszer működési paramétereinek vizsgálata különböző munkaterhelések esetén. A teszt során rögzítjük a terhelés mértékét (pl. felhasználók, tranzakciók száma), valamint a rendszer működési paramétereit az adott terhelés alatt
© Bánsághi Anna
51 of 62
Tesztelés
10. előadás
NEMFUNKCIONÁLIS TESZTEK 2. konkurencia teljesítményteszt a rendszer teljesítményének vizsgálata abban az esetben, ha a rendszernek többszörösen kell ugyanahhoz az erőforráshoz (pl. ugyanahhoz az adatrekordhoz) hozzáférnie sokk teljesítményteszt a rendszer működésének vizsgálata extrém körülmények között. Ezek az extrém körülmények lehetnek a tervezettnél nagyobb terhelések, kevés memória/erőforrások, hardver problémák, áramszünet helyreállási teljesítményteszt a rendszer automatikus helyreállási képességének vizsgálata különféle okokból bekövetkezett összeomlások után
© Bánsághi Anna
52 of 62
Tesztelés
10. előadás
ELFOGADÁSI TESZT élő környezetben a teljes rendszer viselkedését és működését próbálja ki az ügyfél alfa teszt az alkalmazás még nincs teljesen kidolgozva, a tesztelést a tesztelő csapat és a felhasználók egy speciális csoportja végzi. A felhasználók a szoftver kipróbálása közben / után jelzik a fejlesztőknek a próbaüzem közben előforduló problémáikat. béta teszt az alkalmazás éles környezetben fut, a tesztelést tetszőleges (önkéntes) felhasználók végzik. Vizsgálják az ügyfél elégedettséget, és azt, hogy a rendszer mennyire teljesíti az üzleti célokat.
© Bánsághi Anna
53 of 62
Tesztelés
10. előadás
ELFOGADÁSI TESZT 2. elfogadási teszt célja annak megállapítása, hogy a szoftverrendszer a körülményeknek megfelelően működik-e. A rendszer működésének ellenőrzése nem szimulált tesztadatokkal történik, hanem valós környezetben tényleges adatokkal. A teszttel feltárhatók azok a működésbeli rendellenességek, melyeket az informatikai szakemberek a rendszer szakterületében való jártatlanságuk miatt nem fedeztek fel
© Bánsághi Anna
54 of 62
Tesztelés
10. előadás
4. OBJEKTUMORIENTÁLT TESZTELÉS a komponens- és integrációs tesztelés az objektumorientált rendszereknél is alkalmazható KÜLÖNBSÉGEK a tesztelendő objektumok komponensként gyakran nagyobbak, mint az egyszerű függvények (a fehér doboz tesztelés nehezebben alkalmazható) az objektumok lazán kötődnek, és a tesztelt komponensnek vagy a rendszernek nincs egyértelmű teteje (top-down, bottom-up) az újrafelhasznált komponensek kódjához nem mindig lehet hozzájutni, elemezni
© Bánsághi Anna
55 of 62
Tesztelés
10. előadás
AZ OBJEKTUMORIENTÁLT TESZTELÉS SZINTJEI az objektumokhoz kapcsolódó műveletek tesztelése a tagfüggvények és az események fekete vagy fehér doboz technikával tesztelhetők osztályok tesztelése a fekete doboz technika alkalmazható, de az ekvivalencia partícionálást a műveletsorozatokra is ki kell terjeszteni együttműködő objektumcsoportok tesztelése forgatókönyv alapján kijelölhető az objektumok csoportja objektumorientált rendszer tesztelése a követelmények verifikációja és validációja más rendszerekhez hasonlóan történhet
© Bánsághi Anna
56 of 62
Tesztelés
10. előadás
OSZTÁLYOK TESZTELÉSE a teljes (minden utasítás és minden független útvonal) teszt lefedettséghez szükség van: az objektumhoz kapcsolódó összes művelet tesztelésére az összes attribútum beállítására és tesztelésére az objektum összes lehetséges állapotának végrehajtására az öröklődés nehezíti az objektumosztályok tesztelését, mert az összes örökölt műveletet is tesztelni kell
© Bánsághi Anna
57 of 62
Tesztelés
10. előadás
OBJEKTUMINTEGRÁCIÓ az objektumorientált rendszerekben az integráció szintjét nehéz meghatározni a modultesztnek nincs megfelelője, de alkalmazható az együttműködő objektumosztályok csoporttesztje a csoportok az objektumok működésének és a rendszer tulajdonságainak ismeretében jelölhetők ki
© Bánsághi Anna
58 of 62
Tesztelés
10. előadás
CSOPORTTESZTELÉS használati eset vagy forgatókönyv alapján a tesztek a felhasználói interakciókon alapulnak. Előnye, hogy a felhasználók által leggyakrabban használt részeket teszteli száltesztelés a rendszernek egy eseményre adott válaszát vizsgálja, amint az a rendszeren keresztülhalad objektum együttműködési teszt az objektumok együttműködésének egy sorozatát vizsgálja, amely akkor ér véget, ha egy objektumművelet nem hív meg más objektumszolgáltatást
© Bánsághi Anna
59 of 62
Tesztelés
10. előadás
FORGATÓKÖNYV ALAPÚ TESZTELÉS a használati eset diagram alapján meghatározott forgatókönyvet kiegészíti egy olyan szekvencia diagrammal, amely az érintett objektumokat is megmutatja olyan forgatókönyveket kell választani, amelyek végül biztosítják, hogy minden objektum minden művelete legalább egyszer tesztelve legyen a szekvencia diagram arra is alkalmas, hogy meghatározzuk a teszt input és output adatait a forgatókönyvben ki kell térni a kivételekre (hibaesetekre) is
© Bánsághi Anna
60 of 62
Tesztelés
10. előadás
5. TESZTELŐ ESZKÖZÖK a tesztelés drága és időigényes folyamat a tesztelő eszközök automatizálják, amit lehet, így csökkentik a tesztelés idő- és erőforrásigényét, a költségeket nagy rendszerek esetén a tesztelő eszközöket a rendszer funkcióihoz és felelősségéhez szabják a tesztelő eszközöket nem könnyű integrálni a tervező, fejlesztő CASE eszközökkel
© Bánsághi Anna
61 of 62
Tesztelés
10. előadás
ÖSSZEFOGLALÁS legfontosabb a rendszer gyakran használt részeit tesztelni az ekvivalencia partícionálás egy lehetőség a tesztadatok előállítására. Az osztály határára eső értékek fedik fel a hibákat a legnagyobb valószínűséggel. az egységtesztelés a program vezérlési gráfjának tesztelésén alapul az integrációs tesztek a komponensek és az interfészeik közti interakciót vizsgálják az interfészhibák a specifikáció hibás értelmezéséből és hibás időzítésből származhatnak az objektumosztályokat úgy kell tesztelni, hogy minden műveletet kipróbálunk, minden attribútumnak értéket adunk, minden állapotot tesztelünk az OO rendszereket a használati esetek alapján összegyűjtött objektumcsoportokban lehet tesztelni © Bánsághi Anna
62 of 62