Blackbox tesztelés¶
Állapotátmenet teszt¶
Az állapotátmenet teszt az egyik teszttervezési technika, amely során a rendszert állapotokkal írjuk le, az állapotokat átkötő átmeneteket pedig végrehajtható tesztlépéseknek tekintjük.
A teszt négy alapvető elemből tevődik össze:
- a szoftver által felvehető állapotok,
- átmenetek,
- átmeneteket kiváltó események,
- átmenet során végrehajtható tevékenységek.
Az ilyen típusú tesztek matematikai modellje a determinisztikus automaták kiterjesztéseként kapott szekvenciális gépek. Megjelenítésükre az állapottábla és az állapotátmenet-diagram használható (a formális leíráson túl). Az állapottábla egy olyan táblázat, ami az összes állapotra és lehetséges eseményre mutatja az állapotátmeneteket, megjelenítve az érvényes és érvénytelen átmeneteket is. Az állapotátmenet-diagram pedig a rendszer állapotait jelző diagram, ami az állapotváltozást okozó eseményeket/körülményeket is mutatja.
Az állapotátmenet-tesztelés során az állapotokból elérhető összes lépést bejárjuk, amennyiben a specifikáció alapján ez nem lehetséges, jelezzük az illetékesnek, hogy a specifikáció kiegészítésre szorul. A végállapot (ok)nak kiemelt szerepe van: egy teszteset akkor teljes, ha végállapotban ér véget, és akkor van elegendő tesztesetünk, ha minden lehetséges utat bejártunk – ugyanis egy bejárási út pontosan egy tesztesetet ír le.
!!! tip "Példa" Vegyünk egy ATM rendszerfunkciót, ahol ha a felhasználó az érvénytelen jelszót írja be háromszor, akkor a fiók zárolva lesz. Ha bármely kísérletnél helyes a jelszó, akkor annál a kísérletnél beengedi a rendszer. Az első és második kísérletnél hibás jelszó esetén a felhasználó figyelmeztetést kap.
1 2 3 4 5 6 7 8 9 |
|
A fenti példa megoldása diagrammal:
1. feladat:¶
Vasúti biztosítóberendezés
Egy vasúti fényjelző berendezés tesztjéhez kell előkészülni. A fényjelző berendezés a mögötte lévő szakaszra a jelző irányából való behajtást szabályozza. A szakasz egy következő jelzőig tart, és nem tartalmaz elágazást (vagyis vonat csak a két végén tud be- és kilépni). A szakasz mindkét végén van egy-egy érzékelő, amely jelezni tudja, ha egy szerelvény éppen be- vagy kilép a szakasz adott végén. A jelző továbbá a következő (szakasz végi, a következő szakaszt biztosító) jelző áthaladást tiltó/engedélyező állapotváltozásairól is értesül, valamint saját hasonló állapotváltozását képes jelezni az előző jelző felé. A szakaszon kétirányú a vasúti forgalom (a jelző feladata -- többek között --, hogy a két irány ne egy időben valósuljon meg).
A fényjelző háromféle jelzésre képes: tilos, lassú haladás, szabad jelzés. Ha a jelző által védett szakaszon vonat tartózkodik, akkor a jelzés tilos, különben ha a következő (szakasz végi) jelzés tilos, akkor lassú haladást engedélyez, egyébként szabad. A jelzőnek érzékelnie kell az esetleges inkonzisztens állapotot és a vészhelyzetet is. Mindkét esetben tilos jelzésre kell váltania, és jeleznie kell a központ felé a problémát. Ilyen esetben a jelzőt csak manuális fizikai beavatkozással (újraindítás) lehet újra működő állapotba hozni (ez már nem része a jelző normál működésének).
Vasúti biztosítóberendezés tesztje
Állapotátmenet diagram segítségével készítsen teszteseteket a rendszer teszteléséhez.
Vasúti biztosítóberendezés lehetséges állapotátmenet-diagrammja és tesztjei
- Események:
- Vonat_BE (bármelyik oldalon)
- Vonat_KI (bármelyik oldalon)
- Köv_áth_tiltottra_vált
- Köv_áth_megengedettre_vált
-
Kimenetek:
- Fényjelzés TILOSra vált (Fény_T)
- Fényjelzés LASSÚra vált (Fény_L)
- Fényjelzés SZABADra vált (Fény_SZ)
- Áthaladás engedélyezett (Áth_E)
- Áthaladás tiltott (Áth_T)
- Hibajelzés (HIBA)
- Vészjelzés (VESZÉLY)
-
Állapotok és átmenetek
Állapot Vonat_BE Vonat_KI Köv_áth_tiltottra_vált Köv_áth_megengedettre_vált S1 (szabad) S2 / Fény_T, Áth_T S5 / Fény_T, Áth_T, HIBA S3 / - S5 / Fény_T, Áth_T, HIBA S2 (tilos) S5 / VESZÉLY S1 / Fény_SZ, Áth_E S4 / - S5 / Fény_T, Áth_T, HIBA S3 (lassú) S4 / Fény_T, Áth_T S5 / Fény_T, Áth_T, HIBA S5 / Fény_T, Áth_T, HIBA S1 / - S4 (tilos) S5 / VESZÉLY S3 / Fény_L, Áth_E S5 / Fény_T, Áth_T, HIBA S3 / - S5 (hiba) S5 / VESZÉLY S5 / - S5 / - S5 / - -
Tesztek
- Minden állapotban minden lehetséges esemény hatását megfigyelni
-
Diagram
Használati eset tesztelés¶
A használati esetek a szoftver egy-egy forgatókönyvei, amelyekben a szoftver egy külső kérést kap és válaszol rá. A használati eset (use case) olyan műveletek vagy eseménylépések listája, amelyek jellemzően egy szerepkör (amely az Unified Modeling Language (UML) szereplőként - actor ismert) és egy rendszer közötti interakciókat határozzák meg a cél elérése érdekében. A szereplő lehet ember vagy más külső rendszer.
Egy adott rendszer vizsgálatához a használati eset diagramokat használják, ahol a diagram jellemzően több használati esetet és azok kapcsolatait mutatja be. Az egyes használati esetekhez minden esetben tartozik egy részletes forgatókönyv, amely tartalmazza a normál és alternatív lefutásokat, elő és utófeltételeket.
Az alábbi ábra egy használati eset diagramról mutat példát.
Az egyes használati eseteket az ellipszis alakzatok jelképezik. Ezekre a használati esetekre nézve a tervezőknek pontos lefutást kell specifikálni elő és utófeltételekkel, alternatív lefutásokkal kiegészítve. A tesztelés során egy konkrét használati eset kerül kiválasztásra, például a fenti ábrából a "Deposit Funds" és annak lefutása alapján történik a tesztelés.
2. feladat:¶
NEPTUN kurzusfelvétel
Egy harmadéves valamely informatikai szakon lévő hallgató a tárgyfelvétel alatt gondolkozik mely tárgyat vegye fel, hogy meglegyen a szükséges kredit. Mivel a tesztelést csak megemlítik más tárgyakon és pont 5 kreditre van szüksége ezért megpróbálja felvenni a Szoftvertesztelés alapjai kurzust. A hallgató bejelentkezik a neptunba, majd kiválasztja a tárgyfelvétel opciót. Kilistázza a tárgyakat, de mivel egy csomót lát, ezért beírja a tárgy nevét. Felveszi az előadást, viszont a gyakorlatnál döntés elé áll. Három gyakorlatvezető közül választhat, illetve keddtől csütörtöki időpontok közül. A hallgató választ egyet a gyakorlatok közül és ezt is felveszi.
NEPTUN kurzusfelvétel tesztelése
Használati eset segítségével készítsünk teszteseteket.
NEPTUN kurzusfelvétel lehetséges használati esete(i) és tesztjei
-
Használati eset:
- Use case name: Szoftvertesztelés alapjai tárgy felvétele a neptunban.
- Actors: Hallgató, Rendszer (Neptun)
- Description: Ez a használati eset leírja, hogy egy hallgató hogyan veheti fel a Tesztalap tárgyat a neptunban.
- Pre conditions
- Internet kapcsolat.
- Regisztrálás a neptunba.
-
Normal workflow:
No. Steps 1. A hallgató beírja az EHA/Neptun kódját és a jelszavát. 2. A rendszer ellenőrzi az adatokat. 3. A home screent látja a hallgató 4. A hallgató a tárgyak dropdown menüre viszi az egerét 5. Tárgyfelvétel választása 6. Félévek menüpontban kiválasztja az aktuális félévet 7. Tárgytípusnál kiválasztja a minta terv tárgyait 8. Tárgynévhez beírja, hogy Szoftvertesztelés alapjai 9. Tárgyak listázása gombra kattint 10. Felvesz gombra kattint 11. Felugró ablakban a checkboxot kipipálja 12. Mentés gombra kattint 13. A rendszer kiírja, hogy a tárgyfelvétel sikeres -
Alternate workflows
-
2.a) Ha hibás adatot írunk be
No. Steps 1. A rendszer kiírja, hogy "Érvénytelen felhasználónév vagy jelszó." -
6.a) Rossz félévet választunk ki
No. Steps 1. Tárgytípusnál kiválasztja a minta terv tárgyait 2. Tárgynévhez beírja, hogy "Szoftvertesztelés alapjai" 3. Tárgyak listázása gombra kattint 4. A rendszer kiírja, hogy nincs találat -
8.a) Elírjuk a tárgy nevét
No. Steps 1. Tárgynévhez beírja, hogy "Szoftvertesztalés alapjai" 2. Tárgyak listázása gombra kattint 3. A rendszer kiírja, hogy nincs találat -
10.a) Betelt a gyakorlat
No. Steps 1. Felvesz gombra kattint 2. Felugró ablakban a checkboxot kipipálja 3. Mentés gombra kattint 4. A gyakorlaton nincs hely üzenet -
10.b) Előfeltétel nincs meg a tárgyhoz
No. Steps 1. Felvesz gombra kattint 2. Felugró ablakban a checkboxot kipipálja 3. Mentés gombra kattint 4. Előfeltétel hiányzik üzenet
-
-
Post conditions: A hallgató fel tudta venni a tárgyat.
-
Tesztek:
- Helyesen végrehajtott folyamat.
- Nem létező felhasználónév megadása
- Létező felhasználónév rossz jelszó párosítás
- Létező felhasználónév/jelszó páros előfeltételek megléte nélkül
- Létező felhasználónév/jelszó páros teljesített előfeltételekkel
- Őszi félév kiválasztása
- Tavaszi félév kiválasztása
- "Szoftvertesztelés alapjai" tárgynév
- "Szoftvertesztalés alapjai" tárgynév
- Betelt gyakorlat kiválasztása
- Be nem telt gyakorlat kiválasztása
- Előfeltétel nincs meg a tárgyhoz
3. feladat (Házi feladat):¶
QualitySoftware tesztelése
A felhasználói kézikönyv alapján készíts teszteket a szoftverhez.
- Milyen tesztelemeket tudsz definiálni?
- Melyik tesztelemhez milyen módszer segítségével készítenél teszteket?
- Milyen teszteket eredményez az adott módszer használata?
Két tesztet kell kiválasztani. Az egyik legyen állapotátmenet-teszt, a másik pedig egy konkrét használati esetre kidolgozott használati eset teszt. A megoldásokat a Coospace-n kell benyújtani PDF, vagy bármely dokumentum formában. A tesztek definiálása során elegendő egy eszköz használata (például az állapotátmenet tesztek esetében vagy a diagram, vagy a táblázat).