Regressietesten is een bepaald type softwaretest om vast te stellen dat een recente wijziging in de software of instellingen van het programma de bestaande functies niet nadelig beïnvloed.
Volledige of gedeeltelijke testset van eerder uitgevoerde testcases voeren we tijdens het regressie testen opnieuw uit. Zo kunnen we namelijk vaststellen dat eerder goedgekeurde of bestaande functionaliteiten ook na de wijziging nog goed werken.
Deze testen doen we dus om ervoor te zorgen dat nieuwe veranderingen geen negatieve bijwerkingen op de bestaande functionaliteit hebben. Het doel is dat de oude code ook nog steeds werkt nadat wijzigingen zijn aangebracht.
Noodzaak van regressietesten
Regressietesten is vereist als er sprake is van:
Regressie testtechnieken
Software-onderhoud heeft betrekking op verbeteringen, foutcorrecties, optimalisatie en verwijdering van bestaande functies van programmatuur. Deze wijzigingen kunnen er namelijk toe leiden dat de software onbedoeld en ongemerkt niet meer correct werkt. Om dat vast te kunnen stellen is regressietesten noodzakelijk. Regressie testen kunnen we uitvoeren met behulp van de volgende technieken:
1. Alles opnieuw testen
- Dit is een van de methoden voor regressietesten waarbij we alle testcases in de bestaande testset opnieuw moeten uitvoeren. Dit is erg duur omdat het enorm veel tijd en middelen kost. Als er sprake is van een project zijn de tijd en het geld hiervoor waarschijnlijk niet eens begroot.
2. Regressie Test Selectie
- In plaats van de volledige testset opnieuw uit te voeren, is het beter om een deel van de testset te selecteren die we moeten uitvoeren.
- Geselecteerde testcases kunnen we categoriseren als herbruikbare testgevallen of verouderde testgevallen.
- Herbruikbare testgevallen kunnen we bovendien gebruiken in opeenvolgende regressiecycli.
- Verouderde testgevallen kunnen we niet in opeenvolgende cycli gebruiken.
3. Prioritering van testgevallen
- Geef prioriteit aan bepaalde testgevallen. Afhankelijk van de impact op de bedrijfsprocessen kiezen we voor de kritische en veel gebruikte functies. Selectie van testgevallen op basis van prioriteit zal de impact van regressietesten op het project namelijk sterk verminderen.
Selectie van testcases voor regressie testen
In de praktijk blijkt dat een groot aantal gerapporteerde softwarefouten te wijten is aan last-minute fixes. Deze fixes veroorzaken tevens ongewenste bijwerkingen. Daarom is het selecteren van de juiste testcases voor regressietesten een kunst en niet zo eenvoudig. Effectieve regressietesten kunnen we echter doen door de volgende testcases te selecteren:
- Testcases die in het verleden veelvuldig fouten aan het licht brachten.
- Functionaliteit die meer zichtbaar is voor de gebruikers.
- Testcases die de belangrijkste kenmerken van de software vertegenwoordigen.
- Testgevallen van functionaliteit die vaak en recente nog is aangepast.
- Alle integratietestcases.
- Alle complexe testcases.
- Grenswaarde testcases.
- Voorbeeld van succesvolle testcases.
- Voorbeeld van testcases voor eerdere storingen.
Regressietesten en configuratiemanagement
Configuratiemanagement tijdens regressietesten is in een Agile omgeving, waar code voortdurend wordt gewijzigd, noodzakelijk. Houd daarom rekening met het volgende om effectieve regressietests te garanderen:
- Beheer de code die wordt getest op regressie met behulp van een configuratiemanagementtool.
- Het doorvoeren van wijzigingen op de software of de instellingen tijdens het regressietesten moeten we voorkomen. Regressietestcode moet bovendien immuun zijn voor wijzigingen van ontwikkelaars.
- De database die we voor regressietests gebruiken, moeten we isoleren. We mogen namelijk geen wijzigingen in de database doorvoeren.
Verschil tussen Regression Testing en Re-Testing
Re-testing betekent het telkens opnieuw testen van de software om er zeker van te zijn dat de fout hersteld is. Als het niet is opgelost, moet de ontwikkelaar er nogmaals naar kijken. Als de fout wel is opgelost, kunnen we de foutmelding afsluiten.
Regressietesten lijkt meer op integratietesten. Het betekent dat je ook niet aangepaste delen de software moet testen tijdens projecten en releases. Je stelt daarbij vast of de wijziging geen invloed heeft op deze delen van de software.
Uitdagingen bij regressietesten
Hieronder volgen de belangrijkste uitdagingen tijdens het regressietesten:
- Dankzij opeenvolgende regressiereeksen krijgen we vrij grote testsets. Vanwege beperkingen in tijd en budget is het echter vaak niet mogelijk om de volledige regressietest uit te voeren.
- Het minimaliseren van het aantal testsessies terwijl we een maximale testdekking bereiken.
- Bepaling van het moment en frequentie van regressietesten. Testen we na iedere wijziging, of iedere build-update of na een aantal bugfixes of per release?
Conclusie
Een effectieve regressiestrategie bespaart een organisatie zowel tijd als geld. Volgens een casestudie bij banken bespaart regressietesten tot 60% tijd aan bugfixes (die dus worden gevonden tijdens regressietesten) en 40% aan budget.
Discussieer mee op LinkedIn.
Samenvatting
ArtikelRegressietesten is echt noodzakelijk
BeschrijvingRegressietesten is een bepaald type softwaretest om vast te stellen of een recente wijziging in de software of instellingen van het programma de bestaande functies niet nadelig beïnvloed.
Auteur
Wim Hoogenraad
Publisher Naam
ITpedia
Publisher Logo