Kihagyás

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
| Á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 fenti példa megoldása diagrammal:

AD

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

Vonat

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.

ATM

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
      1. Internet kapcsolat.
      2. 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).


Utolsó frissítés: 2023-11-26 13:15:56