tirsdag den 21. januar 2014

Brug kombinatorisk test.......til glæde for dig og forretningen!

Et godt og meget anerkendt testprincip tilsiger, at udtømmende test er umulig - dette betyder, at det ganske enkelt ikke er muligt at teste alle kombinationer af eksempelvis data i et moderne it-system. Dels er der for mange kombinationer og dels er der de ofte forekommende projektbegrænsninger i form af tid og penge.

Et lille eksempel kunne være et skærmbillede med 13 dropdown-bokse med hver 3 variable. Hvis alle kombinationer skal testes er der tale om 1.594.323 kombinationer (3 i 13 potens). Et meget stort tal.

Hvis vi nu et øjeblik forudsætter, at vi har en tester til rådighed, og vedkommende arbejder med en dansk normtid på 37 timer om ugen, og 200 dage om året (holder weekend, ferie, helligdage m.m.) og en test tager 1 minut. Under disse omstændigheder vil denne test tage ca. 17 år, og hvis ikke du mener, at forudsætningen om, at en test tager 1 minut er retvisende - så er det jo bare at gange op med et andet tal.

Jeg har prøvet ovenstående eksempel i det web-baserede værktøj HexaWise (www.hexawise.com), som kan arbejde med kombinatorisk test med forskellig styrke. Styrke 2 er det vi normalt omtaler som parvis test, styrke 3 omtales ofte som triple-wise test osv.

Det giver følgende reduktion af testsituationer - den første kolonne viser 'styrken', den anden kolonne viser antal testsituationer som ovenstående eksempel kan reduceres til og den tredje kolonne viser det reducerede antal testsituationer i procent af det samlede antal (1.594.323):

 

Som  det tydeligt kan ses kan der ske en markant reduktion af antal af testsituationer, og samtidig være i kontrol med testen - altså have viden om risiko-niveauet m.m.

Kombinatorisk test er en af de testteknikker jeg er meget glad for at kende og anvende......til stor glæde for forretningen.

Kan vi lære af Hollywood?


søndag den 5. januar 2014

Ak ja - disse 'default værdier' i it-systemer.....NULL, blank m.m.

Så lige et jobopslag, hvor jobtype, arbejdstid og arbejdsdage alle er lig med NULL. Der var også andre problemer med relationer mellem datatyper, men dem viser jeg ikke lige. Men der mangler vist både noget syntaks og sematisk test.


Eller også er der ingen arbejdstid, ingen arbejdsdage, og måske slet ikke noget job.