Regressietesten controleert of bestaande software nog goed werkt nadat er een wijziging is aangebracht. Zo ontdek je fouten die bijvoorbeeld door een bugfix, nieuwe functie of technische update ontstaan. In deze blog lees je wanneer regressietesten nodig is, hoe je het uitvoert en wanneer automatisering zinvol is.
Wat betekent regressietesten in de praktijk?
Regressietesten betekent dat je bestaande software opnieuw test nadat er iets is gewijzigd. Je controleert daarmee of functies die vóór de wijziging goed werkten, nog steeds correct werken.
Een aanpassing aan software staat namelijk zelden volledig op zichzelf. Een bugfix, nieuwe functie of wijziging in de code kan onverwacht invloed hebben op andere onderdelen van een applicatie.
Stel dat een ontwikkelaar de berekening van verzendkosten in een webshop aanpast. De nieuwe berekening werkt correct, maar door dezelfde wijziging wordt een kortingscode niet meer goed verwerkt. De nieuwe functie is dan in orde, terwijl bestaande functionaliteit achteruit is gegaan.
Dat is precies wat je met regressietesten probeert te ontdekken.
Wil je de basis van gestructureerd softwaretesten leren? In de ISTQB Foundation, inclusief examenvoucher komen onder andere testprincipes, testtechnieken, onderhoudstesten en testautomatisering aan bod.
Welke fouten voorkom je met regressietesten?
Met regressietesten probeer je vooral fouten te vinden die ontstaan als gevolg van een wijziging. Deze zogenoemde regressiefouten zitten niet altijd in het onderdeel dat direct is aangepast.
Denk bijvoorbeeld aan:
Een bugfix beïnvloedt een andere functie Een ontwikkelaar lost een fout in module A op, maar daardoor werkt een gekoppelde functie in module B niet meer goed.
Een nieuwe functie verstoort bestaande processen Een nieuwe betaalmethode werkt zelf goed, maar zorgt ervoor dat een bestaande betaaloptie niet meer beschikbaar is.
Refactoring verandert onverwacht gedrag De code wordt technisch verbeterd zonder dat de werking zou moeten veranderen. Toch kan daarbij onbedoeld functionaliteit verloren gaan.
Een technische update veroorzaakt problemen Een gewijzigde library, database of configuratie kan gevolgen hebben voor onderdelen die niet direct zijn aangepast.
Je test daarom niet alleen of de nieuwe wijziging werkt. Je kijkt ook welke bestaande onderdelen mogelijk geraakt zijn.
Wanneer voer je regressietesten uit?
Regressietesten is vooral nodig na wijzigingen die bestaande functionaliteit kunnen beïnvloeden. Hoe groter de wijziging en de mogelijke impact, hoe breder je meestal test.
Veelvoorkomende momenten zijn:
na het oplossen van een bug;
na het toevoegen van een nieuwe functie;
voor een nieuwe release;
na refactoring van bestaande code;
na een update van een framework of externe library;
na wijzigingen aan een database, configuratie of infrastructuur;
tijdens of na een sprint binnen Agile-softwareontwikkeling.
Dat betekent niet dat je na iedere kleine wijziging de volledige applicatie opnieuw moet testen. Je bepaalt eerst waar het risico zit. Een kleine tekstwijziging vraagt bijvoorbeeld om een andere aanpak dan een aanpassing aan het inlogproces of de betaalomgeving.
Bij regressietesten draait het daarom niet alleen om meer testen, maar vooral om de juiste onderdelen opnieuw testen.
Hoe pak je een regressietest stap voor stap aan?
Een regressietest begint met het bepalen van de impact van een wijziging. Daarna selecteer je de testgevallen waarmee je zowel het gewijzigde onderdeel als belangrijke gekoppelde functionaliteit controleert.
Een praktische aanpak bestaat uit vijf stappen:
Bepaal wat er is gewijzigd Breng in kaart welke code, functie, configuratie of afhankelijkheid is aangepast.
Onderzoek welke onderdelen geraakt kunnen worden Kijk verder dan alleen de directe wijziging. Controleer ook koppelingen, afhankelijkheden en belangrijke gebruikersprocessen.
Selecteer relevante testgevallen Gebruik bestaande tests voor kritieke functies en voeg nieuwe testgevallen toe wanneer de wijziging nieuwe risico’s oplevert.
Voer de tests uit Dit kan handmatig of automatisch. Bij een grote en regelmatig uitgevoerde regressietestset ligt automatisering vaak voor de hand.
Analyseer afwijkingen Controleer of een mislukte test daadwerkelijk een nieuwe fout is of het gevolg van bewust gewijzigd gedrag.
Een actuele testset is hierbij belangrijk. Verouderde testgevallen zorgen voor onnodig werk en kunnen verkeerde meldingen opleveren.
Wat is het verschil tussen regressietesten en hertesten?
Hertesten controleert of een specifiek defect daadwerkelijk is opgelost. Regressietesten kijkt juist of de wijziging geen nieuwe problemen heeft veroorzaakt in andere delen van de software.
Hertesten
Regressietesten
Doel
Controleren of een fout is opgelost
Controleren of bestaande functies nog werken
Focus
Specifiek defect
Breder deel van de software
Testgevallen
Test die eerder mislukte
Selectie van bestaande tests
Moment
Na een bugfix
Na verschillende soorten wijzigingen
Automatisering
Mogelijk
Vaak waardevol bij herhaling
In de praktijk gebruik je beide vaak na elkaar. Eerst test je opnieuw of de gevonden fout is opgelost. Daarna voer je regressietesten uit om te controleren of de oplossing elders geen problemen heeft veroorzaakt.
Wanneer is testautomatisering zinvol voor regressietesten?
Testautomatisering is vooral interessant wanneer dezelfde regressietests vaak opnieuw moeten worden uitgevoerd. Stabiele en herhaalbare tests kunnen dan automatisch worden uitgevoerd bij nieuwe softwarewijzigingen.
Dat is bijvoorbeeld interessant wanneer een team vaak nieuwe versies uitbrengt of gebruikmaakt van CI/CD. Een automatische testset kan dan snel controleren of belangrijke processen nog functioneren.
Niet iedere regressietest hoeft geautomatiseerd te worden. Handmatig testen kan logischer zijn wanneer een functie sterk verandert, een test weinig wordt uitgevoerd of menselijke beoordeling belangrijk is.
Kijk daarom naar de verhouding tussen de tijd die automatisering kost en hoe vaak je de test daarna opnieuw kunt gebruiken.
Een goede regressietestset bevat vooral tests voor belangrijke en risicovolle functionaliteit. Het doel is niet om zoveel mogelijk testgevallen te verzamelen, maar om met een beheersbare testset zoveel mogelijk relevante fouten te kunnen ontdekken.
Geef bijvoorbeeld prioriteit aan:
processen die essentieel zijn voor gebruikers;
onderdelen die regelmatig veranderen;
functies waarin eerder fouten zijn ontstaan;
koppelingen tussen verschillende systemen of modules;
functies waarvan uitval grote gevolgen heeft.
Onderhoud de testset daarnaast regelmatig. Voeg een test toe wanneer een nieuw defect daar aanleiding toe geeft en verwijder testgevallen die geen waarde meer hebben.
Zo voorkom je dat een regressietestset steeds groter en trager wordt zonder dat de kwaliteit van de tests verbetert.
Hoe zet je regressietesten slim in?
Regressietesten helpt je controleren of bestaande functionaliteit blijft werken nadat software is aangepast. Het belangrijkste is dat je de mogelijke impact van een wijziging begrijpt en op basis daarvan bepaalt wat je opnieuw moet testen.
Wil je softwaretesten breder leren toepassen? Startel heeft ruim 25 jaar ervaring met IT-opleidingen. Met een basisopleiding zoals ISTQB Foundation leer je niet alleen over regressie- en onderhoudstesten, maar ook hoe verschillende testactiviteiten en testtechnieken binnen het volledige softwareontwikkelproces samenkomen.
Bekijk welke training het beste aansluit op jouw volgende stap binnen softwaretesten.
Swipe voor meer
ISTQB Foundation, inclusief examenvoucher
3 dagen
De ISTQB Foundation training biedt jou de essentiële basiskennis en technieken om een succesvolle start te maken als softwaretester. Je leert de kernprincipes van softwaretesten en je zult praktische inzichten opdoen in de verschillende testprincipes en -technieken. Daarbij is de ISTQB CTFL trainin
ISTQB Foundation Agile Tester, inclusief examenvoucher
2 dagen
De ISTQB Foundation Agile Tester training is ideaal voor softwaretesters in een Agile-omgeving. Je leert Agile-principes, testmethoden en effectieve samenwerking binnen ontwikkelteams om softwarekwaliteit te waarborgen. Perfect voor testers die in Agile-projecten willen excelleren.
ISTQB Specialist Test Automation Engineer, inclusief examenvoucher
3 dagen
De ISTQB Specialist Test Automation Engineer training is ideaal voor testers die hun vaardigheden in testautomatisering willen verdiepen. Tijdens de training leer je hoe je geautomatiseerde testsystemen ontwerpt, implementeert en onderhoudt, en hoe je deze optimaal kunt inzetten binnen testprocessen
ISTQB Advanced Test Analyst, inclusief examenvoucher
3 dagen
In de training ISTQB Advanced Test Analyst verdiep jij jouw kennis van softwaretesten en kwaliteitsborging op geavanceerd niveau. Hierbij leer je complexe testscenario’s analyseren, effectieve testgevallen opstellen en risico’s vroegtijdig herkennen binnen softwareprojecten. Daarnaast worden er
ISTQB Advanced Test Management, inclusief examenvoucher
3 dagen
In de training ISTQB Advanced Test Management leer je testactiviteiten effectief te organiseren, te beheren en te optimaliseren binnen complexe softwareontwikkelingsprojecten. Zo ontdek je hoe jij teststrategieën op kunt stellen, hoe jij kwaliteitsrisico’s kunt beheersen, hoe jij testteams aa
TMAP Quality for crossfunctional teams, inclusief examenvoucher
3 dagen
Wil jij softwarekwaliteit verbeteren binnen Agile- en DevOps-teams en tegelijkertijd ontwikkelrisico’s beperken? In de training TMAP Quality for crossfunctional teams leer je hoe kwaliteitsborging een integraal onderdeel wordt van het softwareontwikkelproces binnen multidisciplinaire teams. Je maa
Wil jij de kwaliteit van software naar een hoger niveau brengen binnen Agile- en DevOps-omgevingen? In de training TMap®: High-performance quality engineering leer je hoe jij kwaliteitsborging effectief kunt integreren in een volledig softwareontwikkelproces. Je krijgt inzicht in geavanceerde tests
De Software Tester E-Learning biedt jou meer dan 60 uur aan online cursusmateriaal waarmee je uitgebreide theoretische kennis en praktische vaardigheden verkrijgt op het gebied van zowel handmatig testen als testautomatisering. Je zult leren om software effectief te testen, bugs op te sporen en betr
Moet je na iedere softwarewijziging regressietesten?
Dat hangt af van het risico van de wijziging. Bij kleine aanpassingen kan een beperkte test voldoende zijn, terwijl wijzigingen aan belangrijke of sterk gekoppelde functionaliteit een bredere regressietest vragen.
Kun je regressietesten volledig automatiseren?
Een groot deel kan worden geautomatiseerd als tests stabiel, herhaalbaar en voorspelbaar zijn. Handmatige tests blijven nuttig wanneer menselijke beoordeling nodig is of wanneer functionaliteit nog sterk verandert.
Welke tests moet je als eerste opnemen in een regressietestset?
Begin met functionaliteit die belangrijk is voor gebruikers en waarvan fouten grote gevolgen hebben. Geef daarna prioriteit aan onderdelen die vaak veranderen, veel koppelingen hebben of eerder problemen hebben veroorzaakt.
Wat is een regressiefout?
Een regressiefout is een fout waarbij bestaande functionaliteit niet meer goed werkt na een wijziging aan de software. De fout hoeft niet in het aangepaste onderdeel zelf te zitten.
Heb je een training nodig om regressietesten te leren?
Niet altijd. De basis kun je in de praktijk leren, maar een training is nuttig wanneer je testtechnieken gestructureerd wilt toepassen en beter wilt begrijpen hoe testen binnen het volledige ontwikkelproces past. Voor die basis sluit ISTQB Foundation goed aan.
Benieuwd wat een incompany training voor jouw organisatie kan betekenen? Vul het formulier in en wij nemen snel contact met je op om jullie wensen te bespreken. Samen kijken we naar de mogelijkheden voor een training op maat, afgestemd op jullie team, locatie en planning.