zaterdag 14 oktober 2017

Test op "veel gebruikt" of test op "risicovol"?

Een van de grootste uitdagingen van een tester is: wat test je wel en wat test je niet? Zeker als de tijd om te testen beperkter is. De basiskeuze hiervoor is, naar mijn ervaring, de volgende: test je vooral datgene wat veelgebruikt is of test je datgene wat het grootste risico heeft om fout te gaan?

Het verschil

Maar wat maakt het eigenlijk uit welke keuze je maakt? Komt beiden niet grotendeels op hetzelfde neer?

Stel je hebt een personeelsadministratie applicatie bij een bedrijf waar de meeste personeelsleden tussen de 20 en de 30 zijn. En ongeveer 75% is man. Het bedrijf ligt dicht bij de grens met Duitsland, maar de meeste werknemers wonen in Nederland. Dit bedrijf geeft personeelsleden boven de 50 twee extra vakantiedagen.

De gegevens, die waarschijnlijk het meest ingevoerd worden, zijn die van een man tussen de 20 en 30, die woont in Nederland. Alleen: man is de standaard waarde bij het invoeren van nieuwe werknemers. En datzelfde geldt voor de landkeuze "Nederland". Zelfs als er een fout zit in het opslaan van de gegevens (als je het geslacht of land wijzigt, wordt deze niet opgeslagen), zal je deze niet testen. De standaard waarde wordt vaak toch wel opgeslagen. Daarnaast is de kans zeer groot dat de ontwikkelaar al getest heeft met de waarde "Man" en de waarde "Nederland". Dat is tenslotte de meest eenvoudige invoer. En vergeet niet de extra situatie: het kan ook zeker interessant zijn om te kijken of die twee extra dagen toegevoegd worden.

De keuze

Stel, je hebt maar tijd voor 1 testcase. Kies je dan de man tussen de 20 en 30, die woont in Nederland? Of kies je de vrouw boven de 50, die woont in Duitsland? De tweede heeft een veel groter risico om fouten te vinden: in de opslag, in het tonen van het adres en in het berekenen van de vakantiedagen. En je test bijna alle functionaliteit, die de eerste testcase ook zou testen, uitgezonderd de berekening van het aantal vakantiedagen. Dus je test meer en de kans is groter dat je fouten vind. In mijn ogen geen moeilijke keuze.

In de praktijk heb je gelukkig wel meer tijd dan 1 testcase. En de keuze is niet altijd zo simpel, als hierboven beschreven. Om het risico te bepalen, moet je weten welke functionaliteit geraakt wordt en bij welke criteria uitzonderingen van toepassing zijn. Daarnaast kan het handig zijn om te weten waar in het verleden veel fouten zijn gevonden. Dit is echter informatie, die je niet altijd tot je beschikking hebt.

En laat ik volledig en eerlijk blijven: de veelgebruikte optie heeft ook voordelen. Je test of de applicatie voor de meeste werknemers goed zal werken. En niet of de applicatie goed werkt voor een kleinere uitzonderingsgroep.

Over het algemeen is het verstandig beide groepen aandacht te geven in je test. Test de meestgebruikte situaties. Maar kijk ook, voor zover mogelijk, naar de uitzonderingen

Wijk af van de standaard waardes
Met twee testcases kan deze voorwaarde vaak al afgedekt zijn. Veel tijd is dus niet nodig.

Test business rules uitgebreider
Als er business rules bekend zijn, test dan verschillende mogelijkheden van een business rule. De verschillende mogelijkheden kan je, als je moet kiezen, weer afwegen op basis van hoeveelheid gebruik of verschil in uitkomst van de businessrule. Om de tweede afwegingsoptie iets te verduidelijken: als je denkt aan het bovenstaande voorbeeld, dan heb je de invoer "onder de 50" en "50 jaar en ouder" voor de uitkomsten "Standaard vakantiedagen" en "Standaard vakantiedagen + 2". Een werknemer van 20 jaar en 30 jaar zullen dan ook precies dezelfde functionaliteit testen. Een werknemer van 20 jaar en 60 jaar niet.

Vraag naar fouten in het verleden
Veel ontwikkelaars, functioneel ontwerpers, business analisten en andere bijdragers aan de applicatie hebben al veel bugs langs zien komen. Ze kunnen je dan ook waarschijnlijk wel vertellen wat voor soort fouten zich in het verleden in dit onderdeel, in soortgelijke onderdelen of in de applicatie in het algemeen hebben voorgedaan. Andere testers in je bedrijf hebben mogelijk ook informatie hierover. Dit is, hoe kort je tijd ook is, belangrijk om mee te nemen in je test.

De collectie testcases

Verdeel je testtijd tussen "Veel gebruikt" en "Risicovol". Een 50%-50% verdeling tussen deze twee is zeker geen onverstandige keuze. En besef dat, zelfs bij beperkte kennis, testen op "Risicovol" wel degelijk tot de mogelijkheden behoort. Test dus op beide, hoe beperkt je tijd ook is.

Geen opmerkingen:

Een reactie posten

Opmerking: Alleen leden van deze blog kunnen een reactie posten.