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.

  • 🔄 Základní myšlenka: Tato technika kontroluje chování systému, když stejný vstup produkuje různé výstupy na základě předchozích událostí (systém s konečnými stavy).
  • 🧩 Čtyři stavební bloky: Každý model je sestaven ze stavů, přechodů, událostí a akcí.
  • 🗺️ Diagram vs. tabulka: Diagramy zobrazují platné přechody; tabulky zobrazují neplatné přechody.
  • 🏧 Praktické příklady: Zablokování PIN kódu bankomatu a přihlášení k rezervaci letu prokazují skutečné krytí.
  • 🤖 Aktivace umělé inteligence: Nástroje umělé inteligence automaticky generují stavové modely z požadavků a označují chybějící nebo neplatné přechody.

Testování přechodu státu – státy

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.

Testování přechodu státu – státy

2) Přechod z jednoho státu do druhého.

Testování přechodu státu – Přechod

3) Události které spouštějí přechod, například uzavření souboru nebo výběr peněz.

Testování přechodu státu – Události

4) Akce které jsou důsledkem přechodu, například chybové hlášení nebo obdržení hotovosti.

Testování přechodu stavů – Akce

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)

Schéma přechodu stavů PINu bankomatu

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 stavu rezervace 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ů.

Tabulka přechodů mezi státy rezervace letu

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ů.

Nejčastější dotazy

Testování přechodů stavů je technika černé skříňky, která ověřuje, jak se systém pohybuje mezi stavy při změně vstupních podmínek. Je vhodná pro systémy s konečnými stavy, kde stejný vstup může produkovat různé výstupy v závislosti na předchozích událostech.

Čtyři části jsou Stavy (podmínky, ve kterých se software může nacházet), Přechody (pohyb mezi stavy), Události (spouštěče, které způsobují přechod) a Akce (výsledky přechodu, například zpráva nebo výstup).

Diagram přechodů stavů používá rámečky a šipky a je nejlepší pro identifikaci platných přechodů. Tabulka stavů uvádí stavy oproti událostem v mřížce a je nejlepší pro nalezení neplatných přechodů.

Vyhněte se tomu, pokud vstupy nejsou sekvenční, nebo při průzkumném testování různých funkcí. Také to selhává u velmi velkých systémů, protože počet stavů roste exponenciálně.

Pokrytí s 0 přepínači testuje každý platný přechod jednou. Pokrytí s 1 přepínačem testuje každou dvojici po sobě jdoucích přechodů. Vyšší pokrytí přepínači najde více defektů souvisejících se sekvencí, ale vyžaduje více testovacích případů.

Jedná se o techniku ​​černé skříňky. Testovací případy jsou odvozeny z očekávaného vnějšího chování stavů a ​​přechodů, bez nutnosti znalosti interního zdrojového kódu aplikace.

Nástroje umělé inteligence čtou požadavky a automaticky vytvářejí stavové modely, poté generují testovací případy pokrývající platné cesty a přechody hran. To snižuje úsilí potřebné k ručnímu modelování a zlepšuje pokrytí složitých sekvencí.

Ano. Umělá inteligence dokáže analyzovat stavový model a označit chybějící, nedosažitelné nebo neplatné přechody porovnáním s očekávanými vzorci chování, např.ping testeři odhalují mezery, které manuální recenze stolů často přehlížejí.

Shrňte tento příspěvek takto: