state transition testing technique
Lär dig vad som är State Transition Testing och hur du använder State Transition Diagram:
I vår sista artikel såg vi Orsak och effektdiagram ”Testfallsteknik. Idag ska vi gå vidare till nästa dynamiska testfallmetod - State Transition-teknik.
Detta dokument utforskar utvidgningen av detta testkoncept till större applikationer, som inte är FSM som helhet, men några av deras komponenter är för att de ska kunna anta dess unika funktion att vara 'stateful' och övergångsregler, vilket resulterar i många fördelar.
Test av statlig övergång
Test av statlig övergång är en Black-box testteknik , som kan användas för att testa ”Finite State Machines”.
En 'Finite State Machine (FSM)' är ett system som kommer att vara i olika diskreta tillstånd (som 'redo', 'inte redo', 'öppen', 'stängd', ...) beroende på ingångar eller stimuli.
Det diskreta tillståndet som systemet slutar med beror på reglerna för systemets övergång. Det vill säga om ett system ger en annan utgång för samma ingång, beroende på dess tidigare tillstånd, så är det ett ändligt tillståndssystem.
Vidare, om varje transaktion testas i systemet kallas den '0-switch' -täckning. Om testning täcker två par giltiga transaktioner är det '1-switch' -täckning och så vidare.
Vad du kommer att lära dig:
Vad är den statliga övergångstesttekniken?
Statlig övergångsteknik är en dynamisk testteknik som används när systemet definieras i termer av ett begränsat antal tillstånd och övergångarna mellan staterna styrs av systemets regler.
Eller med andra ord, denna teknik används när funktioner i ett system representeras som tillstånd som förvandlas till varandra. Transformationerna bestäms av programvarans regler. Bildrepresentationen kan visas som:
Så här ser vi att en enhet övergångar från stat 1 till stat 2 på grund av vissa inmatning som leder till ett händelse och resulterar i handling och slutligen ger produktion .
För att förklara det med ett exempel:
Du besöker en bankomat och tar ut $ 1000. Du får dina kontanter. Nu har du slut på balans och gör exakt samma begäran om att ta ut $ 1000. Den här gången vägrar bankomaten att ge dig pengarna på grund av otillräcklig balans. Så, här övergång , vilket orsakade förändring i tillstånd är det tidigare uttaget
Definition av testning av statlig övergång
Efter att ha förstått vad statlig övergång är kan vi nu komma fram till en mer meningsfull definition för statlig övergångstestning. Så det är ett slags black-box-test där testaren måste undersöka beteendet hos AUT (Application Under Test) mot olika ingångsförhållanden som ges i en sekvens.
Systemets beteende registreras för både positiva och negativa testvärden.
När ska jag använda State Transition Testing?
Statlig övergångstestning kan användas i följande situationer:
varför du väljer intervjufråga om programvarutestning
- När applikationen som testas är ett system i realtid med olika tillstånd och övergångar omfattade.
- När applikationen är beroende av händelsen / värdena / förhållandena från det förflutna.
- När händelseförloppet måste testas.
- När applikationen måste testas mot en begränsad uppsättning ingångsvärden.
När ska man inte använda State Transition Testing?
Du bör inte lita på State Transition-testning i följande situationer:
- När testning inte krävs för sekventiella ingångskombinationer.
- När applikationens olika funktioner krävs för att testas (mer som Exploratory testing).
Exempel på tillståndsövergångstestning vid programvarutestning
I det praktiska scenariot får testare normalt tillståndsövergångsdiagrammen och vi måste tolka det.
Dessa diagram ges antingen av affärsanalytikerna eller en intressent och vi använder dessa diagram för att fastställa våra testfall.
Låt oss överväga situationen nedan:
Programvarunamn - Manage_display_changes
Specifikationer - Programvaran svarar på inmatningsförfrågningar om att ändra visningsläge för en tidsvisningsenhet.
Displayläget kan ställas in på ett av de fyra värdena:
- Två som motsvarar antingen tid eller datum.
- De andra två när du ändrar antingen tid eller datum.
De olika tillstånden är som följer:
- Ändra läge (CM): Aktivering av detta ska få visningsläget att flytta mellan 'display time (T)' och 'display date (D)'.
- Återställ (R): Om visningsläget är inställt på T eller D, ska en 'återställning' göra att visningsläget ställs in på 'ändra tid (AT)' eller 'ändra datum (AD)'.
- Tidsinställning (TS): Aktivering av detta gör att visningsläget återgår till T från AT.
- Datumuppsättning (DS): Aktivering av detta gör att visningsläget återgår till D från AD.
Statligt övergångsdiagram
Låt oss nu tolka det:
Här:
# 1) Olika stater är:
- Visningstid (S1),
- Ändra tid (S3),
- Visningsdatum (S2) och
- Ändra datum (S4).
# 2) Olika ingångar är:
- Ändra läge (CM),
- Återställ (R),
- Tidsinställning (TS),
- Datumuppsättning (DS).
# 3) Olika utgångar är:
- Alter Time (AT),
- Visningstid (T),
- Visningsdatum (D),
- Ändra datum (AD).
# 4) De förändrade staterna är:
- Visningstid (S1),
- Ändra tid (S3),
- Visningsdatum (S2) och
- Ändra datum (S4).
Steg 1: Skriv alla starttillstånden. För detta, ta ett tillstånd i taget och se hur många pilar som kommer ut från det.
- För stat S1 finns det två pilar som kommer ut ur den. En pil kommer att tillstånd S3 och en annan pil kommer att tillstånd S2.
- För State S2 - Det finns två pilar. Den ena går till staten S1 och den andra går till S4
- För State S3 - Endast en pil kommer ut ur den, går till state S1
- För State S4 - Endast en pil kommer ut ur den, går till state S2
Låt oss lägga detta på vårt bord:
Eftersom det för tillstånd S1 och S2 finns två pilar som kommer ut, har vi skrivit det två gånger.
Steg 2: Skriv ner deras slutliga övergångstillstånd för varje stat.
- För tillstånd S1 - De slutliga tillstånden är S2 och S3
- För stat S2 - De slutliga tillstånden är S1 och S4
- För stat S3 - Det slutliga tillståndet är S1
- För stat S4 - slutlig stat är S2
Lägg detta på bordet som ett Output / Resultant-tillstånd.
Steg 3: Skriv ned ingångs- och utgångsförhållandena för varje startläge och motsvarande målstatus
- För att tillstånd S1 ska gå till tillstånd S2 är ingången Ändringsläge (CM) och utgången är Visningsdatum (D) nedan:
På samma sätt skriver du in ingångsförhållandena och dess utmatning för alla tillstånd enligt följande:
Steg 4:
Lägg nu till testfallets ID för varje test som visas nedan:
Låt oss nu konvertera det till formella testfall:
På detta sätt kan alla återstående testfall härledas. Jag antar att den andra testattributens attribut som förutsättningar, svårighetsgrad, prioritet, miljö, byggnad etc. ingår också i testfallet.
Sammanfattar stegen igen:
- Identifiera de initiala tillstånden och deras slutliga tillstånd baserat på de linjer / pilar som kommer ut ur det ursprungliga tillståndet.
- Ta reda på ingångstillståndet och utgångsresultatet för varje initialtillstånd
- Markera varje uppsättning som ett separat testfall.
Fler exempel på statlig övergångsteknik
Här är ytterligare ett exempel på State Transition Testing-tekniken i större programvaruapplikationer.
Beskrivning:
'' Stateful Functional Testing ” tillvägagångssätt kan användas för att testa specifika delar eller komponenter i applikationen, med egenskaperna hos en Finite State Machine (FSM).
Steg för implementering:
# 1) Det första steget i implementeringen av ”Stateful Functional Testing” är att identifiera olika komponenter / delar av applikationen som kan kategoriseras som FSM. Ingångarna, tillstånden och utgångarna spåras noggrant för var och en av dessa FSM: er.
#två) Nästa steg skulle vara att utveckla testfall för dessa FSM baserat på övergångsregler, ingångar, utgångar och övergångstillstånd.
# 3) Det tredje steget skulle vara att integrera testningen av dessa komponenter med andra gränssnittskomponenter för att validera applikationen från början till slut.
Detta kan förklaras med hjälp av ett exempel på en applikation som heter 'Husprojekt', som spårar byggandet av ett hus, med olika applikationskomponenter som godkännande av husets arkitektur, registrering av tomten och huset, val av byggentreprenör , godkännande av bostadslån etc.
Till exempel,
Vi kommer att överväga att testa en FSM-komponent i ansökan 'Husprojekt': Godkännande av bostadslånet.
Ansökan om godkännande av bostadslån (HLA)
HLA-ansökan kommer att drivas av en oberoende lånebehandlingsanvändare som behandlar låneansökan. Nedan beskrivs de olika stegen i behandlingen av ansökan:
1.1.1 Steg 1: Insamling av dokument
Det första steget är insamlingen av relevanta dokument för att ansöka om lånet som nämns i tabellen nedan. De är ”villkoren” för en framgångsrik ansökan. Sökanden samlar in de handlingar som krävs och tillämpar dem på bostadslånet.
Lånbehandlingsanvändaren bekräftar mottagandet av dokumenten och övergår tillståndet för låneansökan (det vill säga tillståndet för HLA-applikationskomponenten) till tillståndet ”Tillämpat”.
Tabell 1: Dokumentlista
1.1.2 Steg 2: Lånebedömning
I detta skede utvärderar långivaren låneansökan för att avgöra om den uppfyller hans kreditkrav. Dokumenten verifieras just nu.
gratis mp3-nedladdningsapp för Android-telefon
Tabell 2: Dokumentens kritik
De dokument som krävs för bedömningen, det vill säga ”villkoren” som måste valideras i detta skede, valideras. Varje villkor är kritiskt knutet till det (nämns som 'Y' i tabellen ovan). När alla nödvändiga kritiska villkor är uppfyllda flyttar applikationen till tillståndet 'Bekräftad' - det vill säga HLA-applikationskomponenten är i 'Bekräftat' -tillstånd.
Peka på:
# 1) Denna princip ger en struktur och objektivitet för testförhållandena och 'State' -definitionerna för systemet .
Dessutom är inte alla 'villkor' för att validera systemet kritiska för att det ska nå detta 'Bekräftade' tillstånd. I tabellen ovan är 4 villkor markerade som 'Inte kritiska' för att applikationen ska nå tillståndet 'Bekräftad'.
#två) Antalet valideringar kan minskas optimalt, beroende på risken eller kritiken för de regler som krävs för varje stat. Detta kommer att avsevärt minska den tid som krävs för testkörning och samtidigt inte kompromissa med testkvaliteten.
# 3) Detta är inte bara användbart för att testa de enskilda komponenterna utan också för att testa systemet från början till slut.
# 4) Mycket användbart när du skapar regressionstestsviter.
Så i det här skedet är det en typ av 0-omkopplare. Men senare stadier av godkännande kan vara 1-switch eller 2-switch-typer av valideringar för det steget.
Till exempel, ”Äktenskapscertifikat” kanske inte är alltför relevant i detta skede, men i de sista stadierna av godkännande när risken för den sökande att betala EMI övervägs kan äktenskapsintyget bli relevant - det vill säga om makan också är anställd , det minskar risken, och om den inte används ökar den risken.
# 5) Ovanstående princip kan användas för att utvidga testförhållandena beroende på komponentens krav i det skedet.
1.1.3 Steg 3: Villkorligt godkännande
Applikationens nuvarande status är “Bekräftad”. Långivaren skulle ge 'villkorligt godkännande' för att låneprocessen ska gå vidare. Ytterligare valideringar krävs för att flytta HLA-ansökan till tillståndet 'Godkänd'.
1.1.4 Steg 4: Godkännande
Kritiska valideringar genomförs i detta skede:
- Bedömning av långivarnas inteckningsförsäkring (LMI): detta skulle innebära två-växling eller fler valideringar för fastighetens äkthet.
- Långivaren kan kräva information som inte gavs under 'Bekräftelsestadiet'.
När ovanstående villkor är uppfyllda flyttar ansökan till tillståndet 'Godkänd'. Den slutgiltiga myndigheten för godkännandeprocessen kan kryssa för trovärdigheten hos lånesökaren genom att be om mer information eller kanske inte fråga om sökandens andra dokument är avgörande. Det vill säga att fler ingångar från olika komponenter i huvudapplikationen skulle krävas för att bevisa giltigheten .
# 6) Med andra ord kan fler valideringar krävas (eller reduceras) för övergången till ett annat tillstånd beroende på ingångsförhållandena till komponenten från andra komponenter i applikationen.
Diagrammet nedan visar godkännandeprocessen.
Figur 1: Godkännandeprocess för lån
Risker och utmaningar
- För stora applikationer är djup applikationskunskap viktigt för att dela upp applikationen i olika logiska komponenter för att möjliggöra kategorisering som FSM och vanliga komponenter. Detta kan kräva kostsam tid från små och medelstora företag.
- Inte alla applikationer skulle kunna genomföras med denna typ av FSM-kategorisering.
- Eftersom FSM-komponenter interagerar med vanliga komponenter i applikationen kräver ingångar till FSM från olika komponenter noggrann planering och körning.
Fördelar med statlig övergångstestning
- Genom denna teknik, genom att använda en bild- eller tabellföreställning av systembeteende, blir testaren bekant med applikationsdesignen och känns lätt att täcka och designa testerna effektivt och effektivt.
- De oplanerade eller ogiltiga tillstånden i systemet täcks också med hjälp av denna teknik.
- Med hjälp av State Transition-diagrammet är det enkelt att verifiera om alla villkor täcks.
Nackdelar med statlig övergångstestning
- Denna teknik kan inte användas för icke-slutliga statliga system.
- Att definiera alla möjliga tillstånd för stora och komplexa system är en ganska besvärlig uppgift.
Slutsats
State Transition-testning är ett användbart tillvägagångssätt när olika systemövergångar krävs för att testas för finite-state-system.
Att testa en applikation med begreppet ”Stateful Functional Testing” kan ge testorganisationerna en unik testmetod för att testa komplexa applikationer, vilket skulle öka testkörningens produktivitet utan att kompromissa med testtäckningen.
State Transition-testning är en unik testmetod för att testa komplexa applikationer, vilket skulle öka testkörningens produktivitet utan att kompromissa med testtäckningen.
Begränsningen av denna teknik är att den inte kan användas förrän och om inte systemet som testas har endast ändliga tillstånd.
Rekommenderad läsning
- Vad är testbaserad testteknik?
- Vad är ortogonal matrismetest (OATS)?
- Funktionell testning mot icke-funktionell testning
- Vad är jämförelsetestning (lär dig med exempel)
- Vad är mutationstest: handledning med exempel
- Vad är uthållighetstestning vid programvarutestning (exempel)
- Vad är slutet på slutet testning: E2E Testing Framework med exempel
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)