Testiranje prijelaza stanja s primjerom

⚡ Pametni sažetak

Testiranje prijelaza stanja je tehnika crne kutije koja provjerava kako se aplikacija kreće između stanja kako se mijenjaju ulazni uvjeti. Ovaj vodič objašnjava četiri dijela dijagrama, razliku između dijagrama stanja i tablica te primjere rada s ATM-om i prijavom za testere.

  • 🔄 Osnovna ideja: Tehnika provjerava ponašanje sustava kada isti ulaz proizvodi različite izlaze na temelju prethodnih događaja (sustav s konačnim stanjima).
  • 🧩 Četiri gradivni bloka: Svaki model je izgrađen od stanja, prijelaza, događaja i akcija.
  • 🗺️ Dijagram u odnosu na tablicu: Dijagrami otkrivaju valjane prijelaze; tablice otkrivaju nevažeće prijelaze.
  • 🏧 Praktični primjeri: Zaključavanje PIN-om bankomata i prijava za rezervaciju leta pokazuju stvarnu pokrivenost.
  • 🤖 Omogućavanje umjetne inteligencije: Alati umjetne inteligencije automatski generiraju modele stanja iz zahtjeva i označavaju nedostajuće ili nevažeće prijelaze.

Testiranje tranzicije država — Države

Što je testiranje prijelaza stanja?

Testiranje prijelaza stanja je tehnika testiranja crne kutije u kojoj promjene ulaznih uvjeta uzrokuju promjene stanja ili promjene izlaza u aplikaciji koja se testira (AUT). Pomaže u analizi ponašanja aplikacije za različite ulazne uvjete, a testeri mogu dati pozitivne i negativne ulazne vrijednosti dok bilježe ponašanje sustava.

Temelji se na modelu na kojem su izgrađeni sustav i testovi. Svaki sustav u kojem dobivate različit izlaz za isti ulaz - ovisno o tome što se dogodilo prije - je sustav s konačnim stanjima. Tehnika testiranja prijelaza stanja korisna je tamo gdje je potrebno testirati različite prijelaze sustava.

Kada koristiti testiranje tranzicije stanja

  • Kada tester testira aplikaciju za konačan skup ulaznih vrijednosti.
  • Kada tester testira niz događaja koji se događaju u AUT-u, omogućuje se provjera ponašanja aplikacije za niz ulaznih vrijednosti.
  • Kada testirani sustav ovisi o događajima ili vrijednostima iz prošlosti.

Kada se ne treba oslanjati na testiranje tranzicije države

  • Kada se testiranje ne provodi za sekvencijalne ulazne kombinacije.
  • Kada testiranje cilja različite funkcionalnosti, kao što je istraživačko testiranje.
#1 NAJBOLJI UKUPNOGlobalno testiranje aplikacija
9.8/ 10
★ ★ ★ ★ ★
Preuzmite besplatnu demo verziju
PractiTest
9.5/ 10
★ ★ ★ ★ ★
Posjetiti PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
Posjetiti Testiny
Najbolje zaTestiranje u publici i osiguranje kvaliteteUpravljanje testovimaMali i srednji timovi za osiguranje kvalitete
Glavna značajka✓Testiranje integracije treće strane✓Centralizirano upravljanje testiranjem✓Ručni + automatizirani testni slučajevi
integracije✓Jira, Slack, TestRail✓Jira, Jenkins, Slack✓Jira, GitHub, GitLab
Besplatna probaBesplatni demo14-dnevno besplatno probno razdobljeBesplatni demo
Preuzmite besplatnu demo verzijuPosjetiti PractiTestPosjetiti Testiny

Četiri dijela dijagrama prijelaza stanja

Postoje četiri glavne komponente modela tranzicije stanja, opisane u nastavku.

1) Države do kojih bi softver mogao doći.

Testiranje tranzicije država — Države

2) Prijelaz iz jedne države u drugu.

Testiranje tranzicije države — Tranzicija

3) Događaji koje pokreću prijelaz, poput zatvaranja datoteke ili podizanja novca.

Testiranje tranzicije države — Događaji

4) Radnje koje su rezultat prijelaza, kao što je poruka o pogrešci ili primanje novca.

Testiranje prijelaza stanja — Radnje

Dijagram prijelaza stanja u odnosu na tablicu prijelaza stanja

Postoje dva glavna načina za predstavljanje ili dizajniranje prijelaza stanja: dijagram prijelaza stanja i tablica prijelaza stanja.

Aspekt Dijagram prijelaza stanja Tablica prijelaza stanja
Također se zove Grafikon stanja / dijagram Državni stol
Prikaz Boxes za stanja, strelice za prijelaze Mreža stanja (retci) i događaja (stupci)
Najbolje za prepoznavanje Važeći prijelazi Nevažeći prijelazi
Svaka ćelija prikazuje - Stanje postignuto nakon što se događaj dogodio

Kako izvršiti tranziciju stanja (primjeri)

Primjer 1: Blokiranje PIN-a na bankomatu

Razmotrimo funkciju bankomatskog sustava gdje se, ako korisnik tri puta unese nevažeću lozinku, račun zaključava.

U ovom sustavu, ako korisnik unese valjanu lozinku u bilo kojem od prva tri pokušaja, uspješno se prijavljuje. Ako korisnik unese nevažeću lozinku u prvom ili drugom pokušaju, traži se da je ponovno unese. Konačno, ako korisnik treći put unese netočnu lozinku, račun se blokira.

Dijagram prijelaza stanja (Primjer 1)

Dijagram promjene stanja PIN-a bankomata

Na dijagramu, kad god korisnik unese ispravan PIN, prelazi u stanje Pristup odobren. Ako unese pogrešnu lozinku, prelazi na sljedeći pokušaj, a ako to učini treći put, dostiže stanje Račun blokiran.

Tablica prijelaza stanja (Primjer 1)

Država Ispravan PIN Neispravan PIN
S1) Početak S5 S2
S2) 1. pokušaj S5 S3
S3) 2. pokušaj S5 S4
S4) 3. pokušaj S5 S6
S5) Pristup odobren - -
S6) Račun blokiran - -

U tablici, kada korisnik unese ispravan PIN, stanje prelazi u S5 (Pristup odobren). Ako korisnik unese pogrešnu lozinku, prelazi u sljedeće stanje, a nakon trećeg pogrešnog pokušaja dolazi do stanja Račun blokiran.

Primjer 2: Prijava za rezervaciju leta

Na ekranu za prijavu na rezervaciju leta morate unijeti ispravno ime agenta i lozinku za pristup aplikacija za rezervaciju leta.

Grafikon promjene stanja rezervacije leta

Graf prijelaza stanja

Aplikacija dopušta tri pokušaja; ako korisnik u četvrtom pokušaju unese pogrešnu lozinku, sustav automatski zatvara aplikaciju.

Grafikon stanja pomaže vam odrediti valjane prijelaze za testiranje. Testiranje s ispravnom i netočnom lozinkom je obavezno, a za testni scenariji, prijava u 2., 3. ili 4. pokušaju mogla bi se testirati. Tablicu stanja možete koristiti za određivanje nevažećih prijelaza sustava.

Tablica tranzicije stanja rezervacije leta

U Tablici stanja, sva valjana stanja navedena su s lijeve strane, a događaji koji ih uzrokuju na vrhu. Svaka ćelija prikazuje stanje u koje sustav prelazi kada se događaj dogodi. Na primjer, u stanju S1, ispravna lozinka vodi vas u stanje S6 (Pristup odobren); pogrešna lozinka u prvom pokušaju vodi vas u stanje S3 (2. pokušaj). Slično tome, možete odrediti sva ostala stanja.

Ovom metodom se ističu dva nevažeća stanja. Pretpostavimo da ste u stanju S6 (već prijavljeni) i otvorite drugu instancu rezervacije leta te unesete lozinke za istog agenta. Potrebno je testirati odgovor sustava za takav scenarij.

Prednosti i nedostaci tehnike prijelaza stanja

Prednosti Nedostaci
Pruža slikovni ili tablični prikaz ponašanja sustava, helpping tester pokriva i učinkovito razumije sustav. Ne može se na njega uvijek osloniti - na primjer, ne odgovara sustavima koji nisu konačni ili sekvencijalni.
Omogućuje testeru da provjeri jesu li svi uvjeti ispunjeni i jesu li rezultati zabilježeni. Zahtijeva definiranje svih mogućih stanja. Ovo funkcionira za male sustave, ali ne funkcionira za veće zbog eksponencijalnog rasta broja stanja.

Pitanja i odgovori

Testiranje prijelaza stanja je tehnika crne kutije koja provjerava kako se sustav kreće između stanja kako se ulazni uvjeti mijenjaju. Prikladna je za sustave s konačnim stanjima gdje isti ulaz može proizvesti različite izlaze ovisno o prethodnim događajima.

Četiri dijela su Stanja (uvjeti u kojima se softver može nalaziti), Prijelazi (kretanje između stanja), Događaji (okidači koji uzrokuju prijelaz) i Radnje (rezultati prijelaza, poput poruke ili izlaza).

Dijagram prijelaza stanja koristi okvire i strelice te je najbolji za prepoznavanje valjanih prijelaza. Tablica stanja prikazuje stanja u odnosu na događaje u mreži i najbolja je za uočavanje nevažećih prijelaza.

Izbjegavajte to kada ulazi nisu sekvencijalni ili kada se provodi istraživačko testiranje različitih funkcionalnosti. Također se kvari za vrlo velike sustave jer broj stanja raste eksponencijalno.

Pokrivenost s 0 prekidača testira svaki valjani prijelaz jednom. Pokrivenost s 1 prekidačem testira svaki par uzastopnih prijelaza. Veća pokrivenost prekidača pronalazi više nedostataka povezanih sa sekvencom, ali zahtijeva više testnih slučajeva.

To je tehnika crne kutije. Testni slučajevi izvedeni su iz očekivanog vanjskog ponašanja stanja i prijelaza, bez potrebe za poznavanjem internog izvornog koda aplikacije.

Alati umjetne inteligencije čitaju zahtjeve i automatski grade modele stanja, a zatim generiraju testne slučajeve koji pokrivaju valjane putove i prijelaze rubova. To smanjuje napor ručnog modeliranja i poboljšava pokrivenost složenih sekvenci.

Da. Umjetna inteligencija može analizirati model stanja i označiti nedostajuće, nedostižne ili nevažeće prijelaze uspoređujući ga s očekivanim obrascima ponašanja, helpping testeri uočavaju praznine koje ručni pregledi tablica često propuste.

Sažmite ovu objavu uz: