Testing av tilstandsovergang med eksempel

โšก Smart oppsummering

Testing av tilstandsoverganger er en svartboksteknikk som validerer hvordan en applikasjon beveger seg mellom tilstander nรฅr inndataforholdene endres. Denne veiledningen forklarer de fire diagramdelene, forskjellen mellom tilstandsdiagrammer og tabeller, og eksempler pรฅ fungerte minibanker og pรฅlogging for testere.

  • ๐Ÿ”„ Kjerneide: Teknikken sjekker systematferd nรฅr samme inngang produserer forskjellige utganger basert pรฅ tidligere hendelser (et system med endelig tilstand).
  • ๐Ÿงฉ Fire byggeklosser: Hver modell er bygget fra tilstander, overganger, hendelser og handlinger.
  • ๐Ÿ—บ๏ธ Diagram kontra tabell: Diagrammer viser gyldige overganger; tabeller eksponerer ugyldige overganger.
  • ๐Ÿง Praktiske eksempler: PIN-lรฅsing i minibank og pรฅlogging for flyreservasjoner viser reell dekning.
  • ๐Ÿค– AI-aktivering: AI-verktรธy genererer automatisk tilstandsmodeller fra krav og flagger manglende eller ugyldige overganger.

Testing av overgang til stater โ€“ stater

Hva er State Transition Testing?

Statlig overgangstesting er en svartboks-testteknikk der endringer i inngangsforhold forรฅrsaker tilstandsendringer eller endringer i utdata i applikasjonen under test (AUT). Den hjelper med รฅ analysere oppfรธrselen til en applikasjon for forskjellige inngangsforhold, og testere kan gi positive og negative inngangsverdier mens de registrerer systemets oppfรธrsel.

Den er basert pรฅ modellen som systemet og testene er bygget pรฅ. Ethvert system der du fรฅr forskjellig utdata for samme inngang โ€“ avhengig av hva som skjedde fรธr โ€“ er et system med begrenset tilstand. Teknikken for testing av tilstandsoverganger er nyttig der du trenger teste forskjellige systemoverganger.

Nรฅr man skal bruke testing av tilstandsovergang

  • Nรฅr en tester tester applikasjonen for et begrenset sett med inngangsverdier.
  • Nรฅr testeren tester en sekvens av hendelser som oppstรฅr i AUT-en, slik at applikasjonens oppfรธrsel kan kontrolleres for en sekvens av inngangsverdier.
  • Nรฅr systemet som testes er avhengig av hendelser eller verdier fra fortiden.

Nรฅr man ikke skal stole pรฅ testing av tilstandsoverganger

  • Nรฅr testingen ikke er utfรธrt for sekvensielle inngangskombinasjoner.
  • Nรฅr testingen er rettet mot forskjellige funksjoner, for eksempel utforskende testing.

Fire deler av et tilstandsovergangsdiagram

Det er fire hovedkomponenter i tilstandsovergangsmodellen, beskrevet nedenfor.

1) stater som programvaren kan nรฅ.

Testing av overgang til stater โ€“ stater

2) Overgang fra en stat til en annen.

Testing av tilstandsovergang โ€“ Overgang

3) Begivenheter som utlรธser en overgang, for eksempel รฅ lukke en fil eller ta ut penger.

Testing av tilstandsoverganger โ€“ arrangementer

4) Handlinger som fรธlge av en overgang, for eksempel en feilmelding eller รฅ ha mottatt kontanter.

Testing av tilstandsovergang โ€“ handlinger

Tilstandsovergangsdiagram vs. tilstandsovergangstabell

Det finnes to hovedmรฅter รฅ representere eller designe tilstandsovergang pรฅ: tilstandsovergangsdiagrammet og tilstandsovergangstabellen.

Aspekt Overgangsdiagram for tilstand Overgangstabell for staten
Ogsรฅ kalt Statsdiagram / graf Statens tabell
Representasjon Boxes for tilstander, piler for overganger Rutenett av tilstander (rader) og hendelser (kolonner)
Best for identifisering Gyldige overganger Ugyldige overganger
Hver celle viser - Tilstanden som nรฅs etter at en hendelse har inntruffet

Hvordan foreta en tilstandsovergang (eksempler)

Eksempel 1: Utlรฅsing av PIN-kode for minibank

Tenk deg en minibanksystemfunksjon der kontoen lรฅses hvis brukeren taster inn et ugyldig passord tre ganger.

I dette systemet, hvis brukeren skriver inn et gyldig passord i ett av de tre fรธrste forsรธkene, er brukeren logget inn. Hvis brukeren skriver inn det ugyldige passordet pรฅ fรธrste eller andre forsรธk, blir de bedt om รฅ skrive det inn pรฅ nytt. Til slutt, hvis brukeren skriver inn feil passord en tredje gang, blokkeres kontoen.

Tilstandsovergangsdiagram (eksempel 1)

Overgangsdiagram for PIN-tilstand for minibank

I diagrammet gรฅr brukeren til statusen Tilgang gitt nรฅr de taster inn riktig PIN-kode. Hvis de taster inn feil passord, gรฅr de videre til neste forsรธk, og hvis de gjรธr det samme en tredje gang, nรฅs statusen Konto blokkert.

Tabell for tilstandsovergang (eksempel 1)

Tilstand Riktig PIN-kode Feil PIN
S1) Start S5 S2
S2) 1. forsรธk S5 S3
S3) 2. forsรธk S5 S4
S4) 3. forsรธk S5 S6
S5) Tilgang gitt - -
S6) Konto blokkert - -

I tabellen, nรฅr brukeren taster inn riktig PIN-kode, gรฅr statusen over til S5 (Tilgang gitt). Hvis brukeren taster inn feil passord, gรฅr de videre til neste status, og etter det tredje feilforsรธket nรฅr de statusen Konto blokkert.

Eksempel 2: Innlogging for flyreservasjon

Pรฅ innloggingsskjermen for flyreservasjonen mรฅ du oppgi riktig agentnavn og passord for รฅ fรฅ tilgang til sรธknad om flyreservasjon.

Graf for overgang til stat for flyreservasjon

Statsovergangsgraf

Applikasjonen tillater tre forsรธk; hvis brukeren skriver inn feil passord pรฅ det fjerde forsรธket, lukkes programmet automatisk.

Tilstandsgrafen hjelper deg med รฅ bestemme gyldige overganger som skal testes. Testing med bรฅde riktig og feil passord er obligatorisk, og for test scenarier, innlogging pรฅ andre, tredje eller fjerde forsรธk kan testes. Du kan bruke en tilstandstabell for รฅ bestemme ugyldige systemoverganger.

Tabell for overgang til flyreservasjon

I en tilstandstabell er alle gyldige tilstander listet opp til venstre, og hendelsene som forรฅrsaker dem er listet opp รธverst. Hver celle viser tilstanden systemet gรฅr til nรฅr hendelsen inntreffer. For eksempel, i tilstand S1 tar et riktig passord deg til S6 (Tilgang gitt); et feil passord pรฅ fรธrste forsรธk tar deg til S3 (2. forsรธk). Pรฅ samme mรฅte kan du bestemme alle andre tilstander.

To ugyldige tilstander utheves ved hjelp av denne metoden. Anta at du er i tilstand S6 (allerede logget inn) og du รฅpner en annen instans av flyreservasjonen og skriver inn passord for den samme agenten. Systemresponsen for et slikt scenario mรฅ testes.

Fordeler og ulemper med statlig overgangsteknikk

Fordeler Ulemper
Gir en billedlig eller tabellarisk fremstilling av systemoppfรธrselen, helping testdekselet og forstรฅ systemet effektivt. Kan ikke stoles pรฅ hver gang โ€“ for eksempel passer den ikke systemer som ikke er endelige eller sekvensielle.
Lar testeren bekrefte at alle betingelser er dekket og resultatene registreres. Krever definering av alle mulige tilstander. Dette fungerer for smรฅ systemer, men brytes ned for stรธrre systemer pรฅ grunn av den eksponentielle veksten i antall tilstander.

Spรธrsmรฅl og svar

Tilstandsovergangstesting er en svartboksteknikk som verifiserer hvordan et system beveger seg mellom tilstander nรฅr inngangsbetingelsene endres. Den passer til endelige tilstandssystemer der samme inngang kan produsere forskjellige utganger avhengig av tidligere hendelser.

De fire delene er Tilstander (forhold programvaren kan vรฆre i), Overganger (bevegelse mellom tilstander), Hendelser (utlรธsere som forรฅrsaker en overgang) og Handlinger (resultater av en overgang, for eksempel en melding eller utdata).

Et tilstandsovergangsdiagram bruker bokser og piler og er best for รฅ identifisere gyldige overganger. En tilstandstabell viser tilstander mot hendelser i et rutenett og er best for รฅ oppdage ugyldige overganger.

Unngรฅ det nรฅr innganger ikke er sekvensielle eller nรฅr du utfรธrer utforskende testing av varierte funksjoner. Det brytes ogsรฅ ned for veldig store systemer fordi antallet tilstander vokser eksponentielt.

0-svitsjedekning tester hver eneste gyldige overgang รฉn gang. 1-svitsjedekning tester hvert par av pรฅfรธlgende overganger. Hรธyere svitsjedekning finner flere sekvensrelaterte defekter, men krever flere testtilfeller.

Det er en svartboksteknikk. Testtilfeller utledes fra forventet ekstern oppfรธrsel av tilstander og overganger, uten behov for kunnskap om applikasjonens interne kildekode.

AI-verktรธy leser krav og bygger automatisk tilstandsmodeller, og genererer deretter testtilfeller som dekker gyldige baner og kantoverganger. Dette reduserer manuell modelleringsarbeid og forbedrer dekningen av komplekse sekvenser.

Ja. AI kan analysere en tilstandsmodell og flagge manglende, utilgjengelige eller ugyldige overganger ved รฅ sammenligne den med forventede atferdsmรธnstre.ping testere fanger opp hull som manuelle tabellvurderinger ofte overser.

Oppsummer dette innlegget med: