In deze blog:
- Wat is een regressietest?
- Hoe werkt een regressietest?
- Een overzicht van tien belangrijke aspecten bij het opbouwen van een regressietest set
- Regressietest voorbeeld
Wat is een regressietest?
Regressie is ‘het verschijnsel dat de kwaliteit van een systeem als geheel terugloopt als gevolg van individuele aanpassingen’ (TMap Next, 2006). Om schade als gevolg van deze softwarefouten te voorkomen wordt een regressietest uitgevoerd.
De regressietesten hebben als doel om vast te stellen of alle systeemonderdelen goed blijven functioneren na het doorvoeren van één of meerdere wijzigingen. Ook na het oplossen van openstaande testbevindingen is het raadzaam om een regressietest uit te voeren.
Kortom, een regressietestset is een waardevol instrument om de continuïteit van het IT landschap te borgen.
"Regressie is het verschijnsel dat de kwaliteit van een systeem als geheel terugloopt als gevolg van individuele aanpassingen."
Hoe werkt een regressietest?
Hieronder geven we de tien belangrijkste uitgangspunten weer bij regressietesten. Houdt daarbij in het oog dat het belangrijkste uitgangspunt van regressietesten het waarborgen van de continuïteit richting de business is.
Werk in kleine behapbare stappen toe naar een volwassen regressietest. Onze test-consultants helpen je graag om dit proces te begeleiden of makkelijker te maken met onze oplossingen. Je kan altijd een vrijblijvend adviesgesprek met ons inplannen. We helpen je graag op weg.
Een overzicht van tien belangrijke aspecten bij het opbouwen van een regressietest set:
- Leg in de acceptatiecriteria van projecten vast dat de testware die is opgesteld in het project na afloop wordt overgedragen aan beheer. Deze testware bevat namelijk een goede basis voor de regressietest set van het opgeleverde systeem(onderdeel). Dit scheelt veel tijd en voorkomt het opnieuw uitvinden van het alom bekende wiel.
- De regressietest richt zich met name op de samenhang tussen de gewijzigde en ongewijzigde delen, aangezien hier de kans op fouten het grootste is. Tests waarin individuele functionaliteit wordt getest zijn minder relevant.
- Beperkte tijd en resources is per definitie een uitdaging in iedere testvorm. Daarom geldt ook voor het samenstellen van een regressietest set om deze te baseren op productrisico’s. De onderdelen met de grootste potentiële schade (en foutkans) worden het eerst en het meest diepgaand onder de loep genomen.
- Hoewel in projecten zowel goed- als foutpaden worden getest, is het zinvol om de regressietest geheel te beperken tot de goedpaden (ook wel ‘happy flows’).
- Een grote uitdaging in regressietesten is het up-to-date houden van de testcases en testscenario’s. Zorg daarom dat de regressietest set wordt opgezet op een manier dat de set eenvoudig te onderhouden Bij wijzigingen in functionaliteiten moeten de tests hierop worden aangepast. In Testersuite worden bijvoorbeeld testscenario’s samengesteld op basis van testcases. Hierdoor hoeft alleen de testcase gewijzigd te worden en wordt de aanpassing direct doorgevoerd in alle testscenario’s die gebruik maken van deze testcase.
- Hoewel het samenstellen van een eerste regressietest set een tijdrovende uitdaging is, wordt deze geïnvesteerde tijd terugverdiend naarmate de regressietests hergebruik maken van deze testset. Dit terugverdienen staat overigens nog geheel los van de ‘terugverdiende’ kosten door het voorkomen van productieverstoringen.
- Bij grote releases wordt vaak de gehele regressietestset uitgevoerd. Echter is het niet uitzonderlijk dat kleine ad hoc wijzigingen grote regressieproblemen veroorzaken. De drang om een productieprobleem snel op te lossen is vaak groter dan het besef om de oplossing gestructureerd te testen op regressie. Door de regressietestset schaalbaar op te bouwen, is deze ook als subset in te plannen. Op deze manier is de testset zowel bij ad hoc wijzigingen als bij gepland groot onderhoud bruikbaar.
- Het borgen van grote hoeveelheden testcases en testscenario’s is een enorme uitdaging, zeker omdat naast borging van de tests ook de uitgevoerde tests (inclusief testresultaten) moeten worden behouden. Contentmanagement van testcases en testscenario’s op een netwerkschijf is een fulltime klus. Zorg voor overzicht en versiebeheer door centrale opslag, bijvoorbeeld door gebruik van een test management tool als Testersuite.
- Wie is eigenaar (lees: bewaker!) van de regressietest set? Dit is bij voorkeur iemand met testexpertise die niet in de projectorganisatie werkzaam is. Deze persoon kan toezien op gebruik en hergebruik van de regressietest set, evenals het zorgdragen voor het bijwerken van de regressietest set.
- Naarmate de regressietest vaker is uitgevoerd ontstaat een testset met steeds hogere kwaliteit en detailniveau. Hierdoor is het mogelijk om op termijn deels (!) de tests die herhaaldelijk worden uitgevoerd en niet vaak wijzigen te automatiseren. Dit levert een aanzienlijke tijdbesparing op!
Bij kleine wijzigingen is de testinspanning om regressie uit te sluiten vele malen groter dan het testen van de kleine wijziging zelf. Om deze reden is het verstandig om te overwegen om wijzigingen releasematig door te voeren. Hierbij kan een bredere regressietest worden ingepland en staat de testeffort beter in verhouding tot de hoeveelheid wijzigingen.
Regressietest voorbeeld
Iedere situatie is weer anders. Er zijn tal van verschillende voorbeelden en methodieken van het opbouwen van een regressietest-set. Vanuit ons verleden in de testconsultancy hebben wij hier veel ervaring mee. Daarnaast beschikken wij over tal van voorbeelden van Testersuite gebruikers hoe een regressietest-set op te bouwen. Wanneer je een vrijblijvend adviesgesprek met ons inplant laten we jou graag zien hoe je een regressietest maakt en uitvoert.