Wat is regressietesten?
REGRESSIETESTEN wordt gedefinieerd als een soort softwaretest om te bevestigen dat een recente programma- of codewijziging geen nadelige invloed heeft gehad op bestaande functies.
Regressietesten is niets anders dan een volledige of gedeeltelijke selectie van reeds uitgevoerde testcases die opnieuw worden uitgevoerd om ervoor te zorgen dat bestaande functionaliteiten goed werken.
Deze test wordt gedaan om er zeker van te zijn dat nieuwe codewijzigingen geen neveneffecten hebben op de bestaande functionaliteiten. Het zorgt ervoor dat de oude code nog steeds werkt zodra de laatste codewijzigingen zijn doorgevoerd.
In deze tutorial zullen we leren
- Noodzaak van regressietesten
- Regressietesten uitvoeren
- Testgevallen selecteren voor regressietesten
- Tools voor regressietesten
- Regressietesten en configuratiebeheer
- Verschil tussen hertesten en regressietesten
- Uitdagingen bij regressietesten
- Praktische toepassing van voorbeeld regressietesten met een video
Noodzaak van regressietesten
De noodzaak van regressietesten doet zich voornamelijk voor wanneer het nodig is om de code te wijzigen en we moeten testen of de gewijzigde code het andere deel van de softwaretoepassing beïnvloedt of niet. Bovendien zijn regressietests nodig wanneer een nieuwe functie aan de softwaretoepassing wordt toegevoegd en voor het verhelpen van defecten en het oplossen van prestatieproblemen.
Regressietesten uitvoeren
Om het regressietestproces uit te voeren, moeten we eerst de code debuggen om de bugs te identificeren. Zodra de bugs zijn geïdentificeerd, worden de vereiste wijzigingen aangebracht om het probleem op te lossen, waarna de regressietest wordt uitgevoerd door relevante testgevallen te selecteren uit de testsuite die zowel gewijzigde als getroffen delen van de code omvat.
Software-onderhoud is een activiteit die verbeteringen, foutcorrecties, optimalisatie en verwijdering van bestaande functies omvat. Deze aanpassingen kunnen ervoor zorgen dat het systeem niet correct werkt. Daarom wordt regressietesten noodzakelijk. Regressietesten kunnen worden uitgevoerd met behulp van de volgende technieken:
Test alles opnieuw
- Dit is een van de methoden voor regressietesten waarbij alle tests in de bestaande testemmer of suite opnieuw moeten worden uitgevoerd. Dit is erg duur omdat het enorm veel tijd en middelen vereist.
Selectie regressietest
Regressietestselectie is een techniek waarbij enkele geselecteerde testgevallen uit de testsuite worden uitgevoerd om te testen of de gewijzigde code de softwaretoepassing beïnvloedt of niet. Testcases zijn onderverdeeld in twee delen: herbruikbare testcases die kunnen worden gebruikt in verdere regressiecycli en verouderde testcases die niet in volgende cycli kunnen worden gebruikt.
Prioritering van testcases
- Geef prioriteit aan de testcases afhankelijk van de bedrijfsimpact, kritische en vaak gebruikte functionaliteiten. Selectie van testgevallen op basis van prioriteit zal de regressietestsuite aanzienlijk verminderen.
Testgevallen selecteren voor regressietesten
Uit branchegegevens bleek dat een groot aantal van de defecten die door klanten werden gemeld, te wijten waren aan bugfixes op het laatste moment die bijwerkingen veroorzaakten en daarom is het selecteren van de testcase voor regressietesten een kunst en niet zo eenvoudig. Effectieve regressietests kunnen worden uitgevoerd door de volgende testgevallen te selecteren:
- Testgevallen met frequente defecten
- Functionaliteiten die beter zichtbaar zijn voor de gebruikers
- Testcases die de kernfuncties van het product verifiëren
- Test cases van functionaliteiten die meer en recente veranderingen hebben ondergaan
- Alle integratietestcases
- Alle complexe testgevallen
- Grenswaardetestgevallen
- Een voorbeeld van succesvolle testcases
- Een voorbeeld van mislukkingstestgevallen
Tools voor regressietesten
Als uw software regelmatig wordt gewijzigd, zullen de kosten van regressietests escaleren. In dergelijke gevallen verhoogt het handmatig uitvoeren van testcases zowel de testuitvoeringstijd als de kosten. Automatisering van regressietestgevallen is dan de slimme keuze. De mate van automatisering is afhankelijk van het aantal testgevallen dat herbruikbaar blijft voor opeenvolgende regressiecycli.
Hieronder volgen de belangrijkste tools die worden gebruikt voor zowel functionele als regressietests in software-engineering:
Selenium : dit is een open source-tool die wordt gebruikt voor het automatiseren van webapplicaties. Selenium kan worden gebruikt voor regressietesten in de browser.
Quick Test Professional (QTP) : HP Quick Test Professional is geautomatiseerde software die is ontworpen om functionele en regressietestgevallen te automatiseren. Het gebruikt VBScript-taal voor automatisering. Het is een gegevensgestuurde tool op basis van trefwoorden.
Rational Functional Tester (RFT) : IBM's rationele functionele tester is een Java-tool die wordt gebruikt om de testgevallen van softwareapplicaties te automatiseren. Dit wordt voornamelijk gebruikt voor het automatiseren van regressietestgevallen en kan ook worden geïntegreerd met Rational Test Manager.
Regressietesten en configuratiebeheer
Configuratiebeheer tijdens regressietesten wordt noodzakelijk in Agile-omgevingen waar een code continu wordt gewijzigd. Om effectieve regressietests te garanderen, dient u het volgende in acht te nemen:
- Code die wordt getest op regressie, moet onder een hulpprogramma voor configuratiebeheer vallen
- Tijdens de regressietestfase mogen geen wijzigingen in de code worden toegestaan. Regressietestcode moet immuun worden gehouden voor wijzigingen in ontwikkelaars.
- De database die voor regressietests wordt gebruikt, moet worden geïsoleerd. Wijzigingen in de database mogen niet worden toegestaan
Verschil tussen hertesten en regressietesten:
Opnieuw testen betekent de functionaliteit of bug opnieuw testen om er zeker van te zijn dat de code is opgelost. Als het niet is opgelost, moet Defect opnieuw worden geopend. Indien opgelost, is Defect gesloten.
Regressietesten betekent het testen van uw softwareapplicatie wanneer deze een codewijziging ondergaat, om er zeker van te zijn dat de nieuwe code geen invloed heeft op andere delen van de software.
Bekijk ook de volledige lijst met verschillen hier.
Uitdagingen bij regressietesten:
Hieronder volgen de belangrijkste testproblemen voor het uitvoeren van regressietests:
- Met opeenvolgende regressieruns worden testsuites vrij groot. Vanwege tijd- en budgetbeperkingen kan de volledige regressietestsuite niet worden uitgevoerd
- Het minimaliseren van de testsuite terwijl de maximale testdekking wordt bereikt, blijft een uitdaging
- Het bepalen van de frequentie van regressietests, dwz na elke wijziging of elke build-update of na een heleboel bugfixes, is een uitdaging.
Praktische toepassing van voorbeeld regressietesten met een video
Klik hier als de video niet toegankelijk is
Gevolgtrekking:
Een effectieve regressiestrategie, bespaart organisaties zowel tijd als geld. Volgens een van de casestudy's in het bankdomein bespaart regressie tot 60% tijd aan bugfixes (die zouden zijn opgevangen door regressietests) en 40% aan geld