Testen van toestandsovergangen met een voorbeeld
โก Slimme samenvatting
State Transition Testing is een black-box-techniek die valideert hoe een applicatie tussen verschillende toestanden overgaat wanneer de invoercondities veranderen. Deze handleiding legt de vier onderdelen van het diagram uit, het verschil tussen toestandsdiagrammen en tabellen, en bevat uitgewerkte voorbeelden van een geldautomaat en een inlogscherm voor testers.
Wat is staatstransitietesten?
Testen van staatstransities Testen is een black-box testtechniek waarbij veranderingen in de invoercondities leiden tot veranderingen in de toestand of uitvoer van de te testen applicatie (AUT). Het helpt bij het analyseren van het gedrag van een applicatie onder verschillende invoercondities, en testers kunnen positieve en negatieve invoerwaarden opgeven terwijl ze het gedrag van het systeem vastleggen.
Het is gebaseerd op het model waarop het systeem en de tests zijn gebouwd. Elk systeem waarbij je een andere uitvoer krijgt voor dezelfde invoer โ afhankelijk van wat er eerder is gebeurd โ is een eindtoestandssysteem. De techniek van toestandsovergangstesten is nuttig wanneer je dit nodig hebt. test verschillende systeemovergangen.
Wanneer moet je toestandsovergangstesten gebruiken?
- Wanneer een tester de applicatie test met een eindige set invoerwaarden.
- Wanneer de tester een reeks gebeurtenissen test die plaatsvinden in de AUT, kan het gedrag van de applicatie worden gecontroleerd aan de hand van een reeks invoerwaarden.
- Wanneer het te testen systeem afhankelijk is van gebeurtenissen of waarden uit het verleden.
Wanneer moet je niet vertrouwen op toestandsovergangstesten?
- Wanneer het testen niet is uitgevoerd voor sequentiรซle invoercombinaties.
- Wanneer de tests zich richten op verschillende functionaliteiten, zoals bij verkennende tests.
Vier onderdelen van een toestandsdiagram
Het toestandsovergangsmodel bestaat uit vier hoofdonderdelen, die hieronder worden beschreven.
1) Staten dat de software mogelijk kan bereiken.
2) Overgang van de ene staat naar de andere.
3) Evenementen die een overgang in gang zetten, zoals het sluiten van een bestand of het opnemen van geld.
4) Acties die het gevolg zijn van een overgang, zoals een foutmelding of het ontvangen van contant geld.
Toestandsovergangsdiagram versus toestandsovergangstabel
Er zijn twee belangrijke manieren om toestandsovergangen weer te geven of te ontwerpen: het toestandsdiagram en de toestandstabel.
| Aspect | Staatsovergangsdiagram | Staatsovergangstabel |
|---|---|---|
| Ook wel genoemd | Toestandsdiagram / Grafiek | Staatstafel |
| Vertegenwoordiging | Boxes voor toestanden, pijlen voor overgangen | Raster van toestanden (rijen) en gebeurtenissen (kolommen) |
| Het beste voor identificatie | Geldige overgangen | Ongeldige overgangen |
| Elke cel toont | - | De toestand die bereikt wordt nadat een gebeurtenis heeft plaatsgevonden |
Hoe maak je een toestandsovergang (voorbeelden)?
Voorbeeld 1: PIN-blokkering bij geldautomaat
Neem bijvoorbeeld een functie van een geldautomaat waarbij de rekening wordt geblokkeerd als de gebruiker drie keer een ongeldig wachtwoord invoert.
In dit systeem wordt de gebruiker succesvol ingelogd als hij bij een van de eerste drie pogingen een geldig wachtwoord invoert. Als de gebruiker bij de eerste of tweede poging een ongeldig wachtwoord invoert, wordt hij gevraagd het wachtwoord opnieuw in te voeren. Als de gebruiker tot slot voor de derde keer een onjuist wachtwoord invoert, wordt het account geblokkeerd.
Toestandsovergangsdiagram (voorbeeld 1)
In het diagram wordt weergegeven dat de gebruiker de status 'Toegang verleend' krijgt zodra hij de juiste pincode invoert. Bij een onjuiste pincode wordt een volgende poging gedaan, en bij een derde onjuiste invoer wordt de status 'Account geblokkeerd' bereikt.
Toestandsovergangstabel (voorbeeld 1)
| Land | Correcte pincode | Onjuiste pincode |
|---|---|---|
| S1) Begin | S5 | S2 |
| S2) 1e poging | S5 | S3 |
| S3) 2e poging | S5 | S4 |
| S4) 3e poging | S5 | S6 |
| S5) Toegang verleend | - | - |
| S6) Account geblokkeerd | - | - |
In de tabel verandert de status naar S5 (Toegang verleend) wanneer de gebruiker de juiste pincode invoert. Als de gebruiker een verkeerd wachtwoord invoert, gaat hij/zij naar de volgende status en na de derde foute poging bereikt hij/zij de status 'Account geblokkeerd'.
Voorbeeld 2: Inloggen voor vluchtreserveringen
Op het inlogscherm voor vluchtreserveringen moet u de juiste agentnaam en het juiste wachtwoord invoeren om toegang te krijgen. aanvraag voor vluchtreservering.
Staatsovergangsgrafiek
De applicatie staat drie pogingen toe; als de gebruiker bij de vierde poging een verkeerd wachtwoord invoert, sluit het systeem de applicatie automatisch af.
De statusgrafiek helpt u bij het bepalen van geldige overgangen die getest moeten worden. Testen met zowel het juiste als een onjuist wachtwoord is verplicht, en voor de test scenario'sHet inloggen bij de 2e, 3e of 4e poging kan worden getest. Je kunt een statustabel gebruiken om ongeldige systeemovergangen te bepalen.
In een statustabel worden alle geldige statussen aan de linkerkant weergegeven en de gebeurtenissen die deze veroorzaken bovenaan. Elke cel toont de status waarnaar het systeem overgaat wanneer de gebeurtenis plaatsvindt. Bijvoorbeeld: in status S1 brengt een correct wachtwoord u naar S6 (Toegang verleend); een onjuist wachtwoord bij de eerste poging brengt u naar S3 (Tweede poging). Op dezelfde manier kunt u alle andere statussen bepalen.
Met deze methode worden twee ongeldige statussen gemarkeerd. Stel dat u zich in status S6 bevindt (al ingelogd) en u opent een andere instantie van de vluchtreservering en voert de wachtwoorden voor dezelfde agent in. De reactie van het systeem op een dergelijk scenario moet worden getest.
Voor- en nadelen van staatstransitietechniek
| Voordelen | Nadelen |
|---|---|
| Biedt een visuele of tabelvormige weergave van het systeemgedrag, helping De tester dekt het systeem grondig af en begrijpt het volledig. | Je kunt er niet altijd op vertrouwen โ het is bijvoorbeeld niet geschikt voor systemen die niet eindig of sequentieel zijn. |
| Hiermee kan de tester controleren of aan alle voorwaarden is voldaan en of de resultaten zijn vastgelegd. | Vereist dat alle mogelijke toestanden worden gedefinieerd. Dit werkt voor kleine systemen, maar schiet tekort voor grotere systemen vanwege de exponentiรซle groei van het aantal toestanden. |






