Regressiestrategie – Heeft u ook een Menhir?

Onlangs herlas ik weer eens een paar van mijn Asterix-strips. In één ervan worden Menhirs, aan de man gebracht aan de gegoede romeinse burgers. Hier is een grote reclame campagne voor nodig. Shows in het Colosseum van Rome en stenen billboards met de tekst: “U heeft al een villa, een wagen en een slaaf, maar heeft u ook een Menhir?”

Toen ik vorige week bij een klant sprak over regressietesten, moest ik ineens denken aan deze campagne. Menhirs zijn misschien nutteloos, een regressiestrategie is dat zeker niet. In deze column in mijn reclame campagne: “U heeft al een testplan en een testscript, maar heeft u ook een regressieteststrategie?”

Een regressieteststrategie definieert hoe je omgaat met de regressietesten. Het hebben van een strategie heeft een aantal voordelen. Ten eerste stelt het je in staat om snel de juiste testen te kunnen selecteren. Dat betekent dat je op het moment dat er echt getest moet worden, je meteen aan de slag kunt gaan. Dit kan erg handig zijn, als je bijvoorbeeld een hot-fix moet testen. Als je maar paar uur testtijd hebt, dan maak je geen goede beurt bij het management, als je kostbare tijd besteed aan het overdenken van je aanpak. Een tweede voordeel is dat je laat zien dan je je zaken op orde hebt en in control bent. Goede marketing dus. Daarnaast geeft de regressieteststrategie handen en voeten aan het change proces en de risicoanalyse. Ze helpt bruggen te slaan naar het release en change proces. Wil je starten met Testautomatisering, dan vertelt een goede regressieteststrategie welke testen in aanmerking komen om als eerste te worden geautomatiseerd.

Als laatste geldt dat het invoeren van een regressieteststrategie eigenlijk heel eenvoudig is. Dat is misschien nog wel het grootste voordeel, winst halen zonder veel inspanning. We onderscheiden de volgende drie stappen:

1. Geef elke testgeval een regressietest indicatie
Geef voor elk testgeval na hoe belangrijk deze is. Dit kun je bijvoorbeeld doen door ze simpel te voorzien van een tag Kritisch, Hoog, Midden, Laag.

Ervaring leert dat  twee test engineers die de testen en het systeem goed kennen in een redelijk snel tempo per test kunnen aangeven, of deze belangrijk is of niet.  Een aantal criteria die het belang van een testgeval bepalen zijn de resultaten van de risicoworkshop, de frequentie van gebruik, de complexiteit van de functie en de ervaring die het testteam heeft met de functie. Uit de bevindingen registratie is vrij snel te achterhalen of er in het verleden veel bugs geregistreerd zijn deze functie. Daarnaast zullen valide testen en testen die veel voorkomende excepties checken hoger aangeslagen worden dan exotische uitzonderingssituaties.

Resultaat van deze exercitie is dat we per functie (usecase, userstory, scenario, etc) weten welke testen we belangrijk vinden.  Dit levert, als we het grafisch weergeven het volgende beeld op. De grafiek geeft het aantal testgevallen per functie weer. Per functie kunnen we tevens zien hoeveel testen er kritisch, Hoog, Midden of Laag zijn.

2. Neem de strategie op in je testplan of algemene teststrategie
De regressieteststrategie kan uit een eenvoudig tabelletje bestaan, dat aangeeft Welke testen er worden uitgevoerd in een bepaalde testrun. Dit tabelletje kan er bijvoorbeeld als volgt uitzien:

Tijdens het changemangementproces brengen we in kaart welke onderdelen geraakt worden en maken we een inschatting van de impact van de door te voeren wijzigingen. Logisch dat we voor die functie die bijvoorbeeld herschreven wordt alle testen willen uitvoeren. Dat zijn de kritische, maar ook de minder belangrijke testen. Onderdelen waarvan we denken dat deze eigenlijk ongemoeid zijn gebleven, nemen we wel op in de regressietest, maar daarvan testen we alleen de kritische testen. Uit de tabel kunnen we tevens opmaken dat we rekening houden met de beschikbare testtijd. Bij een volledige regressietest voeren we meer testen uit, dan als we bijvoorbeeld een hot-fix release moeten testen. Omgekeerd geeft de strategie ook aan dat een release dus niet wordt vrijgegeven zonder dat alle kritische testen zijn uitgevoerd voor alle functies.

Als je een dergelijke strategie opneemt in het testplan of algemene teststrategie, dan heeft dat als voordeel dat je duidelijk kunt maken aan de changemanager, wat jij doet met de impactbepaling en dat je een duidelijk verhaal hebt naar jouw stakeholders. E, als er een keer een hot-fix release nodig is, kun je koel en zelfverzekerd zeggen: “Maak je geen zorgen, ik weet welke testen ik de komende 4 uur ga uitvoeren. Deze situatie is voorzien en voorbereid.”

Ook als je testen wilt automatiseren levert de bovenstaande indeling en strategie voordeel. Immers je ziet direct welke testen het meest vaak worden uitgevoerd en als eerste in aanmerking komen om te automatiseren.

3. Optimaliseer de strategie tijdens het dagelijks gebruik.
Met de eerste twee stappen is de regressieteststrategie eigenlijk al operationeel. Om het echt een succes te laten worden, is het echter raadzaam om hem te optimaliseren. Pas de tabel aan de situatie. Evalueer na een testrun of de prioritering van de testgevallen nog klopt.  Kunnen er misschien testen naar een lagere prioriteit gezet worden, zodat de regressietest de volgende keer sneller klaar is, of juist omgekeerd.

Doe je dit ontstaat dan ontstaat er een levende regressietest set. Een set waarmee ingespeeld kan worden op veranderingen en nieuwe inzichten. Maar dankzij de strategie wordt de set gecontroleerd en beheerst toegepast.

———————
Derk-Jan de Grood werkt als testexpert bij Valori. Hij adviseert organisaties bij het inrichten en verbeteren van hun testactiviteiten. Als productmanager werkt hij aan innovaties in het Valori dienstaanbod. Daarnaast spreekt en publiceert hij met groot enthousiasme over ontwikkelingen in het testvak.