state transition testing technique
Lær, hvad der er State Transition Testing, og hvordan man bruger State Transition Diagram:
I vores sidste artikel så vi ' Årsag og virkning graf 'Test case skriveteknik. I dag går vi til den næste dynamiske test case-skrivemetode - State Transition-teknik.
Dette dokument udforsker udvidelse af dette testkoncept til større applikationer, som ikke er FSM'er som helhed, men nogle af deres komponenter er for at vedtage dens unikke træk ved 'at være stateful' og overgangsregler, hvilket resulterer i mange fordele.
Test af statsovergang
Test af statsovergang er en Black-box testteknik , som kan anvendes til at teste 'Finite State Machines'.
En 'Finite State Machine (FSM)' er et system, der vil være i forskellige diskrete tilstande (som 'klar', 'ikke klar', 'åben', 'lukket', ...) afhængigt af input eller stimuli.
Den diskrete tilstand, som systemet ender med, afhænger af reglerne for systemets overgang. Det vil sige, hvis et system giver en anden output for den samme input afhængigt af dens tidligere tilstand, så er det et endeligt tilstandssystem.
Yderligere, hvis hver transaktion testes i systemet, kaldes den '0-switch' dækning. Hvis test dækker 2 par gyldige transaktioner, er det '1-switch' dækning og så videre.
Hvad du lærer:
Hvad er den tekniske overgangstestteknik?
Statstransitionsteknik er en dynamisk testteknik, der bruges, når systemet er defineret i form af et endeligt antal stater, og overgange mellem staterne styres af systemets regler.
Eller med andre ord, denne teknik bruges, når funktioner i et system er repræsenteret som tilstande, der omdannes til hinanden. Transformationerne bestemmes af softwarens regler. Den billedlige gengivelse kan vises som:
Så her ser vi, at en enhed overgange fra stat 1 til stat 2 på grund af nogle input tilstand, hvilket fører til en begivenhed og resulterer i handling og endelig giver produktion .
For at forklare det med et eksempel:
Du besøger en pengeautomat og trækker $ 1000 ud. Du får dine kontanter. Nu løber du ud af balance og fremsætter nøjagtigt den samme anmodning om at trække $ 1000 ud. Denne gang nægter pengeautomat at give dig pengene på grund af utilstrækkelig balance. Så her overgang , som forårsagede ændring i tilstand er den tidligere tilbagetrækning
Definition af test af tilstandstransitionstest
Efter at have forstået, hvad statsovergang er, kan vi nu nå frem til en mere meningsfuld definition til statsovergangstest. Så det er en slags black-box-test, hvor testeren skal undersøge AUT's opførsel (Application Under Test) mod forskellige inputbetingelser, der er angivet i en sekvens.
Systemets opførsel registreres for både positive og negative testværdier.
Hvornår skal man bruge State Transition Testing?
Test af statlig overgang kan anvendes i følgende situationer:
hvordan man åbner .bin filer windows 10
- Når applikationen under test er et system i realtid med forskellige tilstande og overgange omfattet.
- Når applikationen er afhængig af begivenheden / værdier / forhold fra fortiden.
- Når rækkefølgen af begivenheder skal testes.
- Når applikationen skal testes mod et endeligt sæt inputværdier.
Hvornår skal man ikke bruge State Transition Testing?
Du bør ikke stole på test af statsovergang i følgende situationer:
- Når test ikke er nødvendigt for sekventielle inputkombinationer.
- Når forskellige funktioner i applikationen skal testes (mere som Exploratory testing).
Eksempel på test af tilstandstransition i softwaretest
I det praktiske scenario får testere normalt State Transition-diagrammerne, og vi skal fortolke det.
Disse diagrammer er enten givet af forretningsanalytikerne eller en interessent, og vi bruger disse diagrammer til at bestemme vores testsager.
Lad os overveje nedenstående situation:
Software navn - Manage_display_changes
Specifikationer - Softwaren reagerer på inputanmodninger om at ændre visningstilstand for en tidsvisningsenhed.
Displaytilstand kan indstilles til en af de fire værdier:
- To svarende til at vise enten tid eller dato.
- De to andre ændrer enten klokkeslæt eller dato.
De forskellige tilstande er som følger:
- Skift tilstand (CM): Aktivering af dette skal medføre, at displaytilstand bevæger sig mellem 'displaytid (T)' og 'displaydato (D)'.
- Nulstil (R): Hvis displaytilstanden er indstillet til T eller D, skal en 'nulstilling' medføre, at skærmtilstanden indstilles til 'ændre tid (AT)' eller 'ændre dato (AD)' -tilstande.
- Tidsindstilling (TS): Aktivering af dette skal medføre, at visningstilstand vender tilbage til T fra AT.
- Datosæt (DS): Aktivering af dette skal medføre, at visningstilstand vender tilbage til D fra AD.
Diagram over tilstandsovergang
Lad os nu fortolke det:
Her:
# 1) Forskellige stater er:
- Visningstid (S1),
- Skift tid (S3),
- Visningsdato (S2) og
- Skift dato (S4).
# 2) Forskellige indgange er:
- Skift tilstand (CM),
- Nulstil (R),
- Tidsindstilling (TS),
- Datosæt (DS).
# 3) Forskellige output er:
- Alter Time (AT),
- Displaytid (T),
- Visningsdato (D),
- Ændre dato (AD).
# 4) De ændrede stater er:
- Visningstid (S1),
- Skift tid (S3),
- Vis dato (S2) og
- Skift dato (S4).
Trin 1: Skriv alle starttilstande. Til dette skal du tage en stat ad gangen og se, hvor mange pile der kommer ud af den.
- For stat S1 er der to pile, der kommer ud af den. Den ene pil vil S3 og en anden pil S2.
- For tilstand S2 - Der er 2 pile. Den ene går til tilstand S1 og den anden går til S4
- For tilstand S3 - Kun 1 pil kommer ud af den, der går til tilstand S1
- For tilstand S4 - Kun 1 pil kommer ud af den, der går til tilstand S2
Lad os lægge dette på vores bord:
Da der for tilstand S1 og S2 er to pile, der kommer ud, har vi skrevet det to gange.
Trin -2: For hver stat skal du nedskrive deres endelige overgange.
- For tilstand S1 - De endelige tilstande er S2 og S3
- For tilstand S2 - De endelige tilstande er S1 og S4
- For tilstand S3 - Den endelige tilstand er S1
- For tilstand S4 - endelig tilstand er S2
Sæt dette på bordet som en output / resulterende tilstand.
Trin 3: Skriv ned input- og outputbetingelserne for hver starttilstand og dens tilsvarende finishtilstand
- For at tilstand S1 skal gå til tilstand S2, er indgangen Change Mode (CM) og output er Display Date (D) vist nedenfor:
På lignende måde skal du skrive ned inputbetingelserne og dens output for alle stater som følger:
Trin 4:
Tilføj nu testcase-id'et for hver test vist nedenfor:
Lad os nu konvertere det til formelle testsager:
På denne måde kan alle de resterende testsager udledes. Jeg antager den anden attributterne til testsagerne ligesom forudsætninger, sværhedsgrad, prioritet, miljø, opbygning osv. er også inkluderet i testsagen.
Resumé af trinene igen:
- Identificer de oprindelige tilstande og deres endelige tilstand baseret på de linjer / pile, der kommer ud af den oprindelige tilstand.
- Find ud af inputtilstanden og outputresultatet for hver indledende tilstand
- Marker hvert sæt som en separat testcase.
Flere eksempler på statsovergangsteknik
Her er endnu et eksempel på State Transition Testing-teknikken i større softwareapplikationer.
Beskrivelse:
'' Stateful Functional Testing ' tilgang kan bruges til at teste specifikke dele eller komponenter i applikationen med karakteristikken ved en Finite State Machine (FSM).
Trin til implementering:
# 1) Det første trin i implementeringen af 'Stateful Functional Testing' er at identificere forskellige komponenter / dele af applikationen, der kan kategoriseres som FSM'er. Input, stater og output spores nøje for hver af disse FSM'er.
#to) Det næste trin ville være at udvikle testcases for disse FSM'er baseret på overgangsregler, input, output og overgangstilstande.
# 3) Det tredje trin ville være at integrere testningen af disse komponenter med andre interface-komponenter til validering af applikationen fra ende til anden.
Dette kan forklares ved hjælp af et eksempel på en applikation kaldet 'Husprojekt', der sporer bygningen af et hus med forskellige applikationskomponenter som godkendelse af husets arkitektur, registrering af grunden og huset, udvælgelse af bygherren , godkendelse af boliglån mv.
For eksempel,
Vi overvejer at teste en FSM-komponent i ansøgningen 'Husprojekt': Godkendelse af boliglånet.
Ansøgning om godkendelse af boliglån (HLA)
HLA-applikationen drives af en uafhængig bruger til lånebehandling, der behandler låneansøgningen. De forskellige trin i behandlingen af ansøgningen er beskrevet nedenfor:
1.1.1 Trin 1: Indsamling af dokumenter
Det første trin er indsamlingen af relevante dokumenter til ansøgning om lånet som nævnt i nedenstående tabel. De er 'betingelserne' for en vellykket ansøgning. Ansøgeren indsamler de krævede dokumenter og anvender dem på boliglånet.
Lånebehandlingsbrugeren anerkender modtagelsen af dokumenterne og overfører tilstanden for låneansøgningen (det vil sige tilstanden for HLA-applikationskomponenten) til tilstanden 'Anvendt'.
Tabel 1: Liste over dokumenter
1.1.2 Trin 2: Vurdering af lån
På dette tidspunkt vurderer långiveren låneansøgningen for at afgøre, om den opfylder hans kreditkrav. Støttedokumenterne er verificeret på dette tidspunkt.
Tabel 2: Dokumenternes kritik
De dokumenter, der kræves til vurderingen, det vil sige de “betingelser”, der skal valideres på dette stadium, valideres. Hver tilstand har en kritisk tilknytning (nævnt som 'Y' i tabellen ovenfor). Når alle de nødvendige kritiske betingelser er opfyldt, flytter applikationen til tilstanden 'Bekræftet' - det vil sige, at HLA-applikationskomponenten er i 'Bekræftet' -tilstand.
Punkt at bemærke:
# 1) Dette princip bringer en struktur og objektivitet til testbetingelserne og 'tilstand' -definitioner af systemet .
Det er heller ikke alle 'betingelser' for validering af systemet, der er afgørende for, at det kan nå denne 'Bekræftede' tilstand. I tabellen ovenfor er 4 betingelser markeret som 'Ikke kritisk' for, at applikationen når 'Bekræftet' -tilstand.
#to) Antallet af valideringer kan reduceres optimalt afhængigt af risikoen eller kritikken af de regler, der kræves for hver stat. Dette vil reducere den tid, der kræves til udførelse af test, betydeligt og samtidig ikke kompromittere testkvaliteten.
# 3) Dette er ikke kun nyttigt til test af de enkelte komponenter, men også til test af systemet fra ende til anden.
# 4) Også meget nyttigt, når du opretter regressionstestpakker.
bedste gratis harddiskkloningssoftware 2017
Så på dette stadium er det en test med 0 switch. Men senere godkendelsesfaser kan være 1-switch eller 2-switch-typer valideringer for det trin.
For eksempel, 'Ægteskabsattest' er muligvis ikke for relevant på dette stadium, men i de sidste stadier af godkendelse, når risikoen for ansøgeren til at betale EMI overvejes, kan ægteskabsattesten blive relevant - det vil sige, hvis ægtefællen også er ansat , det reducerer risikoen, og hvis den ikke er ansat, øger den risikoen.
# 5) Ovenstående princip kan bruges til at udvide testbetingelserne afhængigt af komponentens krav på det tidspunkt.
1.1.3 Trin 3: Betinget godkendelse
Den aktuelle status for applikationen er “Bekræftet”. Långiveren giver 'Betinget godkendelse' for låneprocessen for at komme videre. Yderligere valideringer er nødvendige for at flytte HLA-applikationen til staten 'Godkendt'.
1.1.4 Trin 4: Godkendelse
Kritiske valideringer udføres på dette stadium:
- Vurdering fra Långivers pantforsikring (LMI): dette vil involvere 2-switch eller flere valideringer for ejendommens ægthed.
- Långiveren kan kræve information, som ikke blev givet under 'Bekræftelsesfasen'.
Når ovenstående betingelser er opfyldt, flytter applikationen til tilstanden 'Godkendt'. Den endelige myndighed i godkendelsesprocessen kan krydstjekke troværdigheden af låneansøgeren ved at bede om flere detaljer eller måske ikke spørge, om ansøgerens andre dokumenter er afgørende. Det vil sige, at der kræves flere input fra forskellige komponenter i hovedapplikationen for at bevise gyldigheden .
# 6) Med andre ord kan der kræves (eller reduceres) flere valideringer for overgangen til en anden tilstand afhængigt af inputbetingelserne til komponenten fra andre komponenter i applikationen.
Diagrammet nedenfor viser godkendelsesprocessen.
Figur 1: Godkendelsesproces for lån
Risici og udfordringer
- For store applikationer er dyb applikationsviden afgørende for at opdele applikationen i forskellige logiske komponenter for at muliggøre kategorisering som FSM'er og almindelige komponenter. Dette kan kræve kostbar tid fra SMV'er.
- Ikke alle applikationer ville have mulighed for denne type FSM-kategorisering.
- Da FSM-komponenter interagerer med almindelige komponenter i applikationen, kræver input til FSM'er fra forskellige komponenter omhyggelig planlægning og udførelse.
Fordele ved test af statsovergang
- Ved hjælp af denne teknik, ved hjælp af en billedlig eller tabelform af systemadfærd, bliver testeren fortrolig med applikationsdesignet og føles let at dække og designe testene effektivt og effektivt.
- De ikke-planlagte eller ugyldige tilstande i systemet dækkes også ved hjælp af denne teknik.
- Ved hjælp af State Transition-diagrammet er det let at kontrollere, om alle betingelser er dækket.
Ulemper ved statsovergangstest
- Denne teknik kan ikke bruges til ikke-endelige statssystemer.
- Definition af alle mulige tilstande for store og komplekse systemer er en ret besværlig opgave.
Konklusion
Test af tilstandstransition er en nyttig tilgang, når forskellige systemovergange skal testes for finite-state-systemer.
Test af en applikation med begrebet “Stateful Functional Testing” kan give testorganisationer en unik testtilgang til test af komplekse applikationer, hvilket vil øge testudførelsens produktivitet uden at gå på kompromis med testdækningen.
Test af tilstandstransition er en unik testmetode til test af komplekse applikationer, som vil øge produktiviteten af testudførelsen uden at gå på kompromis med testdækningen.
Begrænsningen ved denne teknik er, at den ikke kan bruges før og medmindre systemet under test kun har endelige tilstande.
Anbefalet læsning
- Hvad er defektbaseret testteknik?
- Hvad er OATS (Orthogonal Array Testing Technique)?
- Funktionel testning mod ikke-funktionel testning
- Hvad er sammenligningstest (lær med eksempler)
- Hvad er mutationstest: Vejledning med eksempler
- Hvad er udholdenhedstest i softwaretest (eksempler)
- Hvad er ende til slut testning: E2E Testing Framework med eksempler
- Bedste softwaretestværktøjer 2021 (QA Test Automation Tools)