Ækvivalenspartitionering

Ækvivalenspartitionering er en blackbox testteknik, der anvendes, hvor vi kan identificere grupper af data kaldet ækvivalensklasser eller partitioner, som forventes at være generelt repræsentative for en komponents eller systems opførsel. Dvs. inputdomænet kan opdeles i grupper af data kaldet ækvivalensklasser, hvor samme resultat forventes af alle inputværdier i klassen. Hver klasse repræsenterer et sæt af enten gyldige eller ugyldige værdier. Tanken med ækvivalensklasser er altså, at input hørende til samme klasse vil opføre sig ens. Man behøver derfor ikke teste samtlige værdier i en klasse. Der vælges et testscenarier fra hver klasse for at reducere antallet af testcases. 

Der kan være flere input dvs. klassifikationer, som kombineres. Antallet af nødvendige testcases afhænger af antallet af klassifikationer og antallet af ækvivalensklasser pr klassifikation.

Fordele

  • Udnytter viden om data til at reducerer antallet af testcases betydeligt, hvilket sparer tid og ressourcer.
  • Sikrer, at alle ækvivalensklasser af input testes, hvilket sikrer god testdækning.
  • Hjælper med at identificere fejl, der kan opstå i forskellige inputklasser.

Begrænsninger

  • Kan overse grænseværdier, hvor fejl ofte opstår. Kan derfor med fordel kombineres med grænseværdianalyse, der netop har til formål at teste omkring grænseværdier.
  • Kræver en god forståelse af inputdomænet for at definere ækvivalensklasser korrekt.

Typiske anvendelsestilfælde

Ækvivalenspartitionering bruges typisk, når der er et stort inputdomæne, og det er nødvendigt at reducere antallet af testtilfælde uden at miste testdækning. Det er især nyttigt i funktionel testning, hvor systemets interne struktur ikke er kendt.

Det gælder om at finde klassifikationer og tilhørende ækvivalensklasser/partitioner.

Eksempler

I tabellen herunder er listet eksempler på klassifikationer og tilhørende ækvivalensklasser/partitioner fra en AU IT kontekst.

Klassifikation

Ækvivalensklasser

Persontype

Studerende

Medarbejder

Aflønning

Timelønnet

Ikke timelønnet

Fortrolighed

Fortrolig

Ikke fortrolig

Prøveforløbstyper

Prøveforløb med EN prøve

Prøveforløb med flere prøver

Specialer / Afsluttende prøver

Stedkode

Århus

Herning

Emdrup

Viborg

Uden campus

Prøvetype

Ordinær

Reeksamen

Status

Deltager

Deltager ikke

Deltager måske

Beregning af antal nødvendige testcases

Antal testcases – grundlæggende ækvivalenspartitionering

Antal testcases – hvis man kører 1:1 – dvs. tager en klassifikation ad gangen og en ækvivalensklasse ad gangen – vil antallet af testcases være summen af ækvivalensklasser for de aktuelle klassifikationer.

Hvis vi fx tester eksamenstilmelding/afmelding med klassifikationerne Prøvetype og Status ovenfor, så vil antallet af testcases være 2+3, da der er to prøvetyper og 3 værdier for status.

Fordi man indsætter tilfældigt data for de øvirge klassifikationer kan man risikere at nogle testcases bliver ens. Derfor kan nogle testcases springes over. Hvis man tænker sig lidt om kan man minimere antallet af tescases.

Antal testcases - Minimal antal testcases

Hvis vi går efter det minimale antal testcases, vil man kunne nøjes med et antal testcases svarende til antal klasser i den klassifikation, som har flest klasser fordi man kan sørge for at tilpasse, så de øvrige klasser også bliver dækket ind. Dvs. i dette eks vil vi kunne klare os med 3 testcases.