Testování přechodu stavů s příkladem
⚡ Chytré shrnutí
Testování přechodů stavů je technika černé skříňky, která ověřuje, jak se aplikace pohybuje mezi stavy při změně vstupních podmínek. Tento tutoriál vysvětluje čtyři části diagramu, rozdíl mezi stavovými diagramy a tabulkami a příklady práce s ATM a přihlášením pro testery.

Co je testování přechodu státu?
Testování přechodu státu je technika testování černé skříňky, při které změny vstupních podmínek způsobují změny stavu nebo změny výstupu v testované aplikaci (AUT). Pomáhá analyzovat chování aplikace za různých vstupních podmínek a testeři mohou poskytovat kladné a záporné vstupní hodnoty a zároveň zaznamenávat chování systému.
Je založen na modelu, na kterém je systém a testy postaveny. Jakýkoli systém, u kterého získáte jiný výstup pro stejný vstup – v závislosti na tom, co se stalo předtím – je systém s konečnými stavy. Technika testování přechodů stavů je užitečná tam, kde potřebujete otestovat různé systémové přechody.
Kdy použít testování přechodu stavů
- Když tester testuje aplikaci pro konečnou množinu vstupních hodnot.
- Když tester testuje sekvenci událostí, které se vyskytnou v testovacím testu (AUT), umožňuje to kontrolu chování aplikace pro sekvenci vstupních hodnot.
- Když testovaný systém závisí na událostech nebo hodnotách z minulosti.
Kdy se nespoléhat na testování přechodu státu
- Když se neprovádí testování pro sekvenční kombinace vstupů.
- Když se testování zaměřuje na různé funkce, například průzkumné testování.
Čtyři části diagramu přechodu stavů
Model přechodu států má čtyři hlavní komponenty, které jsou popsány níže.
1) Státy ke kterým by software mohl dosáhnout.
2) Přechod z jednoho státu do druhého.
3) Události které spouštějí přechod, například uzavření souboru nebo výběr peněz.
4) Akce které jsou důsledkem přechodu, například chybové hlášení nebo obdržení hotovosti.
Diagram přechodu stavů vs. tabulka přechodů stavů
Existují dva hlavní způsoby, jak reprezentovat nebo navrhnout přechody stavů: diagram přechodů stavů a tabulka přechodů stavů.
| Vzhled | Diagram přechodu státu | Tabulka přechodu stavu |
|---|---|---|
| Také zvaný | Stavový graf / graf | Státní tabulka |
| Reprezentace | Boxes pro stavy, šipky pro přechody | Mřížka stavů (řádky) a událostí (sloupce) |
| Nejlepší pro identifikaci | Platné přechody | Neplatné přechody |
| Každá buňka zobrazuje | - | Stav dosažený po nastanou události |
Jak provést přechod mezi stavy (příklady)
Příklad 1: Zablokování bankomatu PINem
Uvažujme funkci bankomatového systému, kde pokud uživatel třikrát zadá neplatné heslo, účet se uzamkne.
V tomto systému, pokud uživatel zadá platné heslo v kterémkoli z prvních tří pokusů, je úspěšně přihlášen. Pokud uživatel zadá neplatné heslo v prvním nebo druhém pokusu, je vyzván k jeho opětovnému zadání. Nakonec, pokud uživatel zadá nesprávné heslo potřetí, účet je zablokován.
Diagram přechodu stavů (příklad 1)
V diagramu je znázorněno, že kdykoli uživatel zadá správný PIN, přejde do stavu „Přístup udělen“. Pokud zadá nesprávné heslo, přejde k dalšímu pokusu a pokud to udělá potřetí, dosáhne stavu „Účet zablokován“.
Tabulka přechodů stavů (příklad 1)
| Stát | Správný PIN | Nesprávný PIN |
|---|---|---|
| S1) Start | S5 | S2 |
| S2) 1. pokus | S5 | S3 |
| S3) 2. pokus | S5 | S4 |
| S4) 3. pokus | S5 | S6 |
| S5) Přístup udělen | - | - |
| S6) Účet zablokován | - | - |
V tabulce, když uživatel zadá správný PIN, stav se změní na S5 (Přístup udělen). Pokud uživatel zadá nesprávné heslo, přesune se do dalšího stavu a po třetím chybném pokusu dosáhne stavu Účet zablokován.
Příklad 2: Přihlášení k rezervaci letu
Na přihlašovací obrazovce rezervace letu musíte zadat správné jméno a heslo agenta pro přístup aplikace pro rezervaci letu.
Graf přechodu státu
Aplikace umožňuje tři pokusy; pokud uživatel zadá špatné heslo na čtvrtý pokus, systém aplikaci automaticky ukončí.
Graf stavů vám pomůže určit platné přechody, které chcete otestovat. Testování se správným i nesprávným heslem je povinné a pro testovací scénáře, přihlášení na 2., 3. nebo 4. pokus by mohlo být otestováno. K určení neplatných systémových přechodů můžete použít tabulku stavů.
V tabulce stavů jsou vlevo uvedeny všechny platné stavy a v horní části události, které je způsobují. Každá buňka zobrazuje stav, do kterého se systém přesune, když k události dojde. Například ve stavu S1 vás správné heslo přesměruje do stavu S6 (přístup udělen); špatné heslo při prvním pokusu vás přesměruje do stavu S3 (2. pokus). Podobně můžete určit všechny ostatní stavy.
Touto metodou se zvýrazní dva neplatné stavy. Předpokládejme, že jste ve stavu S6 (již jste přihlášeni) a otevřete si další instanci rezervace letu a zadáte hesla pro stejného agenta. Je třeba otestovat reakci systému na takový scénář.
Výhody a nevýhody techniky přechodu státu
| Výhody | Nevýhody |
|---|---|
| Poskytuje obrazové nebo tabulkové znázornění chování systému, helping tester se seznámí a efektivně porozumí systému. | Nelze se na něj spolehnout vždy – například se nehodí pro systémy, které nejsou konečné nebo sekvenční. |
| Umožňuje testerovi ověřit, zda jsou splněny všechny podmínky a zda jsou zaznamenány výsledky. | Vyžaduje definování všech možných stavů. To funguje pro malé systémy, ale u větších systémů to nefunguje kvůli exponenciálnímu růstu počtu stavů. |





