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.

  • ๐Ÿ”„ Kernidee: De techniek controleert het systeemgedrag wanneer dezelfde invoer verschillende uitvoeren produceert op basis van eerdere gebeurtenissen (een systeem met eindige toestanden).
  • ๐Ÿงฉ Vier bouwstenen: Elk model is opgebouwd uit toestanden, overgangen, gebeurtenissen en acties.
  • ๐Ÿ—บ๏ธ Diagram versus tabel: Diagrammen tonen geldige overgangen; tabellen tonen ongeldige overgangen.
  • ๐Ÿง Praktische voorbeelden: Het blokkeren van de pincode bij geldautomaten en het inloggen voor vluchtreserveringen tonen aan dat de dekking daadwerkelijk werkt.
  • ๐Ÿค– AI-ondersteuning: AI-tools genereren automatisch toestandsmodellen op basis van vereisten en signaleren ontbrekende of ongeldige overgangen.

Testen van de overgang tussen staten โ€” Staten

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.

Testen van de overgang tussen staten โ€” Staten

2) Overgang van de ene staat naar de andere.

Testen van de overgang tussen staten โ€” Overgang

3) Evenementen die een overgang in gang zetten, zoals het sluiten van een bestand of het opnemen van geld.

Testen van de staatsovergang โ€” Evenementen

4) Acties die het gevolg zijn van een overgang, zoals een foutmelding of het ontvangen van contant geld.

Testen van de overgang tussen staten โ€” Acties

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)

ATM PIN-statusovergangsdiagram

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.

Vluchtreserveringsstatusovergangsgrafiek

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.

Tabel voor statusovergang bij vluchtreservering

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.

Veelgestelde vragen

Toestandsovergangstesten zijn een black-boxtechniek die verifieert hoe een systeem tussen toestanden overgaat wanneer de invoercondities veranderen. Het is geschikt voor systemen met een eindig aantal toestanden, waarbij dezelfde invoer verschillende uitvoeren kan opleveren, afhankelijk van eerdere gebeurtenissen.

De vier onderdelen zijn: Staten (de toestanden waarin de software zich kan bevinden), Overgangen (bewegingen tussen staten), Gebeurtenissen (triggers die een overgang veroorzaken) en Acties (de resultaten van een overgang, zoals een bericht of uitvoer).

Een toestandsdiagram gebruikt vakjes en pijlen en is het meest geschikt om geldige overgangen te identificeren. Een toestandstabel geeft toestanden weer in een raster, gekoppeld aan gebeurtenissen, en is het meest geschikt om ongeldige overgangen op te sporen.

Vermijd deze methode wanneer de invoer niet sequentieel is of wanneer u verkennende tests uitvoert van uiteenlopende functionaliteiten. De methode werkt ook niet goed bij zeer grote systemen, omdat het aantal toestanden exponentieel toeneemt.

Bij een dekkingsgraad van 0 schakelaars wordt elke geldige overgang รฉรฉn keer getest. Bij een dekkingsgraad van 1 schakelaar wordt elk paar opeenvolgende overgangen getest. Een hogere dekkingsgraad vindt meer sequentiegerelateerde defecten, maar vereist meer testgevallen.

Het is een black-box-techniek. Testgevallen worden afgeleid van het verwachte externe gedrag van toestanden en overgangen, zonder dat kennis van de interne broncode van de applicatie nodig is.

AI-tools lezen de vereisten en bouwen automatisch toestandsmodellen, waarna ze testgevallen genereren die geldige paden en overgangen tussen randen dekken. Dit vermindert de handmatige modelleerinspanning en verbetert de dekking van complexe sequenties.

Ja. AI kan een toestandsmodel analyseren en ontbrekende, onbereikbare of ongeldige overgangen signaleren door het te vergelijken met verwachte gedragspatronen.ping Testers signaleren hiaten die bij handmatige tabelcontroles vaak over het hoofd worden gezien.

Vat dit bericht samen met: