tirsdag den 12. juli 2011

En anden variationsform til automatiseret test

Når man skal lave testcases til en automatiseret regressionstest bruger man ret tit ækvivalenspartitionering til at segmentere testdata således at der er en god beslutningsdækning af den funktionalitet man vil teste. Hvis man så er rigtig god vælger man også grænseværdierne for de enkelte data klasser i sin ækvivalenspartitionering.

Som udgangspunkt er dette dog også en god ide, men testscripts af denne type har en tendens til kun at finde de fejl de finder i starten, og så aldrig mere. Det er klart at det give en vis tryghed at kører disse scripts igen og igen for at sikre at produktet under test stadig lever op det de krav som testen søger at afdække, men i nogen tilfælde vil man gerne have mere.

Det er ikke muligt at kode intelligens ind i sine testscripts, men det man kan gøre er at anvende en tilfældighedsgenerator. Da man sædvanligvis arbejder med et eller andet form for script sprog, så vil der i de fleste tilfælde være en tilfældigheds generator tilgængelig. Man kan så få denne generator til at opfinde værdier der ligger inden for den enkelte ækvivalensklasse sådan der bliver kaldt igennem med en uforudsigelig, men gyldig, værdi ved hvert gennemløb. Dette vil give mulighed for at fange flere bugs alene på grund af uforudsigeligheden.

Hvis man så igen går skridtet videre og gør så mange som muligt af de enkelte beslutningsmuligheder tilfældige, men gyldige, kan man i praksis sige at man har en ny testcase ved hvert gennemløb, det vil med sikkerhed få flere bugs ud af skabet.

Hvis man anvender QTP kan VBScript funktionen Rnd bruges til at generere et pseudo tilfældigt tal. Hvis man vil have det skal være et heltal kan man anvende følgende kommando:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)


Hvis man anvender Ruby, Groovy, Java eller et andet programmeringssprog er der også en tilfældigheds funktion tilgængelig der, se sprogets dokumentations for detaljer.

Ingen kommentarer:

Send en kommentar