Testarea tranziției de stare cu exemplu
⚡ Rezumat inteligent
Testarea tranziției de stare este o tehnică de tip „cutie neagră” care validează modul în care o aplicație se mișcă între stări pe măsură ce condițiile de intrare se schimbă. Acest tutorial explică cele patru părți ale diagramei, diferența dintre diagramele de stare și tabele și exemple practice de ATM și conectare pentru testeri.
Ce este testarea tranziției de stat?
Testarea tranziției de stat este o tehnică de testare de tip „cutie neagră” în care modificările condițiilor de intrare provoacă modificări de stare sau modificări de ieșire în aplicația testată (AUT). Aceasta ajută la analiza comportamentului unei aplicații pentru diferite condiții de intrare, iar testerii pot furniza valori de intrare pozitive și negative în timp ce înregistrează comportamentul sistemului.
Se bazează pe modelul pe care sunt construite sistemul și testele. Orice sistem în care obțineți o ieșire diferită pentru aceeași intrare - în funcție de ce s-a întâmplat anterior - este un sistem cu stări finite. Tehnica de testare a tranziției de stare este utilă acolo unde trebuie să testați diferite tranziții de sistem.
Când se utilizează testarea tranziției de stare
- Când un tester testează aplicația pentru un set finit de valori de intrare.
- Când testerul testează o secvență de evenimente care apar în AUT, permițând verificarea comportamentului aplicației pentru o secvență de valori de intrare.
- Când sistemul testat depinde de evenimente sau valori din trecut.
Când să nu te bazezi pe testarea tranziției de stat
- Când testarea nu este efectuată pentru combinațiile de intrări secvențiale.
- Când testarea vizează diferite funcționalități, cum ar fi testarea exploratorie.
Patru părți ale unei diagrame de tranziție de stare
Există patru componente principale ale modelului de tranziție statală, descrise mai jos.
1) Statele pe care software-ul ar putea-o atinge.
2) Tranziție de la o stare la alta.
3) Evenimente care declanșează o tranziție, cum ar fi închiderea unui fișier sau retragerea de bani.
4) Acțiuni care rezultă dintr-o tranziție, cum ar fi un mesaj de eroare sau primirea de bani.
Diagrama de tranziție a stării vs. tabelul de tranziție a stării
Există două modalități principale de a reprezenta sau proiecta tranzițiile de stare: diagrama tranzițiilor de stare și tabelul de tranziții de stare.
| Aspect | Diagrama de tranziție a stărilor | Tabel de tranziție de stat |
|---|---|---|
| Numit si | Diagramă / Grafic de stare | Tabel de stat |
| Reprezentare | Boxes pentru stări, săgeți pentru tranziții | Grilă de stări (rânduri) și evenimente (coloane) |
| Cel mai bun pentru identificare | Tranziții valide | Tranziții nevalide |
| Fiecare celulă arată | - | Starea atinsă după producerea unui eveniment |
Cum se face o tranziție de stat (exemple)
Exemplul 1: Blocarea codului PIN al bancomatului
Să luăm în considerare o funcție de sistem ATM în care, dacă utilizatorul introduce o parolă nevalidă de trei ori, contul este blocat.
În acest sistem, dacă utilizatorul introduce o parolă validă în oricare dintre primele trei încercări, utilizatorul este autentificat cu succes. Dacă utilizatorul introduce parola invalidă la prima sau a doua încercare, i se cere să o reintroducă. În cele din urmă, dacă utilizatorul introduce parola greșită a treia oară, contul este blocat.
Diagrama de tranziție a stării (Exemplul 1)
În diagramă, ori de câte ori utilizatorul introduce codul PIN corect, acesta trece în starea Acces Permis. Dacă introduce parola greșită, trece la următoarea încercare, iar dacă o face a treia oară, se ajunge în starea Cont Blocat.
Tabel de tranziție a stărilor (Exemplul 1)
| Stat | PIN corect | Cod PIN incorect |
|---|---|---|
| S1) Începeți | S5 | S2 |
| S2) Prima încercare | S5 | S3 |
| S3) A doua încercare | S5 | S4 |
| S4) A 3-a încercare | S5 | S6 |
| S5) Acces acordat | - | - |
| S6) Cont blocat | - | - |
În tabel, când utilizatorul introduce codul PIN corect, starea trece la S5 (Acces Permis). Dacă utilizatorul introduce o parolă greșită, trece la starea următoare, iar după a treia încercare greșită ajunge la starea Cont Blocat.
Exemplul 2: Autentificare pentru rezervarea zborului
În ecranul de conectare pentru rezervarea zborului, trebuie să introduceți numele și parola corecte ale agentului pentru a accesa cerere de rezervare a zborului.
Graficul de tranziție de stat
Aplicația permite trei încercări; dacă utilizatorul introduce parola greșită la a patra încercare, sistemul închide automat aplicația.
Graful de stări vă ajută să determinați tranzițiile valide care vor fi testate. Testarea atât cu parola corectă, cât și cu una incorectă este obligatorie, iar pentru scenarii de testare, conectarea la a 2-a, a 3-a sau a 4-a încercare ar putea fi testată fiecare. Puteți utiliza un tabel de stări pentru a determina tranzițiile de sistem nevalide.
Într-un tabel de stări, toate stările valide sunt listate în stânga, iar evenimentele care le provoacă în partea de sus. Fiecare celulă arată starea în care trece sistemul atunci când are loc evenimentul. De exemplu, în starea S1, o parolă corectă vă duce la S6 (Acces acordat); o parolă greșită la prima încercare vă duce la S3 (a doua încercare). În mod similar, puteți determina toate celelalte stări.
Două stări nevalide sunt evidențiate folosind această metodă. Să presupunem că vă aflați în starea S6 (deja autentificat) și deschideți o altă instanță de rezervare de zbor și introduceți parole pentru același agent. Răspunsul sistemului pentru un astfel de scenariu trebuie testat.
Avantajele și dezavantajele tehnicii de tranziție de stat
| Avantaje | Dezavantaje |
|---|---|
| Oferă o reprezentare picturală sau tabelară a comportamentului sistemului, ajutăping acoperă testerul și înțelege sistemul eficient. | Nu se poate baza pe el în orice moment — de exemplu, nu se potrivește sistemelor care nu sunt finite sau secvențiale. |
| Permite testerului să verifice dacă toate condițiile sunt acoperite și dacă rezultatele sunt înregistrate. | Necesită definirea tuturor stărilor posibile. Acest lucru funcționează pentru sisteme mici, dar nu este posibil pentru cele mai mari din cauza creșterii exponențiale a numărului de stări. |






