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.

ฤŒ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: