Tilstandsovergangstest

Tilstandsovergangstest anvender en tilstandsmodel bestående af tilstande forbundet af transitioner. Bruges hvor systemet eller data i systemet kan være i én af flere tilstande, og hvor bestemte input får systemet til at skifte fra én tilstand til en anden. Testen fokuserer på:

  • Gyldige og ugyldige tilstande
  • Gyldige og ugyldige overgange
  • Handlinger, der giver anledning til overgang fra en tilstand til en anden.
  • Testcases designes ud fra tilstandsmodellen.

Fordele

  • God til komplekse systemer med mange tilstande og regler.
  • Afslører fejl i overgangslogik, som fx manglende eller forkerte overgange.
  • Visualisering via tilstandsdiagrammer gør det lettere at forstå systemets adfærd.

Begrænsninger

  • Kræver at systemet kan modelleres som en tilstandsmaskine – ikke alle systemer egner sig.
  • Kan blive komplekst og uoverskueligt, hvis der er mange tilstande og overgange.
  • Ikke altid egnet til ikke-deterministiske systemer.

Typiske anvendelsestilfælde

  • Brugergrænseflader: fx login-funktioner, hvor systemet skifter tilstand ved korrekt/ukorrekt login.
  • Embedded systems: fx elevatorstyring, trafiklys, eller maskinstyring.
  • Workflows og forretningsprocesser: fx ordrebehandling, hvor en ordre går gennem forskellige tilstande (modtaget, behandlet, sendt, leveret).
  • Fejlhåndtering: fx hvordan systemet reagerer på fejltilstande og vender tilbage til normal drift.

Eksempler

Herunder er beskrevet et eksempel fra AU IT.

Et eksempel, hvor tilstandsovergangstest kan være relevant, kunne være ansættelsesprocessen. Vi starter med en tilstand, hvor vi har en almindelig person. SÅ sker der en hændelse i medarbejderstamkortet, hvor der bliver oprettet en arbejdsrelation på personen, som herefter skifter til tilstanden ”Kommende medarbejder”. Arbejdsrelationen har en startdato. Når denne startdato indtræffer er det en hændelse, som trigger en transition i systemet, så den ”kommende medarbejder” nu skifter til tilstanden ”Medarbejder”. Der kan så ske det, at medarbejderen opsiges eller selv siger op. Hændelsen opsigelse vil give anledning til en transition tilbage til tilstanden ”Person”.

Beregning af antal nødvendige testcases

Tilstande: Person, Kommende medarbejder, Medarbejder

Events/overgange: Opret arbejdsrelation, Startdato indtræffer, Opsigelse

TEGNING!!!!

Enkeltovergange: 3 testcases

I mere komplekse situationer kan det måske give mening at teste overgange parvis eller måske 3 ad gangen.

Det er også ofte muligt at lave EN lang testcase, som dækker alle overgange. Her vil det svare til en hel cyklus fra ansættelse til opsigelse.