Testning av tillståndsövergångar med exempel

⚡ Smart sammanfattning

Tillståndsövergångstestning är en black-box-teknik som validerar hur en applikation rör sig mellan tillstånd när indatavillkoren ändras. Den här handledningen förklarar de fyra diagramdelarna, skillnaden mellan tillståndsdiagram och tabeller, och fungerade ATM- och inloggningsexempel för testare.

  • 🔄 Kärnidé: Tekniken kontrollerar systembeteende när samma ingång producerar olika utgångar baserat på tidigare händelser (ett system med ändliga tillstånd).
  • 🧩 Fyra byggstenar: Varje modell är byggd från tillstånd, övergångar, händelser och åtgärder.
  • 🗺️ Diagram kontra tabell: Diagram visar giltiga övergångar; tabeller exponerar ogiltiga övergångar.
  • 🏧 Praktiska exempel: PIN-spärr för bankomat och inloggning för flygbokningar visar på verklig täckning.
  • 🤖 AI-aktivering: AI-verktyg genererar automatiskt tillståndsmodeller från krav och flaggar saknade eller ogiltiga övergångar.

Testning av delstatsövergångar — Delstater

Vad är State Transition Testing?

State Transition Testing är en black-box-testteknik där förändringar i indataförhållanden orsakar tillståndsförändringar eller utdataförändringar i den testade applikationen (AUT). Den hjälper till att analysera en applikations beteende under olika indataförhållanden, och testare kan tillhandahålla positiva och negativa indatavärden samtidigt som de registrerar systemets beteende.

Den är baserad på den modell som systemet och testerna är byggda på. Alla system där du får olika utdata för samma indata – beroende på vad som hände tidigare – är ett system med ändliga tillstånd. Tekniken för tillståndsövergångstestning är användbar där du behöver testa olika systemövergångar.

När man ska använda tillståndsövergångstestning

  • När en testare testar applikationen för en begränsad uppsättning ingångsvärden.
  • När testaren testar en sekvens av händelser som inträffar i AUT:n, vilket gör att applikationens beteende kan kontrolleras för en sekvens av indatavärden.
  • När systemet som testas är beroende av händelser eller värden från det förflutna.

När man inte ska förlita sig på testning av tillståndsövergångar

  • När testningen inte görs för sekventiella ingångskombinationer.
  • När testningen riktar sig mot olika funktioner, såsom utforskande testning.

Fyra delar av ett tillståndsövergångsdiagram

Det finns fyra huvudkomponenter i tillståndsövergångsmodellen, vilka beskrivs nedan.

1) Stater som programvaran kan nå.

Testning av delstatsövergångar — Delstater

2) Övergång från en stat till en annan.

Testning av tillståndsövergång — Övergång

3) Händelser som utlöser en övergång, såsom att stänga en fil eller ta ut pengar.

Testning av tillståndsövergångar — Evenemang

4) Åtgärder som är ett resultat av en övergång, såsom ett felmeddelande eller att man fått kontanter.

Testning av tillståndsövergång — Åtgärder

Tillståndsövergångsdiagram vs. Tillståndsövergångstabell

Det finns två huvudsakliga sätt att representera eller designa tillståndsövergång: tillståndsövergångsdiagrammet och tillståndsövergångstabellen.

Aspect Tillståndsövergångsdiagram Tillståndsövergångstabell
Även kallad Tillståndsdiagram / Graf Statstabell
Representationen Boxes för tillstånd, pilar för övergångar Rutnät av tillstånd (rader) och händelser (kolumner)
Bäst för att identifiera Giltiga övergångar Ogiltiga övergångar
Varje cell visar - Det tillstånd som uppnås efter att en händelse inträffat

Hur man gör en tillståndsövergång (exempel)

Exempel 1: Utlåsning av PIN-kod för bankomat

Tänk dig en bankomatfunktion där kontot låses om användaren anger ett ogiltigt lösenord tre gånger.

I det här systemet är användaren inloggad om hen anger ett giltigt lösenord vid något av de första tre försöken. Om användaren anger det ogiltiga lösenordet vid första eller andra försöket ombeds hen att ange det igen. Slutligen, om användaren anger fel lösenord en tredje gång, blockeras kontot.

Tillståndsövergångsdiagram (exempel 1)

Diagram övergång till PIN-status för bankomat

I diagrammet, när användaren anger rätt PIN-kod, går de vidare till tillståndet Åtkomst beviljad. Om de anger fel lösenord går de vidare till nästa försök, och om de gör samma sak en tredje gång, nås tillståndet Konto blockerat.

Tabell för tillståndsövergång (exempel 1)

Ange Rätt PIN-kod Fel PIN-kod
S1) Starta S5 S2
S2) 1:a försöket S5 S3
S3) Andra försöket S5 S4
S4) 3:e försöket S5 S6
S5) Tillträde beviljad - -
S6) Konto blockerat - -

I tabellen, när användaren anger rätt PIN-kod, övergår tillståndet till S5 (Åtkomst beviljad). Om användaren anger fel lösenord går de vidare till nästa tillstånd, och efter det tredje felaktiga försöket når de tillståndet Konto blockerat.

Exempel 2: Inloggning för flygbokning

På inloggningsskärmen för flygbokning måste du ange rätt agentnamn och lösenord för att komma åt ansökan om flygbokning.

Flygbokning Statsövergångsgraf

Tillståndsövergångsdiagram

Applikationen tillåter tre försök; om användaren anger fel lösenord vid det fjärde försöket stängs applikationen automatiskt.

Tillståndsgrafen hjälper dig att avgöra giltiga övergångar som ska testas. Testning med både rätt och felaktigt lösenord är obligatoriskt, och för testscenarier, inloggning på andra, tredje eller fjärde försöket kan testas. Du kan använda en tillståndstabell för att fastställa ogiltiga systemövergångar.

Tabell för övergång till flygbokningstillstånd

I en tillståndstabell listas alla giltiga tillstånd till vänster och de händelser som orsakar dem överst. Varje cell visar det tillstånd systemet går till när händelsen inträffar. Till exempel, i tillstånd S1 tar ett korrekt lösenord dig till S6 (Åtkomst beviljad); ett felaktigt lösenord vid första försöket tar dig till S3 (Andra försöket). På samma sätt kan du bestämma alla andra tillstånd.

Två ogiltiga tillstånd markeras med den här metoden. Anta att du är i tillstånd S6 (redan inloggad) och öppnar en annan instans av flygbokning och anger lösenord för samma agent. Systemets svar för ett sådant scenario behöver testas.

Fördelar och nackdelar med statlig övergångsteknik

Fördelar Nackdelar
Ger en bild- eller tabellrepresentation av systemets beteende, helping testarens omslag och förstå systemet effektivt. Kan inte litas på varje gång — till exempel passar den inte system som inte är ändliga eller sekventiella.
Låter testaren verifiera att alla villkor är täckta och resultaten registreras. Kräver att alla möjliga tillstånd definieras. Detta fungerar för små system men fungerar inte för större system på grund av den exponentiella tillväxten i antalet tillstånd.

Vanliga frågor

Tillståndsövergångstestning är en black-box-teknik som verifierar hur ett system rör sig mellan tillstånd när ingångsförhållandena ändras. Den passar finita-tillståndssystem där samma ingång kan producera olika utdata beroende på tidigare händelser.

De fyra delarna är Tillstånd (förhållanden som programvaran kan befinna sig i), Övergångar (rörelse mellan tillstånd), Händelser (utlösare som orsakar en övergång) och Åtgärder (resultat av en övergång, såsom ett meddelande eller utdata).

Ett tillståndsövergångsdiagram använder rutor och pilar och är bäst för att identifiera giltiga övergångar. En tillståndstabell listar tillstånd mot händelser i ett rutnät och är bäst för att identifiera ogiltiga övergångar.

Undvik det när indata inte är sekventiella eller när du utför utforskande tester av olika funktioner. Det fungerar också dåligt för mycket stora system eftersom antalet tillstånd växer exponentiellt.

0-switch coverage testar varje giltig övergång en gång. 1-switch coverage testar varje par av på varandra följande övergångar. Högre switch coverage hittar fler sekvensrelaterade defekter men kräver fler testfall.

Det är en black-box-teknik. Testfall härleds från det förväntade externa beteendet hos tillstånd och övergångar, utan att man behöver känna till applikationens interna källkod.

AI-verktyg läser krav och bygger automatiskt tillståndsmodeller, och genererar sedan testfall som täcker giltiga sökvägar och kantövergångar. Detta minskar manuell modelleringsansträngning och förbättrar täckningen av komplexa sekvenser.

Ja. AI kan analysera en tillståndsmodell och flagga saknade, oåtkomliga eller ogiltiga övergångar genom att jämföra den med förväntade beteendemönster.ping testare upptäcker luckor som manuella tabellgranskningar ofta missar.

Sammanfatta detta inlägg med: