Test af tilstandsovergang med eksempel

โšก Smart opsummering

Test af tilstandsovergange er en black-box-teknik, der validerer, hvordan en applikation bevรฆger sig mellem tilstande, nรฅr inputbetingelserne รฆndrer sig. Denne vejledning forklarer de fire diagramdele, forskellen mellem tilstandsdiagrammer og tabeller samt eksempler pรฅ fungerende ATM- og login-funktioner for testere.

  • ๐Ÿ”„ Kerneidรฉ: Teknikken kontrollerer systemadfรฆrd, nรฅr det samme input producerer forskellige output baseret pรฅ tidligere hรฆndelser (et finite-state system).
  • ๐Ÿงฉ Fire byggesten: Hver model er bygget ud fra tilstande, overgange, begivenheder og handlinger.
  • ๐Ÿ—บ๏ธ Diagram vs. tabel: Diagrammer viser gyldige overgange; tabeller eksponerer ugyldige overgange.
  • ๐Ÿง Praktiske eksempler: Spรฆrring af pinkode til hรฆveautomat og login til flyreservationer demonstrerer reel dรฆkning.
  • ๐Ÿค– AI-aktivering: AI-vรฆrktรธjer genererer automatisk tilstandsmodeller ud fra krav og markerer manglende eller ugyldige overgange.

Test af statsovergang โ€” Staterne

Hvad er State Transition Testing?

Statsovergangstest er en black-box-testteknik, hvor รฆndringer i inputforhold forรฅrsager tilstandsรฆndringer eller outputรฆndringer i den testede applikation (AUT). Det hjรฆlper med at analysere en applikations adfรฆrd under forskellige inputforhold, og testere kan give positive og negative inputvรฆrdier, mens de registrerer systemets adfรฆrd.

Det er baseret pรฅ den model, som systemet og testene er bygget pรฅ. Ethvert system, hvor man fรฅr et forskelligt output for det samme input โ€“ afhรฆngigt af hvad der skete fรธr โ€“ er et finite-state system. Teknikken med tilstandsovergangstestning er nyttig, hvor man har brug for teste forskellige systemovergange.

Hvornรฅr skal man bruge test af tilstandsovergang

  • Nรฅr en tester tester applikationen for et endeligt sรฆt af inputvรฆrdier.
  • Nรฅr testeren tester en rรฆkkefรธlge af hรฆndelser, der forekommer i AUT'en, hvilket gรธr det muligt at kontrollere applikationens adfรฆrd for en rรฆkkefรธlge af inputvรฆrdier.
  • Nรฅr det testede system afhรฆnger af begivenheder eller vรฆrdier fra fortiden.

Hvornรฅr man ikke skal stole pรฅ test af tilstandsovergang

  • Nรฅr testen ikke udfรธres for sekventielle inputkombinationer.
  • Nรฅr testningen er rettet mod forskellige funktionaliteter, sรฅsom udforskende testning.

Fire dele af et tilstandsovergangsdiagram

Der er fire hovedkomponenter i tilstandsovergangsmodellen, som er beskrevet nedenfor.

1) stater som softwaren kan nรฅ.

Test af statsovergang โ€” Staterne

2) Overgang fra รฉn stat til en anden.

Test af tilstandsovergang โ€” Overgang

3) Begivenheder der udlรธser en overgang, sรฅsom lukning af en fil eller hรฆvning af penge.

Test af tilstandsovergang โ€” Begivenheder

4) Handlinger som fรธlge af en overgang, sรฅsom en fejlmeddelelse eller at have fรฅet udbetalt kontanter.

Test af tilstandsovergang โ€” Handlinger

Tilstandsovergangsdiagram vs. Tilstandsovergangstabel

Der er to primรฆre mรฅder at reprรฆsentere eller designe tilstandsovergang pรฅ: tilstandsovergangsdiagrammet og tilstandsovergangstabellen.

Aspect Tilstandsovergangsdiagram Statsovergangstabel
Ogsรฅ kaldet Statsdiagram / graf Statstabel
Reprรฆsentation Boxes for tilstande, pile for overgange Gitter af tilstande (rรฆkker) og begivenheder (kolonner)
Bedste for at identificere Gyldige overgange Ugyldige overgange
Hver celle viser โ€” Den tilstand, der opnรฅs efter en begivenhed

Sรฅdan foretager du en tilstandsovergang (eksempler)

Eksempel 1: Spรฆrring af pinkode til hรฆveautomat

Overvej en hรฆveautomatsystemfunktion, hvor kontoen lรฅses, hvis brugeren indtaster den ugyldige adgangskode tre gange.

I dette system er brugeren logget ind, hvis brugeren indtaster en gyldig adgangskode i et af de fรธrste tre forsรธg. Hvis brugeren indtaster den ugyldige adgangskode i fรธrste eller andet forsรธg, bliver de bedt om at indtaste den igen. Hvis brugeren indtaster den forkerte adgangskode en tredje gang, blokeres kontoen.

Tilstandsovergangsdiagram (eksempel 1)

Diagram over overgangen til ATM-pinkodetilstand

I diagrammet gรฅr brugeren til tilstanden Adgang givet, nรฅr de indtaster den korrekte pinkode. Hvis de indtaster den forkerte adgangskode, gรฅr de videre til nรฆste forsรธg, og hvis de gรธr det samme en tredje gang, nรฅs tilstanden Konto blokeret.

Tabel for tilstandsovergang (eksempel 1)

Tilstand Korrekt pinkode Forkert PIN-kode
S1) Start S5 S2
S2) 1. forsรธg S5 S3
S3) 2. forsรธg S5 S4
S4) 3. forsรธg S5 S6
S5) Adgang givet - -
S6) Konto blokeret - -

I tabellen skifter tilstanden til S5 (Adgang givet), nรฅr brugeren indtaster den korrekte pinkode. Hvis brugeren indtaster en forkert adgangskode, gรฅr de videre til den nรฆste tilstand, og efter det tredje forkerte forsรธg nรฅr de tilstanden Konto blokeret.

Eksempel 2: Login til flyreservation

Pรฅ loginskรฆrmen til flyreservationen skal du indtaste det korrekte agentnavn og den korrekte adgangskode for at fรฅ adgang til ansรธgning om flyreservation.

Graf for overgang til flyreservation

Tilstandsovergangsgraf

Applikationen tillader tre forsรธg; hvis brugeren indtaster den forkerte adgangskode i det fjerde forsรธg, lukker systemet applikationen automatisk.

Tilstandsgrafen hjรฆlper dig med at bestemme gyldige overgange, der skal testes. Testning med bรฅde den korrekte og en forkert adgangskode er obligatorisk, og for test scenarier, login pรฅ 2., 3. eller 4. forsรธg kan hver isรฆr testes. Du kan bruge en tilstandstabel til at bestemme ugyldige systemovergange.

Flyreservationsstatsovergangstabel

I en tilstandstabel er alle gyldige tilstande angivet til venstre, og de hรฆndelser, der forรฅrsager dem, er angivet รธverst. Hver celle viser den tilstand, systemet bevรฆger sig til, nรฅr hรฆndelsen indtrรฆffer. For eksempel, i tilstand S1, fรธrer en korrekt adgangskode dig til S6 (Adgang givet); en forkert adgangskode ved fรธrste forsรธg fรธrer dig til S3 (2. forsรธg). Ligeledes kan du bestemme alle andre tilstande.

To ugyldige tilstande fremhรฆves ved hjรฆlp af denne metode. Antag, at du er i tilstand S6 (allerede logget ind), og du รฅbner en anden instans af flyreservationen og indtaster adgangskoder til den samme agent. Systemets respons for et sรฅdant scenarie skal testes.

Fordele og ulemper ved statsovergangsteknik

Fordele Ulemper
Giver en billedlig eller tabelformet reprรฆsentation af systemets adfรฆrd, helping testdรฆkslet og forstรฅ systemet effektivt. Kan ikke stoles pรฅ hver gang โ€” for eksempel passer den ikke til systemer, der ikke er endelige eller sekventielle.
Lader testeren verificere, at alle betingelser er dรฆkket, og at resultaterne registreres. Krรฆver definition af alle mulige tilstande. Dette fungerer for smรฅ systemer, men fungerer ikke for stรธrre systemer pรฅ grund af den eksponentielle vรฆkst i antallet af tilstande.

Ofte Stillede Spรธrgsmรฅl

Tilstandsovergangstestning er en black-box-teknik, der verificerer, hvordan et system bevรฆger sig mellem tilstande, nรฅr inputbetingelserne รฆndrer sig. Den er egnet til finite-state-systemer, hvor det samme input kan producere forskellige output afhรฆngigt af tidligere begivenheder.

De fire dele er Tilstande (forhold, som softwaren kan vรฆre i), Overgange (bevรฆgelse mellem tilstande), Hรฆndelser (udlรธsere, der forรฅrsager en overgang) og Handlinger (resultater af en overgang, sรฅsom en besked eller output).

Et tilstandsovergangsdiagram bruger bokse og pile og er bedst til at identificere gyldige overgange. En tilstandstabel viser tilstande i forhold til hรฆndelser i et gitter og er bedst til at finde ugyldige overgange.

Undgรฅ det, nรฅr input ikke er sekventielle, eller nรฅr du udfรธrer udforskende test af forskellige funktionaliteter. Det kan ogsรฅ forekomme i meget store systemer, fordi antallet af tilstande vokser eksponentielt.

0-switch coverage tester hver eneste gyldige overgang รฉn gang. 1-switch coverage tester hvert par af fortlรธbende overgange. Hรธjere switch coverage finder flere sekvensrelaterede defekter, men krรฆver flere testtilfรฆlde.

Det er en black-box-teknik. Testcases udledes af den forventede eksterne adfรฆrd af tilstande og overgange, uden behov for kendskab til applikationens interne kildekode.

AI-vรฆrktรธjer lรฆser krav og bygger automatisk tilstandsmodeller, hvorefter de genererer testcases, der dรฆkker gyldige stier og kantovergange. Dette reducerer manuel modelleringsindsats og forbedrer dรฆkningen af โ€‹โ€‹komplekse sekvenser.

Ja. AI kan analysere en tilstandsmodel og markere manglende, utilgรฆngelige eller ugyldige overgange ved at sammenligne den med forventede adfรฆrdsmรธnstre.ping Testere opdager huller, som manuelle tabelgennemgange ofte overser.

Opsummer dette indlรฆg med: