Blackbox tesztelés¶
Állapotátmenet-tesztelés¶
Az állapotátmenet-tesztelés egy fekete dobozalapú tesztelési technika, amelyben a bemeneti feltételek változásai állapotváltozásokat vagy kimeneti változásokat okoznak a tesztelt alkalmazásban (AUT). Ez a módszer segít az alkalmazás viselkedésének elemzésében különböző bemeneti feltételek mellett.
Az állapotátmenet-tesztelés során a rendszert állapotokkal írjuk le, és az állapotokat átkötő átmeneteket végrehajtható tesztlépéseknek tekintjük. Az állapotátmeneti modellnek négy fő összetevője van:
- Állapotok: A szoftver különböző állapotai (pl. nyitott vagy bezárt).
- Átmenetek: Az egyik állapotból a másikba történő változások.
- Események: Az átmenetet kiváltó események (pl. fájl bezárása).
- Akciók: Az átmenet eredményeként végrehajtott tevékenységek (pl. hibaüzenet).
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 olyan, a rendszer állapotait jelző diagram, ami az állapotváltozást okozó eseményeket/körülményeket is ábrázolja.
Az állapotátmenet-tesztelés során az állapotokból elérhető összes lépést bejárjuk. Amennyiben a specifikáció alapján a teljes bejárás 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.
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.
Állapotok | Helyes PIN beütése | Helytelen PIN beütése |
---|---|---|
A1 1. kísérlet | A4 | A2 |
A2 2. kísérlet | A4 | A3 |
A3 3. kísérlet | A4 | A5 |
A4 Hozzzáférés megadva | - | - |
A5 Fiók zárolása | - | - |
Megjegyzés: A0 állapotból (START) indulunk, ahonnan automatikusan A1-be kerülünk. A4 és A5 végálllapotok. Ez jelölhető egy A6 állapottal is, amelybe szintén automatikus az átmenet.
A példa állapotátmenet diagramja:
Feladatok¶
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ő a következő (szakaszvé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 egyidő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íts teszteseteket a rendszer teszteléséhez.
Vasúti biztosítóberendezés tesztelésének lehetséges megoldása
A feladat egy lehetséges megoldását az alábbiakban láthatjuk:
- 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 meg kell vizsgálni
- Állapotátmenet diagram
Felhasználói történet alapú tesztelés¶
A felhasználói történet alapú tesztelés egy olyan tesztelési módszer, amely a felhasználói történetekre (user story-kra) épül. A user story egy rövid, egyszerű leírása annak, hogy egy felhasználó mit szeretne elérni a szoftverrel, általában egy adott funkció vagy feladat formájában.
A user story alapú tesztelés során a tesztelők a következő lépéseket követik:
- User story azonosítása: Azonosítják és megértik a user story-kat, amelyek a felhasználói igényeket és elvárásokat tükrözik.
- Elfogadási kritériumok meghatározása: Minden user story-hoz elfogadási kritériumokat határoznak meg, amelyek leírják, hogy a funkció mikor tekinthető késznek.
- Tesztesetek készítése: A user story-k és az elfogadási kritériumok alapján teszteseteket készítenek, amelyek lefedik a különböző felhasználói forgatókönyveket.
- Tesztelés végrehajtása: A teszteseteket végrehajtják, és ellenőrzik, hogy a szoftver megfelel-e az elfogadási kritériumoknak.
- Eredmények értékelése: Az eredményeket értékelik, és visszajelzést adnak a fejlesztőcsapatnak a szükséges javításokról vagy módosításokról.
Ez a módszer segít biztosítani, hogy a szoftver megfeleljen a felhasználói igényeknek és elvárásoknak, és hogy a fejlesztési folyamat során a felhasználói élményre összpontosítsanak.
Feladatok¶
NEPTUN kurzusfelvétel
Tekintsük a következő felhasználói történetet:
Én, mint harmadéves programtervező informatikus hallgató, szeretném felvenni a Neptunban a Szoftverfejlesztés alapjai kurzust azért, hogy meglegyen a szükséges kreditem a félév során.
Elfogadási kritériumok:
- Sikeres bejelentkezés, tárgyfelvétel kiválasztása
- Tárgyak listázásának biztosítása
- Keresési lehetőség biztosítása a tárgy kiválasztása során
- Választási lehetőség biztosítása a különböző gyakorlati időpontok között
- Sikeres előadás és gyakorlatfelvétel
- Hibás adatok bevitele esetében adekvát üzenetet ír ki a rendszer
- Betelt gyakorlat esetében megfelelő tájékoztatás és meghiúsuló tárgyfelvétel
- Előfeltételek hiánya esetén megfelelő tájékoztatás és meghiúsuló tárgyfelvétel
NEPTUN kurzusfelvétel tesztelése
Készítsünk teszteseteket a megadott felhasználói történethez!
NEPTUN kurzusfelvétel lehetséges tesztesetei
1. sz. Forgatókönyv: Szoftvertesztelés alapjai tárgy felvétele alapeset
- Előfeltételek
- Internet kapcsolat.
-
Regisztrálás a Neptunba.
-
Folyamat lépései
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 mintaterv 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: A tárgyfelvétel sikeres. -
Utófeltétel: A tárgyfelvétel sikeres.
2. sz. Forgatókönyv: Szoftvertesztelés alapjai tárgy felvétele, hibás felhasználónév
- Előfeltételek
- Internet kapcsolat.
-
Regisztrálás a Neptunba.
-
Folyamat lépései
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 rendszer kiírja: Érvénytelen felhasználónév vagy jelszó. -
Utófeltétel: Hibaüzenet után lehetőség újrapróbálkozásra.
3. sz. Forgatókönyv: Szoftvertesztelés alapjai tárgy felvétele, rossz félév kiválasztása
- Előfeltételek
- Internet kapcsolat.
-
Regisztrálás a Neptunba.
-
Folyamat lépései
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álaszt egy rossz 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. A rendszer kiírja: Nincs találat -
Utófeltétel: Lehetőséget ad más félév kiválasztására és újrapróbálkozásra.
4. sz. Forgatókönyv: Szoftvertesztelés alapjai tárgy felvétele, rossz tárgynév megadása
- Előfeltételek
- Internet kapcsolat.
-
Regisztrálás a Neptunba.
-
Folyamat lépései
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 "Szoftvertesztalés alapjai" 9. Tárgyak listázása gombra kattint 10. A rendszer kiírja: Nincs találat -
Utófeltétel: Lehetőséget ad a tárgy ismételt keresésére.
5. sz. Forgatókönyv: Szoftvertesztelés alapjai tárgy felvétele, betelt gyakorlat
- Előfeltételek
- Internet kapcsolat.
-
Regisztrálás a Neptunba.
-
Folyamat lépései
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 mintaterv 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 gyakorlaton nincs hely üzenet kerül kiírásra -
Utófeltétel: Lehetőség más tárgy felvételére
6. sz. Forgatókönyv: Szoftvertesztelés alapjai tárgy felvétele, nincsenek meg az előfeltételek
- Előfeltételek
- Internet kapcsolat.
-
Regisztrálás a Neptunba.
-
Folyamat lépései
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 mintaterv 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. Előfeltétel hiányzik üzenet kerül kiírásra -
Utófeltétel: Lehetőség más tárgy felvételére
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 felhasználói történetre kidolgozott teszt. A feladat része a megfelelő felhasználói történet és elfogadási kritériumok meghatározása a dokumentációból.
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-teszt esetében vagy a diagram, vagy a táblázat).