Regressietesten zijn een black box-testtechniek. Het wordt gebruikt om te verifiëren dat een codewijziging in de software geen invloed heeft op de bestaande functionaliteit van het product. Regressietests zorgen ervoor dat het product goed werkt met nieuwe functionaliteit, bugfixes of wijzigingen in de bestaande functie.
Regressietesten zijn een vorm van software testen . Testgevallen worden opnieuw uitgevoerd om te controleren of de vorige functionaliteit van de applicatie goed werkt en dat de nieuwe wijzigingen geen bugs hebben opgeleverd.
Regressietests kunnen worden uitgevoerd op een nieuwe build als er een significante verandering is in de oorspronkelijke functionaliteit. Het zorgt ervoor dat de code nog steeds werkt, zelfs als de wijzigingen plaatsvinden. Regressie betekent het opnieuw testen van die delen van de applicatie die ongewijzigd zijn.
Regressietesten worden ook wel de verificatiemethode genoemd. Testgevallen zijn vaak geautomatiseerd. Testcases moeten vele malen worden uitgevoerd en het keer op keer handmatig uitvoeren van dezelfde testcase is tijdrovend en vervelend.
Voorbeeld van regressietesten
Hier gaan we een casus nemen om de regressietesten efficiënt te definiëren:
Overweeg een product Y, waarin een van de functionaliteiten het activeren van bevestigings-, acceptatie- en verzonden e-mails is. Het moet ook worden getest om er zeker van te zijn dat de wijziging in de code geen invloed op hen heeft. Regressief testen is niet afhankelijk van welke programmeertaal dan ook Java , C++ , C# , enz. Deze methode wordt gebruikt om het product te testen op wijzigingen of uitgevoerde updates. Het zorgt ervoor dat elke wijziging in een product geen invloed heeft op de bestaande module van het product. Controleer of de opgeloste bugs en de nieuw toegevoegde functies geen problemen hebben veroorzaakt in de vorige werkende versie van de Software.
Wanneer kunnen we regressietesten uitvoeren?
We voeren regressietesten uit wanneer de productiecode wordt gewijzigd.
We kunnen regressietesten uitvoeren in het volgende scenario, dit zijn:
1. Wanneer er nieuwe functionaliteit aan de applicatie wordt toegevoegd.
Voorbeeld:
Een website heeft een inlogfunctionaliteit waarmee gebruikers alleen met e-mail kunnen inloggen. Biedt nu een nieuwe functie om in te loggen via Facebook.
2. Wanneer er een wijzigingsvereiste is.
Voorbeeld:
Onthoud het wachtwoord dat is verwijderd van de inlogpagina en dat eerder van toepassing was.
3. Wanneer het defect is verholpen
Voorbeeld:
Stel dat de inlogknop niet werkt op een inlogpagina en een tester meldt een bug waarin staat dat de inlogknop defect is. Zodra de bug door de ontwikkelaars is verholpen, test de tester deze om er zeker van te zijn dat de inlogknop werkt volgens het verwachte resultaat. Tegelijkertijd test de tester andere functionaliteit die verband houdt met de inlogknop.
4. Wanneer er een oplossing voor een prestatieprobleem is
10 van 10
Voorbeeld:
Het laden van een homepagina duurt 5 seconden, waardoor de laadtijd teruggebracht wordt naar 2 seconden.
5. Wanneer er een verandering in de omgeving plaatsvindt
Voorbeeld:
Wanneer we de database updaten van MySql naar Oracle.
Hoe regressietesten uitvoeren?
De behoefte aan regressietesten ontstaat wanneer softwareonderhoud verbeteringen, foutcorrecties, optimalisatie en verwijdering van bestaande functies omvat. Deze wijzigingen kunnen de systeemfunctionaliteit beïnvloeden. Regressietesten zijn in dit geval noodzakelijk.
Regressietesten kunnen worden uitgevoerd met behulp van de volgende technieken:
1. Test alles opnieuw:
Re-Test is een van de manieren om regressietesten uit te voeren. Bij deze aanpak moeten alle testcases opnieuw worden uitgevoerd. Hier kunnen we opnieuw testen definiëren als wanneer een test mislukt, en we vaststellen dat de oorzaak van de fout een softwarefout is. De storing is gemeld, wij kunnen een nieuwe versie van de software verwachten waarin het defect is verholpen. In dit geval moeten we de test opnieuw uitvoeren om te bevestigen dat de fout is verholpen. Dit heet opnieuw testen. Sommigen noemen dit bevestigingstesten.
De hertest is erg duur, omdat er enorm veel tijd en middelen voor nodig zijn.
2. Regressietest Selectie:
- Bij deze techniek wordt een geselecteerde testcasereeks uitgevoerd in plaats van een hele testcasereeks.
- De geselecteerde testcasussen zijn verdeeld in twee cases
- Herbruikbare testgevallen.
- Verouderde testgevallen.
- Herbruikbare testgevallen kunnen worden gebruikt bij de volgende regressiecyclus.
- Verouderde testgevallen kunnen niet worden gebruikt in de volgende regressiecyclus.
3. Prioritering van testgevallen:
Geef prioriteit aan de testcase, afhankelijk van de zakelijke impact, kritieke en vaak gebruikte functionaliteit. Selectie van testgevallen zal de regressietestreeks verkleinen.
Wat zijn de regressietesttools?
Regressietesten zijn een essentieel onderdeel van het QA-proces; tijdens het uitvoeren van de regressie kunnen we met de volgende uitdagingen worden geconfronteerd:
Regressietesten kosten veel tijd om te voltooien. Bij regressietesten worden bestaande tests opnieuw uitgevoerd, dus testers zijn niet enthousiast om de test opnieuw uit te voeren.
Regressietesten zijn ook complex als het nodig is een product te updaten; lijsten van de test nemen ook toe.
Regressietesten zorgen ervoor dat de bestaande productfuncties nog steeds werken. Communicatie over regressietesten met een niet-technische leider kan een moeilijke taak zijn. De directeur wil het product vooruit zien gaan en een aanzienlijke tijdsinvestering doen in regressietesten om ervoor te zorgen dat het werken met de bestaande functionaliteit moeilijk kan zijn.
Regressietestproces
Het regressietestproces kan over het hele land worden uitgevoerd bouwt en de releases .
Regressietesten voor de builds
Telkens wanneer de bug is verholpen, testen we de bug opnieuw en als er een afhankelijke module is, voeren we een regressietest uit.
Bijvoorbeeld , Hoe we de regressietests uitvoeren als we verschillende builds hebben Bouw 1, Bouw 2 en Bouw 3 , die verschillende scenario's hebben.
Bouw1
- Ten eerste zal de klant voorzien in de zakelijke behoeften.
- Vervolgens begint het ontwikkelteam met het ontwikkelen van de functies.
- Daarna gaat het testteam aan de slag met het schrijven van de testgevallen; Ze schrijven bijvoorbeeld 900 testcases voor de release#1 van het product.
- En dan zullen ze beginnen met het implementeren van de testgevallen.
- Zodra het product wordt vrijgegeven, voert de klant één ronde acceptatietesten uit.
- En uiteindelijk wordt het product naar de productieserver verplaatst.
Bouw2
- Nu vraagt de klant om 3-4 extra (nieuwe) features toe te voegen en geeft ook de eisen voor de nieuwe features op.
- Het ontwikkelingsteam begint met het ontwikkelen van nieuwe functies.
- Daarna begint het testteam met het schrijven van de testcase voor de nieuwe functies, en schrijven ze ongeveer 150 nieuwe testcases. Daarom is het totale aantal geschreven testcases 1050 voor beide releases.
- Nu begint het testteam de nieuwe functies te testen met behulp van 150 nieuwe testgevallen.
- Zodra dit klaar is, zullen ze beginnen met het testen van de oude functies met behulp van 900 testgevallen om te verifiëren dat het toevoegen van de nieuwe functie de oude functies heeft beschadigd of niet.
- Hier staat het testen van de oude functies bekend als Regressie testen .
- Nadat alle functies (nieuw en oud) zijn getest, wordt het product aan de klant overgedragen en vervolgens zal de klant de acceptatietests uitvoeren.
- Nadat de acceptatietests zijn voltooid, wordt het product naar de productieserver verplaatst.
Bouw3
- Na de tweede release wil de klant een van de functies zoals Sales verwijderen.
- Vervolgens verwijdert hij/zij alle testgevallen die bij de verkoopmodule horen (ongeveer 120 testgevallen).
- En test vervolgens de andere functie om te verifiëren of alle andere functies goed werken na het verwijderen van de testcases van de verkoopmodule, en dit proces wordt uitgevoerd onder de regressietests.
Opmerking:
- Het testen van de stabiele functies om er zeker van te zijn dat deze kapot zijn vanwege de wijzigingen. Veranderingen hier impliceren dat de wijziging, toevoeging, bugfixing of verwijdering .
- Het opnieuw uitvoeren van dezelfde testgevallen in de verschillende builds of releases is om ervoor te zorgen dat veranderingen (wijziging, toevoeging, bugfixing of verwijdering) geen bugs in stabiele functies introduceren.
Regressietesten gedurende de hele release
Het regressietestproces begint telkens wanneer er een nieuwe release voor hetzelfde project is, omdat de nieuwe functie de oude elementen in de vorige releases kan beïnvloeden.
Om het regressietestproces te begrijpen, volgen we de onderstaande stappen:
Stap 1
Er is geen regressietest aanwezig Vrijgeven #1 omdat er geen wijzigingen plaatsvinden in Release#1, omdat de release zelf nieuw is.
Stap 2
Het concept van regressietesten begint vanaf Vrijgave#2 als de klant iets geeft nieuwe eisen .
Stap 3
Nadat ze eerst de nieuwe vereisten (functies aanpassen) hebben gekregen, zullen zij (de ontwikkelaars en testingenieurs) de behoeften begrijpen voordat ze naar de impactanalyse .
Stap 4
Nadat we de nieuwe vereisten hebben begrepen, zullen we één ronde uitvoeren impactanalyse om het grote risico te vermijden, maar hier rijst de vraag wie de impactanalyse gaat doen?
Stap 5
De impactanalyse wordt gedaan door de klant gebaseerd op hun Zakelijke kennis , de ontwikkelaar gebaseerd op hun kennis van coderen , en het allerbelangrijkste: het wordt gedaan door de test-ingenieur omdat ze de productkennis .
Opmerking: Als één persoon dat wel doet, is het mogelijk dat hij/zij niet alle impactgebieden bestrijkt. Daarom nemen we alle personen mee, zodat we een maximaal impactgebied kunnen bestrijken. De impactanalyse moet worden uitgevoerd in de vroege stadia van de releases.
Stap6
Zodra we klaar zijn met de impactgebied , dan bereidt de ontwikkelaar het impactgebied (document) , en de klant zal tevens de voorbereidingen treffen document over het impactgebied zodat we de maximale dekking van impactanalyse .
Stap 7
Na het voltooien van de impactanalyse sturen de ontwikkelaar, de klant en de testengineer het Rapporten# van de impactgebieddocumenten naar de Testleiding . En ondertussen zijn de testengineer en de ontwikkelaar druk bezig met de nieuwe testcase.
Stap 8
Zodra de testleider het rapportnummer ontvangt, zal hij/zij dat ook doen consolideren de rapporten en opgeslagen in de repository voor testcasevereisten voor uitgave #1.
Opmerking: Testcase Repository: Hier slaan we alle testcases van releases op.
Stap9
Daarna zal de testleider de hulp van RTM inroepen en het nodige kiezen regressietestgeval van de opslagplaats voor testgevallen en die bestanden worden in de Regressietestsuite .
Opmerking:
- De testleider slaat de regressietestcasus op in de regressietestsuite, zodat er geen verdere verwarring ontstaat.
Stap 10
Daarna, als de testingenieur klaar is met het werken aan de nieuwe testgevallen, zal de testleider dat doen wijs het regressietestgeval toe naar de testingenieur.
Stap 11
Wanneer alle regressietestgevallen en de nieuwe functies dat zijn stabiel en passeren , controleer dan de impactgebied met behulp van de testcase totdat het duurzaam is voor oude functies plus de nieuwe functies, en dan wordt het overgedragen aan de klant.
Soorten regressietesten
De verschillende soorten regressietesten zijn als volgt:
- Eenheidsregressietesten [URT]
- Regionale regressietesten[RRT]
- Volledige of volledige regressietesten [FRT]
1) Eenheidsregressietesten [URT]
Hierbij gaan we alleen de gewijzigde eenheid testen, en niet het impactgebied, omdat dit de componenten van dezelfde module kan beïnvloeden.
Voorbeeld 1
In de onderstaande applicatie en in de eerste build ontwikkelt de ontwikkelaar de Zoekopdracht knop die accepteert 1-15 tekens . Vervolgens test de testingenieur de knop Zoeken met behulp van de ontwerptechniek voor testgevallen .
Nu brengt de klant een wijziging aan in de vereiste en vraagt ook dat de Zoekknop kan aanvaarden 1-35 tekens . De testingenieur test alleen de knop Zoeken om te verifiëren dat deze 1-35 tekens bevat en controleert geen verdere kenmerken van de eerste build.
Voorbeeld2
Hier hebben we Bouw B001 , en er wordt een defect geïdentificeerd en het rapport wordt aan de ontwikkelaar bezorgd. De ontwikkelaar zal de bug repareren en enkele nieuwe functies meesturen die in de tweede fase worden ontwikkeld Bouw B002 . Daarna zal de testingenieur pas testen nadat het defect is verholpen.
- De testingenieur zal dit identificeren door op te klikken Indienen knop gaat naar de lege pagina.
- En het is een defect en het wordt naar de ontwikkelaar gestuurd om het te repareren.
- Wanneer de nieuwe build wordt geleverd met de bugfixes, test de testingenieur alleen de knop Verzenden.
- En hier gaan we niet andere functies van de eerste build controleren en de nieuwe functies testen en de tweede build insturen.
- We zijn er zeker van dat het repareren van de Indienen -knop heeft geen invloed op de andere functies, dus testen we alleen de opgeloste bug.
Daarom kunnen we zeggen dat door het testen van alleen de gewijzigde functie de Eenheidsregressietesten .
2) Regionale regressietesten [RRT]
Hierin gaan we de wijziging testen samen met het impactgebied of de impactgebieden, de zogenaamde Regionale regressietesten . Hier testen we het impactgebied, want als er betrouwbare modules zijn, zal dit ook de andere modules beïnvloeden.
Bijvoorbeeld:
In de onderstaande afbeelding kunnen we zien dat we vier verschillende modules hebben, zoals Module A, Module B, Module C en Module D , die door de ontwikkelaars worden geleverd voor het testen tijdens de eerste build. Nu zal de testingenieur de bugs identificeren Module D . Het bugrapport wordt naar de ontwikkelaars gestuurd en het ontwikkelingsteam repareert deze defecten en verzendt de tweede build.
In de tweede build zijn de eerdere defecten verholpen. Nu begrijpt de testingenieur dat de bugfixing in Module D een aantal functies heeft beïnvloed Module A en Module C . Daarom test de testingenieur eerst Module D waar de bug is verholpen en controleert vervolgens de impactgebieden Module A en Module C . Daarom staat deze test bekend als Regionale regressietesten.
Tijdens het uitvoeren van de regionale regressietests kunnen we met het onderstaande probleem worden geconfronteerd:
Probleem:
In de eerste build stuurt de klant een wijziging in de vereisten en wil hij ook nieuwe functies aan het product toevoegen. De behoeften worden naar beide teams gestuurd, dat wil zeggen ontwikkeling en testen.
Nadat de vereisten zijn vastgesteld, begint het ontwikkelingsteam met het uitvoeren van de aanpassing en ontwikkelt het ook de nieuwe functies op basis van de behoeften.
Nu stuurt de testleider een e-mail naar de klanten en vraagt hen of dit allemaal de impactgebieden zijn die zullen worden beïnvloed nadat de noodzakelijke wijzigingen zijn aangebracht. Daarom krijgt de klant een idee welke alle functies opnieuw moeten worden getest. En hij/zij zal ook een mail sturen naar het ontwikkelteam om te weten welke alle gebieden in de applicatie getroffen zullen worden als gevolg van de wijzigingen en toevoegingen van nieuwe features.
En op dezelfde manier stuurt de klant een e-mail naar het testteam voor een lijst met impactgebieden. Daarom verzamelt de testleider de impactlijst van de klant, het ontwikkelingsteam en het testteam.
Dit Impactlijst wordt naar alle testingenieurs gestuurd die naar de lijst kijken en controleren of hun functies zijn gewijzigd en zo ja, dan doen ze dat regionale regressietesten . De impactgebieden en aangepaste gebieden worden allemaal getest door de respectievelijke ingenieurs. Elke testingenieur test alleen de kenmerken die door de wijziging kunnen zijn beïnvloed.
Het probleem met deze bovenstaande aanpak is dat de testleider mogelijk niet het hele idee krijgt van de impactgebieden, omdat het ontwikkelteam en de klant mogelijk niet zoveel tijd hebben om zijn/haar e-mails terug te sturen.
Oplossing
Om het bovenstaande probleem op te lossen, volgen we het onderstaande proces:
Armstrong nummer
Wanneer er een nieuwe build komt met de nieuwste functies en bugfixes, zal het testteam een bijeenkomst organiseren waar ze zullen bespreken of hun functies van invloed zijn vanwege de bovenstaande wijziging. Daarom zullen ze één ronde doen Impactanalyse en genereer de Impactlijst . In deze specifieke lijst probeert de testingenieur de maximaal waarschijnlijke impactgebieden in te sluiten, wat ook de kans op het krijgen van de defecten verkleint.
Wanneer er een nieuwe build komt, volgt het testteam de onderstaande procedure:
- Ze zullen rooktesten uitvoeren om de basisfunctionaliteit van een applicatie te controleren.
- Vervolgens zullen ze nieuwe functies testen.
- Daarna zullen ze de gewijzigde functies controleren.
- Zodra ze klaar zijn met het controleren van de gewijzigde functies, zal de testingenieur de bugs opnieuw testen.
- En dan zullen ze het impactgebied controleren door de regionale regressietesten uit te voeren.
Nadeel van het gebruik van eenheids- en regionale regressietests
Hieronder volgen enkele nadelen van het gebruik van eenheids- en regionale regressietests:
- Mogelijk missen we een impactgebied.
- Het is mogelijk dat we het verkeerde impactgebied identificeren.
Opmerking: we kunnen zeggen dat het grote werk dat we doen aan de regionale regressietests ertoe zal leiden dat we een groter aantal defecten zullen krijgen. Maar als we met dezelfde toewijding aan de volledige regressietests werken, zullen we minder defecten tegenkomen. Daarom kunnen we hier vaststellen dat verbetering van de testinspanning ons niet zal helpen om meer defecten te krijgen.
3) Volledige regressietesten [FRT]
Tijdens de tweede en derde release van het product vraagt de klant om het toevoegen van 3-4 nieuwe functies, en ook moeten enkele defecten uit de vorige release worden verholpen. Vervolgens zal het testteam de impactanalyse uitvoeren en vaststellen dat de bovenstaande wijziging ons ertoe zal brengen het hele product te testen.
Daarom kunnen we zeggen dat het testen van de gewijzigde kenmerken En alle resterende (oude) functies heet de Volledige regressietesten .
Wanneer voeren we volledige regressietesten uit?
We voeren de FRT uit als we aan de volgende voorwaarden voldoen:
- Wanneer de wijziging plaatsvindt in het bronbestand van het product. Bijvoorbeeld , JVM is het rootbestand van de JAVA-applicatie, en als er een verandering in JVM gaat plaatsvinden, wordt het hele JAVA-programma getest.
- Wanneer we n-aantal wijzigingen moeten uitvoeren.
Opmerking:
Het testen van regionale regressie is de ideale benadering van regressietesten, maar het probleem is dat we tijdens het uitvoeren van de regionale regressietesten veel fouten over het hoofd kunnen zien.
En hier gaan we dit probleem oplossen met behulp van de volgende aanpak:
- Wanneer de aanvraag voor het testen wordt ingediend, zal de testingenieur de eerste 10-14 cycli testen en de RRT .
- Vervolgens doen we voor de 15e cyclus FRT. En nogmaals, voor de volgende 10-15 cyclus doen we dat Regionale regressietesten , en voor de 31e cyclus doen we de volledige regressietesten , en zo gaan we door.
- Maar gedurende de laatste tien cyclussen van de release zullen we alleen optreden volledige regressietesten .
Als we de bovenstaande aanpak volgen, kunnen we dus meer defecten krijgen.
Het nadeel van het herhaaldelijk handmatig uitvoeren van regressietests:
- De productiviteit zal afnemen.
- Het is een moeilijke klus om te doen.
- Er is geen consistentie in de uitvoering van de test.
- En ook de testuitvoeringstijd wordt verlengd.
Daarom gaan we voor automatisering om deze problemen te overwinnen; als we het n-nummer van de regressietestcyclus hebben, gaan we voor de geautomatiseerd regressietestproces .
Geautomatiseerd regressietestproces
Over het algemeen kiezen we voor automatisering wanneer er meerdere releases of meerdere regressiecycli zijn, of als er sprake is van repetitieve taken.
Het automatiseringsregressietestproces kan in de volgende stappen worden uitgevoerd:
Notitie 1:
Het proces van het testen van de applicatie met behulp van bepaalde tools staat bekend als automatiseringstesten.
Stel dat we één voorbeeld nemen van a Inloggen module , en vervolgens hoe we de regressietesten kunnen uitvoeren.
Hier kan het inloggen op twee manieren worden gedaan, namelijk:
Handmatig: Hierin zullen we slechts één en twee keer regressie uitvoeren.
Automatisering: Hierin zullen we de automatisering meerdere keren uitvoeren, omdat we de testscripts moeten schrijven en de uitvoering moeten doen.
Opmerking 2: In realtime, als we met enkele problemen te maken hebben gehad, zoals:
Problemen | Behandel door |
---|---|
Nieuwe functies | Handmatige testingenieur |
Testfuncties terugdraaien | Testingenieur automatisering |
Resterend (110 features + Release#1) | Handmatige testingenieur |
Stap 1
Wanneer de nieuwe release van start gaat, gaan we niet voor automatisering omdat er geen concept van regressietesten en regressietestgevallen bestaat zoals we dit in het bovenstaande proces begrepen.
Stap 2
Wanneer de nieuwe release en de verbetering van start gaan, hebben we twee teams, namelijk het handmatige team en het automatiseringsteam.
Stap 3
Het handmatige team zal de vereisten doornemen en ook het impactgebied identificeren en het overhandigen vereiste testpakket aan het automatiseringsteam.
Stap 4
Nu gaat het handmatige team aan de slag met de nieuwe features en gaat het automatiseringsteam beginnen met het ontwikkelen van het testscript en ook met het automatiseren van de testcase, wat betekent dat de regressietestgevallen worden omgezet in het testscript.
Stap 5
Voordat zij (het automatiseringsteam) beginnen met het automatiseren van de testcase, zullen ze ook analyseren welke alle cases wel of niet geautomatiseerd kunnen worden.
Stap6
Op basis van de analyse starten ze de automatisering, d.w.z. het converteren van alle regressietestgevallen naar het testscript.
Stap 7
Tijdens dit proces zullen zij de hulp inroepen van de Regressiegevallen omdat ze niet zo goed over de productkennis beschikken als de hulpmiddel en de sollicitatie .
Stap 8
Zodra het testscript klaar is, zullen ze beginnen met het uitvoeren van deze scripts op de nieuwe applicatie [oude feature]. Sindsdien wordt het testscript geschreven met behulp van de regressiefunctie of de oude functie.
Stap9
Zodra de uitvoering is voltooid, krijgen we een andere status, zoals Geslaagd/mislukt .
Stap 10
Als de status mislukt is, wat betekent dat deze handmatig opnieuw moet worden bevestigd, en als de bug bestaat, wordt dit gerapporteerd aan de betreffende ontwikkelaar. Wanneer de ontwikkelaar die bug repareert, moet de bug samen met het Impact-gebied opnieuw worden getest door de handmatige testingenieur, en ook moet het script opnieuw worden uitgevoerd door de automatiseringstestingenieur.
Stap 11
Dit proces gaat door totdat alle nieuwe functies en de regressiefunctie zijn doorgegeven.
Voordelen van het uitvoeren van regressietesten via automatiseringstesten:
- Het testscript kan in meerdere releases worden hergebruikt.
- Hoewel het aantal regressietestgevallen per release toeneemt, hoeven we de automatiseringsbron niet te vergroten, omdat sommige regressiegevallen al zijn geautomatiseerd ten opzichte van de vorige release.
- Het is een tijdbesparend proces omdat de uitvoering altijd sneller is dan de handmatige methode.
Hoe selecteer ik testgevallen voor regressietesten?
Dit bleek uit een industriële inspectie. De verschillende door de klant gemelde defecten waren het gevolg van last-minute bugfixes. Het creëren van bijwerkingen en dus het selecteren van de testcase voor regressietesten is een kunst en geen gemakkelijke taak.
Regressietest kan worden gedaan door:
- Een testcase met veelvuldige gebreken
- Functionaliteiten die beter zichtbaar zijn voor gebruikers.
- Testgevallen verifiëren de kernkenmerken van het product.
- Alle integratietestgevallen
- Alle complexe testgevallen
- Grenswaardetestgevallen
- Een voorbeeld van succesvolle testgevallen
- Mislukking van testgevallen
Regressietesthulpmiddelen
Als software regelmatig wordt gewijzigd, stijgen ook de kosten voor regressietests. In die gevallen verhoogt het handmatig uitvoeren van testgevallen zowel de testuitvoeringstijd als de kosten. In dat geval is automatiseringstesten de beste keuze. De duur van de automatisering is afhankelijk van het aantal testgevallen dat herbruikbaar blijft voor opeenvolgende regressiecycli.
Hieronder volgen de essentiële hulpmiddelen die worden gebruikt voor regressietesten:
Selenium
Selenium is een open source-tool. Deze tool wordt gebruikt voor het geautomatiseerd testen van een webapplicatie. Voor browsergebaseerde regressietesten werd selenium gebruikt. Selenium gebruikt voor regressietest op UI-niveau voor webgebaseerde applicaties.
Ranorex Studio
Alles-in-één regressietestautomatisering voor desktop-, web- en mobiele apps met ingebouwde Selenium Web Driver. Ranorex Studio bevat volledige IDE plus tools voor codeloze automatisering.
Snelle testprofessional (QTP)
javateerbaar
QTP is een geautomatiseerde testtool die wordt gebruikt voor regressie- en functionele tests. Het is een datagestuurde, op trefwoorden gebaseerde tool. Het gebruikte VBScript-taal voor automatisering. Als we de QTP-tool openen, zien we de drie knoppen die dat zijn Opnemen, afspelen en stoppen . Deze knoppen helpen bij het registreren van elke klik en actie die op het computersysteem wordt uitgevoerd. Het registreert de acties en speelt deze af.
Rationele functionele tester (RTF)
Rational functionele tester is een Java-tool die wordt gebruikt om de testgevallen van softwareapplicaties te automatiseren. RTF wordt gebruikt voor het automatiseren van regressietestgevallen en kan ook worden geïntegreerd met de rationele functionele tester.
Raadpleeg de onderstaande link voor meer informatie over regressie- en automatiseringstesttools:
https://www.javatpoint.com/automation-testing-tool
Regressietesten en configuratiebeheer
Configuratiebeheer bij regressietesten wordt absoluut noodzakelijk in Agile-omgevingen, waar een code voortdurend wordt aangepast. Om een geldige regressietest te garanderen, moeten we de stappen volgen:
- Tijdens de regressietestfase zijn wijzigingen in de code niet toegestaan.
- Een regressietestgeval moet betrekking hebben op onaangetaste wijzigingen door de ontwikkelaar.
- De database die voor regressietesten wordt gebruikt, moet geïsoleerd zijn; wijzigingen zijn niet toegestaan in de database.
Verschillen tussen opnieuw testen en regressietesten
Opnieuw testen Testen betekent dat u de functionaliteit of bug opnieuw test om er zeker van te zijn dat de code is opgelost. Indien niet ingesteld, hoeven defecten niet opnieuw te worden geopend. Indien verholpen, is het defect gesloten.
Opnieuw testen is een type test dat wordt uitgevoerd om te controleren of de testgevallen die bij de uiteindelijke uitvoering niet succesvol waren, met succes worden doorstaan nadat de defecten zijn gerepareerd.
Regressie testen betekent het testen van de 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.
Regressietesten zijn tests die worden uitgevoerd om te controleren of een code de bestaande functionaliteit van de applicatie niet heeft gewijzigd.
De verschillen tussen hertesten en regressietesten zijn als volgt:
Opnieuw testen | Regressie testen |
---|---|
Er wordt opnieuw getest om ervoor te zorgen dat de testgevallen die bij de uiteindelijke uitvoering zijn mislukt, doorgaan nadat de defecten zijn verholpen. | Er worden regressietests uitgevoerd om te bevestigen of de codewijziging geen invloed heeft op de bestaande functies. |
Opnieuw testen werkt bij het oplossen van defecten. | Het doel van regressietesten is ervoor te zorgen dat de codewijzigingen geen negatieve invloed hebben op de bestaande functionaliteit. |
Defectverificatie is het onderdeel van het opnieuw testen. | Regressietesten omvatten geen defectverificatie |
De prioriteit van het opnieuw testen is hoger dan die van regressietests, dus dit gebeurt vóór de regressietests. | Op basis van het projecttype en de beschikbaarheid van middelen kunnen regressietesten parallel aan het opnieuw testen plaatsvinden. |
Opnieuw testen is een geplande test. | Regressietesten zijn generieke testen. |
We kunnen de testgevallen voor hertesten niet automatiseren. | We kunnen automatisering uitvoeren voor regressietesten; handmatig testen kan duur en tijdrovend zijn. |
Opnieuw testen is voor mislukte testgevallen. | Regressietesten zijn bedoeld voor geslaagde testgevallen. |
Door opnieuw te testen, zorg ervoor dat de oorspronkelijke fout wordt verholpen. | Regressietests controleren op onverwachte bijwerkingen. |
Door opnieuw te testen worden defecten uitgevoerd met dezelfde gegevens en dezelfde omgeving met verschillende invoer bij een nieuwe build. | Regressietesten vinden plaats wanneer er een wijziging plaatsvindt of wanneer wijzigingen verplicht worden in een bestaand project. |
Opnieuw testen is niet mogelijk voordat u begint met testen. | Regressietesten kunnen testgevallen verkrijgen uit de functionele specificatie, gebruikershandleidingen en handleidingen, en defectrapporten met betrekking tot het gecorrigeerde probleem. |
Voordelen van regressietesten
Voordelen van regressietesten zijn:
- Regressietesten verhogen de kwaliteit van het product.
- Het zorgt ervoor dat eventuele bugfixes of wijzigingen geen invloed hebben op de bestaande functionaliteit van het product.
- Automatiseringstools kunnen worden gebruikt voor regressietesten.
- Het zorgt ervoor dat de opgeloste problemen zich niet opnieuw voordoen.
Nadelen van regressietesten
Er zijn verschillende voordelen van regressietesten, maar er zijn ook nadelen.
- Regressietesten moeten worden uitgevoerd voor kleine wijzigingen in de code, omdat zelfs een kleine wijziging in de code problemen kan veroorzaken in de bestaande functionaliteit.
- Als automatisering niet wordt gebruikt in het testproject, zal het een tijdrovende en vervelende taak zijn om de test steeds opnieuw uit te voeren.
Conclusie
Regressietesten zijn een van de essentiële aspecten omdat het helpt een kwaliteitsproduct te leveren dat organisaties tijd en geld bespaart. Het helpt bij het leveren van een kwaliteitsproduct door ervoor te zorgen dat elke wijziging in de code de bestaande functionaliteit niet beïnvloedt.
Voor het automatiseren van de regressietestgevallen zijn er verschillende automatiseringstools beschikbaar. Een tool moet de mogelijkheid hebben om de test pak omdat het regressietestpak regelmatig moet worden bijgewerkt.