automated regression testing
In deze tutorial worden de uitdagingen van geautomatiseerde regressietests uitgelegd. We zullen ook leren over het proces en de stappen om regressietests te automatiseren:
We zullen leren hoe we de regressietestgevallen kunnen automatiseren door ze te identificeren, een tool te selecteren om de automatisering uit te voeren, kosten-, tijd- en moeiteanalyses uit te voeren, scripts te schrijven en deze uiteindelijk af te leveren aan het handmatige testteam zodat ze de testcases kunnen uitvoeren. overal en altijd.
Als u zich afvraagt waarom alleen de regressietestsuite, is dat omdat de regressietestsuite de belangrijkste kandidaat voor automatisering is, aangezien het de reeks testcases is die repetitief en tijdrovend zijn. Het automatiseren ervan zou u dus inderdaad veel middelen besparen en het zou ook minder tijdrovend zijn.
U krijgt snelle rapporten over de regressietestgevallen en u kunt deze stappen gebruiken om ook andere testsuites te automatiseren.
Klik hier voor de complete serie regressietests.
Wat je leert:
- Geautomatiseerde regressietesten
- Geautomatiseerd testen: uitdagingen in een Agile-omgeving
- Stappen om regressietesten te automatiseren
- Gevolgtrekking
Geautomatiseerde regressietesten
Toen ik onlangs mijn nieuwe Automated Testing Project met vier resources wilde starten, dacht ik erover om een van de Agile-methodologieën toe te passen. Maar ik kon niet verder omdat er een reeks vragen in me opkwam.
De vragen waren als:
- Is het mogelijk om Agile-methodologieën te gebruiken bij geautomatiseerd testen?
- Kan ik traditionele tools gebruiken?
- Moet ik voor open-source tools gaan?
- Wat zijn de uitdagingen waar ik voor sta als ik automatisering implementeer in de Agile omgeving?
Laten we in dit artikel enkele van de uitdagingen analyseren waarmee we worden geconfronteerd bij het implementeren van automatisering met Agile-methodologieën. Geautomatiseerde regressietesten in de Agile-omgeving lopen het risico chaotisch, ongestructureerd en ongecontroleerd te worden.
Agile Projects stellen hun eigen uitdagingen voor aan het automatiseringsteam. De Agile-methodiek legt de nadruk op teamsamenwerking en frequente levering van een product. Factoren zoals onduidelijke projectomvang, meerdere iteraties, minimale documentatie, vroege en frequente automatiseringsbehoeften en actieve betrokkenheid van belanghebbenden, enz., Vragen veel uitdagingen van het automatiseringsteam.
Geautomatiseerd testen: uitdagingen in een Agile-omgeving
Er zijn verschillende Agile-uitdagingen voor het automatiseringsteam. Een weinigen van hen worden hieronder toegelicht.
Uitdaging 1:Vereiste fase
Test Automation-ontwikkelaar legt de vereisten vast in de vorm van 'user stories', dit zijn korte beschrijvingen van de klantrelevante functionaliteit.
Elke vereiste moet als volgt worden geprioriteerd:
Hoog: Dit zijn missiekritieke vereisten die absoluut in de eerste release moeten worden gedaan
Medium: Dit zijn de vereisten die belangrijk zijn, maar kunnen worden omzeild totdat ze worden geïmplementeerd.
Laag: Dit zijn de vereisten die leuk zijn om te hebben, maar niet cruciaal voor de werking van de software.
Zodra prioriteiten zijn vastgesteld, zijn de release-iteraties gepland. Normaal gesproken duurt elke iteratie van Agile-releases tussen de 1 en 3 maanden. Mensen van klanten / software nemen de vrijheid om te veel wijzigingen aan te brengen in de vereisten. Soms zijn deze veranderingen zo vluchtig dat de iteraties worden afgebroken. Deze veranderingen zijn grotere uitdagingen bij het implementeren van het Agile Automation-testproces.
gratis virtualisatiesoftware voor Windows 10
Uitdaging 2:De juiste tools selecteren
Traditionele, test-laatste tools met opname- en afspeelfuncties dwingen teams te wachten tot de software klaar is. Bovendien werken traditionele testautomatiseringstools niet voor een Agile-context omdat ze traditionele problemen oplossen die verschillen van de uitdagingen waarmee Agile Automation-teams worden geconfronteerd.
Automatisering in de vroege stadia van een agile project is meestal erg moeilijk, maar naarmate het systeem groeit en evolueert, worden sommige aspecten geregeld en wordt het passend om automatisering in te zetten. De keuze van testtools wordt dus cruciaal om de efficiëntie en kwaliteitsvoordelen van agile te benutten.
Uitdaging 3:Script ontwikkelingsfase
Automatiseringstesters, ontwikkelaars, bedrijfsanalisten en belanghebbenden van het project dragen allemaal bij aan kick-offmeetings waar “User-Stories” worden geselecteerd voor de volgende sprint. Zodra de 'User-Stories' zijn geselecteerd voor de sprint, worden ze gebruikt als basis voor een reeks tests.
Aangezien de functionaliteit groeit met elke iteratie, moet regressietest worden uitgevoerd om ervoor te zorgen dat de bestaande functionaliteit niet wordt beïnvloed door de introductie van nieuwe functionaliteit in elke iteratiecyclus. De schaal van de regressietest groeit met elke sprint mee en zorgt ervoor dat dit een beheersbare taak blijft en het testteam gebruikt de testautomatisering voor de regressiesuite.
Uitdaging 4:Beheer van middelen
De Agile-aanpak vereist een combinatie van testvaardigheden, dat wil zeggen dat testmiddelen nodig zijn om onduidelijke scenario's en testcases te definiëren, Handmatig testen schrijf samen met ontwikkelaars geautomatiseerde regressietests en voer de geautomatiseerde regressiepakketten uit.
Naarmate het project vordert, zullen ook specialistische vaardigheden vereist zijn om verdere testgebieden te bestrijken, waaronder integratie en prestatietests.
Er moet een passende mix zijn van domeinspecialisten die de vereisten plannen en verzamelen. Het uitdagende deel van Resource Management is om testresources met meerdere vaardigheden te vinden en deze toe te wijzen.
Uitdaging 5:Communicatie
Er moet een goede communicatie bestaan tussen de Automatiseringstesten team, ontwikkelaars, bedrijfsanalisten en belanghebbenden. Er moet een sterk samenwerkende interactie zijn tussen de klant en de bezorgteams. Meer klantbetrokkenheid impliceert meer suggesties of wijzigingen van de klant. En het impliceert meer bandbreedte voor communicatie.
De belangrijkste uitdaging is dat het proces in staat moet zijn om alle wijzigingen vast te leggen en effectief te implementeren en dat de gegevensintegriteit behouden moet blijven. Bij traditioneel testen zijn ontwikkelaars en testers als olie en water, maar in een agile omgeving is de uitdagende taak dat ze allebei moeten samenwerken om het doel te bereiken.
Uitdaging 6:Dagelijkse Scrum-bijeenkomst
Daily Scrum Meeting is een van de belangrijkste activiteiten in het Agile-proces. Teams ontmoeten elkaar gedurende 15 minuten stand-up sessies. Wat is de effectiviteit van deze bijeenkomsten? In hoeverre helpen deze bijeenkomsten om ontwikkelaars te oefenen met automatisering? etc., worden op deze bijeenkomst besproken.
Uitdaging 7:Vrijgavefase
Het doel van het Agile-project is om zo snel mogelijk een werkend basisproduct op te leveren en vervolgens een proces van continue verbetering te doorlopen. Dit betekent dat er geen enkele afgiftefase is voor een product. Het uitdagende deel ligt in integratietesten en acceptatietesten van het product.
Stappen om regressietesten te automatiseren
Het proces dat moet worden gevolgd om regressie te automatiseren, kan nauwkeurig worden onderverdeeld in de volgende stappen:
Deze 7 stappen worden hieronder in eenvoudige bewoordingen in detail uitgelegd, zodat u ze gemakkelijk kunt begrijpen.
1. Identificatie
# 1) Identificeer de testgevallen die deel zou moeten uitmaken van de regressietestsuite.
- Om te beginnen met het automatiseren van regressietestgevallen, is het allereerste dat u moet doen, de regressietestgevallen geïdentificeerd en correct gedefinieerd te krijgen met alle stappen, gegevens en vereisten.
- Om er zeker van te zijn dat u een effectieve regressietestsuite heeft, vergeet dan niet het volgende op te nemen:
- Testgevallen met terugkerende defecten.
- Testcases die end-to-end scenario's omvatten.
- Testcases die beter zichtbaar zijn voor de eindgebruikers.
- Testgevallen op grenswaarden.
- Goede mix van positieve en negatieve testgevallen.
- Complexe testcases.
#twee) Identificeer de automatiseringstools die het beste bij uw eisen en toepassingsgedrag passen. Zodra de regressietestgevallen zijn geïdentificeerd en klaar zijn voor automatisering, identificeert u de tools die het beste bij uw testcases passen.
De beste manier om de tools te identificeren, is door een matrix te maken met de tools en uw wensen en vervolgens bij te houden welke tool aan welke eisen voldoet.
Voorgestelde lezing => Lijst met de beste testtools voor automatisering
# 3) Identificeer de Programmeertaal die u wilt gebruiken. Met zoveel tools die op de markt beschikbaar zijn, worden meerdere talen ondersteund door deze tools. Het is dus belangrijk om de programmeertaal te identificeren waarin u uw automatiseringstestcases wilt schrijven.
Voorbeeld Laten we aannemen dat we een project hebben waarbij we een regressietestsuite willen automatiseren voor een browsergebaseerde applicatie.
Zoals hierboven uitgelegd, zullen we de testgevallen identificeren.
- Laten we aannemen dat onze testcase is 'Controleer of een gebruiker succesvol kan inloggen met een geldige gebruikersnaam en wachtwoord'.
Vervolgens zullen we de automatiseringstools identificeren.
- Een browsergebaseerde testcase kan worden geautomatiseerd met ' Selenium Ranorex ”,“ TestComplete ”. Laten we beslissen over de Selenium-tool, aangezien deze het beste aan de vereisten voldoet.
Laten we nu een programmeertaal identificeren.
- We willen ' Java ”Als programmeertaal als een sterk ondersteunde taal.
2. Analyse
# 1) Doen Kosten analyse. Het is erg belangrijk om binnen de budgetgrenzen te werken. Na de identificatiefase heeft u dus een idee van hoeveel testgevallen moeten worden geautomatiseerd en welke mogelijke tools kunnen worden gebruikt.
Alle bevindingen uit de identificatiefase helpen u bij het bedenken van een geschat budget en kunt u zo nodig goedkeuring enz. Krijgen.
#twee) Doen middelen en moeite analyse om te zien of u de middelen heeft om hieraan te werken. Naast de kostenanalyse is het erg belangrijk om een resource- en inspanningsanalyse uit te voeren voor een betere toewijzing van resources en om hun tijd efficiënt aan het project te besteden.
Houd bij het inschatten van de middelen en inspanningen rekening met risico's zoals, als iemand ziek wordt, of als sommige testgevallen meer middelen nodig hebben voor de uitvoering, enz.
# 3) Doen Tijd Analyse. Tijdanalyse is vereist om ervoor te zorgen dat u het automatiseringsproject binnen het budget en de tijdlijnen kunt afronden. Tijdens het werken aan tijdanalyse is het handig om een tijdlijngrafiek op te stellen om de voortgang tijdens de ontwikkeling te volgen.
Voor een betere tijdlijnanalyse van het project:
- Identificeer de taken en subtaken in uw projecten.
- Geef prioriteit aan de taken en subtaken.
- Teken een Gantt-diagram of netwerkdiagram voor een betere weergave van de tijdlijn.
Voorbeeld Voortgaand op ons voorbeeld in overweging vanaf de identificatiefase, wordt de uitleg voor deze fase hieronder gegeven:
Kostenanalyse:
Laten we aannemen dat de geschatte kosten voor dit project $ X bedragen.
Middelen en inspanning:
Hiervoor moet één testcase van begin tot eind worden geautomatiseerd en hebben we één resource fulltime nodig voor ongeveer 24 uur en hebben we ook nog een resource nodig om het werk te beoordelen. We hebben dus 2 middelen nodig en de geschatte inspanning is ongeveer 40 uur.
Tijdanalyse:
Laten we hiervoor een klein Gantt-diagram tekenen om de tijdlijn te zien.
3. Opleiding / aanwerving
# 1) Als sommige bronnen dit vereisen opleiding en plan vervolgens hun training. Soms beschikt u over handmatige testbronnen die geïnteresseerd zijn in het schrijven van automatiseringstestcases of hebben sommige mensen aan automatisering gewerkt, maar met andere tools en zijn ze bereid om de tool te leren die u voor uw automatisering hebt geselecteerd.
Identificeer in dat geval deze bronnen en plan hun training zodat ze kunnen gaan werken aan de automatisering van regressietestgevallen.
#twee) Als we meer middelen nodig hebben, werk dan aan het in dienst nemen plan. Wanneer u de middelenanalyse voor de inspanningen heeft uitgevoerd en u niet in staat bent om aan de behoeften te voldoen met de reeds beschikbare middelen, plan dan om wat nieuwe middelen aan te nemen met de juiste vaardigheden die nodig zijn voor het project binnen het budget.
Voorbeeld:
Laten we zeggen dat we al een bron hebben die bekend is met Java-concepten en Selenium wil leren. Dan regelen we seleniumtraining voor die persoon.
Als we geen middelen beschikbaar hebben voor automatisering. Dan nemen we iemand aan die enige achtergrond heeft in het automatiseren van dergelijke testcases met selenium en java.
4. Kader en richtlijnen
# 1) Zodra de tool en bronnen klaar zijn, werk je aan het bedenken van een kader of beslissen welke te gebruiken vanuit de bestaande kaders. Er kunnen meerdere reeds gebouwde frameworks worden gebruikt of u kunt uw framework helemaal opnieuw bouwen.
Zorg er bij het selecteren of bouwen van een raamwerk voor dat u de componenten over testgevallen, logboeken, rapporten, invoer, databaseverbinding, enz. Betrekt.
#twee) Beslis over de andere ondersteunende tools die u wilt gebruiken. Aangezien het ontwikkelen van automatiseringsscripts een ontwikkelingstaak is waarbij code moet worden geschreven, zou het veel beter zijn om erachter te komen welke andere ontwikkeltools nodig zijn om het schrijven van uw scripts te ondersteunen.
Bijvoorbeeld , Enkele tools die kunnen helpen zijn onder meer git, GitHub, Jenkins, etc.
# 3) Maak een overzicht van de richtlijnen voor het schrijven van automatiseringsscripts. Het is noodzakelijk om de richtlijnen zo te schetsen dat alle bronnen die aan het project werken synchroon zijn en dezelfde naamgevingsconventies gebruiken, dezelfde procedures voor het in- en uitchecken van code en dezelfde programmeertaal.
witte doos versus zwarte doos testen
Voorbeeld:
Kader: Laten we beslissen BDD (gedragsgestuurde ontwikkeling) raamwerk voor automatiseringstesten.
Ondersteunende tools: De tools die we nodig hebben om de automatisering volledig te ondersteunen, zijn GitHub, Jenkins, Log4J, Cucumber en JUnit.
5. Automatiseringsscripts
Begin met het schrijven van automatiseringsscripts. Zodra we alles hebben, d.w.z. de tool, programmeertaal, vereiste vaardigheden en testcases die moeten worden geautomatiseerd, kunnen we beginnen met het schrijven van automatiseringsscripts.
Bij het schrijven van scripts moeten we ervoor zorgen dat:
- De richtlijnen worden gevolgd.
- We gebruiken de tools.
- De testcases zijn modulair opgebouwd.
- We zouden de componenten moeten kunnen hergebruiken als ze in meerdere testgevallen nodig zijn.
We moeten er ook voor zorgen dat de code goed wordt onderhouden in de versiebeheertool en dat alle teamleden gemakkelijk kunnen samenwerken.
Voorbeeld:
Laten we echte scripts schrijven om deze testcase uit te voeren. Voorbeelden van de scripts kunnen worden weergegeven zoals hieronder.
Ten eerste zou het komkommerscenario voor deze testcase er als volgt uitzien:
Functie: Controleer de aanmeldingsfunctionaliteit
Als gebruiker wil ik inloggen op de applicatie
Scenario-overzicht: inloggen op applicatie
Gezien ik open sollicitatie
Wanneer ik de gebruikersnaam '' voer
En ik voer het wachtwoord in ''
En ik klik op de Login-knop
Dan ga ik naar de startpagina
Voorbeelden:
gebruikersnaam | wachtwoord |
testgebruiker1 | wachtwoord1 |
testgebruiker2 | wachtwoord2 |
Na het feature-bestand zullen we de stapdefinitie implementeren voor de stappen die in het feature-bestand worden genoemd.
Uiteindelijk zou de daadwerkelijke implementatie van de login-functionaliteitsklasse er als volgt uitzien:
6. Herziening
(beeld bron
# 1) Codebeoordeling: Zodra een automatiseringsontwikkelaar klaar is met het schrijven van automatiseringsscripts, is het erg belangrijk om de verschillende niveaus van codebeoordeling te doorlopen.
Codebeoordelingen helpen in
- Identificatie van verkeerde verificaties.
- Code-optimalisatiepunten vinden.
- Betere manieren vinden om de functionaliteit te implementeren voor efficiënt gebruik van bronnen.
Codebeoordelingen stellen het werk van een ontwikkelaar ook bloot aan de andere ontwikkelaars en geven het een ander perspectief en ruimte voor verbetering.
# 2) Beoordeling van testcases: Naast de codereview is ook de testcase review erg belangrijk. We moeten ervoor zorgen dat de automatiseringstestscripts, wanneer ze worden uitgevoerd, dezelfde reeks acties en verificaties uitvoeren als we verwachten van de handmatige testgevallen.
Het beoordelen van de automatiseringstestgevallen met bedrijfsanalisten of testexperts helpt dus bij het vergroten van het vertrouwen in automatiseringstests van die testgevallen.
Voorbeeld:
Laten we voor ons voorbeeld zeggen dat we voor codereview opmerkingen hebben gekregen als 'zoekelement op id en niet op naam'. Hier houden we rekening mee en passen we ons script dienovereenkomstig aan.
Er kan ook een testrecensie worden gedaan om teststappen toe te voegen als u zich op de startpagina bevindt na een succesvolle login. Vervolgens zouden we dit ook aan onze scripts toevoegen.
7. Bezorgen
Lever de testcases, zodat iedereen ze op elk moment kan uitvoeren. Zodra de automatiseringsscripts klaar zijn voor gebruik, is het erg belangrijk om met een opleveringsplan voor de automatiseringsscripts te komen.
Dit plan is vereist omdat we ervoor willen zorgen dat het automatiseren van de testgevallen de uitvoering ervan niet beperkt tot een specifieke set van mensen of vaardigheden. Iedereen in het team of het project moet de testcases kunnen uitvoeren.
Een van de mogelijke opleveringsplannen is het leveren van een Jenkins-taak die kan worden geactiveerd om de geautomatiseerde testcases uit te voeren.
Voorbeeld:
Laten we in ons geval aannemen dat we de testcase hebben opgeleverd met een Jenkins-taak. Deze Jenkins-taak neemt de code van GitHub, bouwt deze en voert de testcases uit op een andere machine.
Zodra de taak is voltooid, wordt het gegenereerde testrapport weergegeven. Iedereen die toegang heeft tot Jenkins, kan deze taak uitvoeren. Deze taak kan ook worden gepland om op een specifiek tijdstip te worden uitgevoerd.
Gevolgtrekking
Als we deze uitdagingen op een goed geoptimaliseerde manier kunnen aangaan, dan is geautomatiseerde regressietest in de Agile-omgeving een uitstekende gelegenheid voor de QA om de leiding te nemen over de agile processen. Het is beter geplaatst om de kloof tussen de gebruikers en ontwikkelaars te overbruggen, te begrijpen wat nodig is, hoe het kan worden bereikt en hoe het kan worden verzekerd voorafgaand aan implementatie.
De automatiseringspraktijk moet een gevestigd belang hebben bij beide, het resultaat, en er ook voor blijven zorgen dat het hele evoluerende systeem voldoet aan de bedrijfsdoelstellingen en geschikt is voor het doel.
Het automatiseren van een regressietestcase is altijd nuttig omdat dit de beste kandidaat is om te starten automatisering testen U kunt de bovenstaande stappen volgen om elke testsuite te automatiseren en niet alleen de regressie.
Automatiseringstests zijn ook erg nuttig en kosteneffectief en de tijd die in automatiseringstests wordt geïnvesteerd, is alleen het schrijven van scripts en het onderhouden ervan. Automatiseringstests moeten dus goed worden gepland en gepland voor een succesvol project.
Over de auteur: J.B. Rajkumar heeft meer dan 15 jaar ervaring in zowel Academics als Software Testing. Hij heeft gewerkt als Corporate Trainer, Test Lead, QA Manager en QC Manager.
Laat ons uw opmerkingen / suggesties over dit artikel weten.
Bezoek hier voor de complete serie regressietests.
Aanbevolen literatuur
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Primer eBook downloaden testen
- 4 stappen naar de ontwikkeling van de Agile-testmentaliteit voor een succesvolle overgang naar een Agile-proces
- Uitdagingen voor handmatige en automatiseringstests
- Verschil tussen hertesten en regressietesten met voorbeeld
- 5 Uitdagingen en oplossingen voor mobiel testen
- SaaS-testen: uitdagingen, tools en testaanpak
- Top 10 meest populaire tools voor regressietesten in 2021