Blog

Tester wees eens voorspelbaar!

Geplaatst op 5/02/2013

Door: Gilbert Smulders, Consultant bij ViQiT

gilbertOnlangs las ik een blog over het inschatten van de testinspanning. Vanuit de  praktijk weet ik dat aan het begin van het project het inderdaad vaak erg moeilijk is om de totale testinspanning in te schatten. Ik zie echter ook heel vaak dat testers tijdens de test uitvoering nog steeds niet kunnen inschatten wanneer ze klaar zijn. Regelmatig gebeurt het dat op de dag dat ze klaar hadden moeten zijn, ze de testmanager vertellen dat ze het niet gaan redden die dag. Vaak blijken ze dan nog meerdere dagen of zelfs weken nodig te hebben. Daarmee brengen ze de testmanager in een onmogelijke positie.
Ik hamer er bij mijn testers altijd op dat zij continu moeten kunnen aangeven wat hun ‘Estimate-to-complete’ (ETC) is. Natuurlijk begrijp ik dat in de eerste fasen van het testraject nog lastig is om een betrouwbare ETC te geven. Je hebt immers nog beperkte informatie. Op dat moment is de ETC gewoon het budget minus de gerealiseerde tijd. Gaandeweg het testtraject komt er steeds meer informatie beschikbaar en doet men allerlei ervaringen op. Daarmee wordt het ook steeds eenvoudiger om een goede inschatting te maken van de ETC. Door dit goed te doen, kan het je nooit meer gebeuren dat een budgetoverschrijding of het niet halen van een deadline je overkomt. Je kunt dit van tevoren zien aankomen en hierover communiceren. Op dat moment kun je in overleg met de opdrachtgever bepalen welke maatregelen genomen moeten worden om de schade te beperken.

Tijdens één van mijn opdrachten, waar er gewerkt werd met een Nederlandse testline, gebeurde het ook steevast dat de deadlines niet gehaald werden en de budgetten werden overschreden. Overschrijding werd aangekondigd als dit al een feit was. Met de test coördinator van één van de projecten die ik daar deed, ben ik om de tafel gaan zitten om dit te voorkomen. We hadden binnen dat project te maken met een wettelijke deadline en er stond veel druk op het testen. De test coördinator vond het erg moeilijk om een ETC te bepalen, omdat hij te maken had met een team van zo’n 7 testers die aan dit project werkte. Doordat de ETC almaar uitbleef, heb ik uiteindelijk besloten om maar zelf aan hen te vertellen wat hun ETC was. De test coördinator kon dat niet bevatten. Ik had immers nog minder informatie over de voortgang dan dat hij had, omdat ik helemaal geen contact had met de testers. Toch wist ik hem precies te vertellen hoeveel tijd zijn testers nog nodig hadden en dat bleek minder te zijn dan initieel gepland. De test coördinator geloofde er helemaal niets van. Ik heb hem toen uitgelegd hoe eenvoudig deze ETC te berekenen was. De testers hadden namelijk keurig gemeld hoeveel testgevallen zij hadden gedefinieerd, hoeveel zij er al hadden uitgevoerd en hoeveel tijd zij al hadden besteed aan de test uitvoer. Ik hanteerde simpelweg de volgende formule:
ETC = (bestede uren test uitvoering / aantal uitgevoerde testgevallen) * nog uit te voeren testgevallen.
Daarmee wist ik een voorspelling te doen over hoeveel tijd zij nog nodig hadden.

Deze voorspelling leverde ons twee voordelen op.

  1. We kregen een zinnige discussie over wat de werkelijke ETC moest zijn.
    Naar idee van de testers klopte mijn inschatting namelijk van geen kant. Immers niet alle testgevallen waren even inspannend om uit te voeren. Er lagen nog een aantal ingewikkelde en tijdrovende testgevallen te wachten. Ineens wisten de testers wel te vertellen hoe lang ze nog nodig hadden voor het uitvoeren van de rest van de testgevallen!
  2. We konden kritisch kijken naar de volgorde van de uit te voeren testgevallen.
    De testers pakte namelijk als eerste de simpele en snel uit te voeren testgevallen op en lieten de lastige langdurende testgevallen voor het laatste liggen. Hierdoor werd de indruk gewekt aan het begin van het testtraject dat alles erg voorspoedig ging. Aan het einde van het testtraject bleken de laatste loodjes ook altijd het zwaarste. Vanaf dat moment gingen ze eenvoudige en lastige testgevallen door elkaar heen uitvoeren. Zodoende werd het aantal uitgevoerde testgevallen per uur ook meer een rechte lijn, in plaats van een curve naar beneden.

Het project werd hierna ineens voorspelbaar. We zagen de vertraging nu op tijd aankomen en konden tijdig maatregelen nemen. Dit had tot resultaat dat we op tijd klaar waren en dat we keurig netjes op de deadline live konden met de nieuwe release. De testers trots, ik blij, mijn opdrachtgever zeer tevreden en ook een tevreden eindklant.

Kortom, het vooraf inschatten van een testtraject is vaak erg lastig, maar gaandeweg een goede inschatting geven van de nog benodigde tijd is een stuk eenvoudiger en dus zeker niet onmogelijk.
Dus testers; geef inzicht in je activiteiten en wordt eindelijk voorspelbaar!