automated regression testing
Denna handledning förklarar utmaningarna med automatiserad regressionstestning. Vi kommer också att lära oss om processen och stegen för att automatisera regressionstestning:
Vi kommer att lära oss hur man automatiserar regressionstestfallen från att identifiera dem, välja ett verktyg för automatisering, göra kostnad, tid & ansträngningsanalys, skriva manus och slutligen leverera det till det manuella testteamet så att de kan utföra testfallet var som helst när som helst.
Om du undrar varför bara regressionstestpaketet, det beror på att regressionstestpaketet är den främsta kandidaten för automatisering eftersom det är en uppsättning testfall som är repetitiva och tar lång tid. Att automatisera dem skulle således verkligen spara massor av resurser och det skulle också vara mindre tidskrävande.
Du får snabba rapporter om fall av regressionstest och du kan använda dessa steg för att automatisera alla andra testsviter.
=> Klicka här för hela serien för regressionstestning.
Vad du kommer att lära dig:
- Automatiserad regressionstest
- Automatiserad testning: utmaningar i smidig miljö
- Steg för att automatisera regressionstestning
- Slutsats
Automatiserad regressionstest
Nyligen, när jag ville starta mitt nya automatiserade testprojekt med fyra resurser, tänkte jag använda någon av Agile-metoderna. Men jag kunde inte fortsätta eftersom en serie frågor ställdes i mitt sinne.
Frågorna var som:
- Är det möjligt att använda agila metoder i automatiserad testning?
- Kan jag använda traditionella verktyg?
- Ska jag behöva gå efter verktyg med öppen källkod?
- Vilka är de utmaningar jag måste möta om jag implementerar automatisering i den agila miljön?
Låt oss i den här artikeln analysera några av de utmaningar vi möter när vi implementerar Automation med Agile-metoder. Automatiserad regressionstestning i den agila miljön utgör en risk för att bli kaotisk, ostrukturerad och okontrollerad.
Agile Projects presenterar sina egna utmaningar för Automation-teamet. Agile-metoden betonar teamsamarbete och frekvent leverans av en produkt. Faktorer som otydligt projektomfång, flera iterationer, minimal dokumentation, tidiga och frekventa automatiseringsbehov och aktivt intressentinvolvering etc. kräver många utmaningar från Automation Team.
Automatiserad testning: utmaningar i smidig miljö
Det finns flera smidiga utmaningar för Automation-teamet. Men en några av dem beskrivs nedan.
Utmaning 1:Kravsfas
Testautomationsutvecklaren fångar upp kraven i form av ”användarberättelser”, som är korta beskrivningar av kundrelevant funktionalitet.
Varje krav måste prioriteras enligt följande:
Hög: Detta är uppdragskritiska krav som absolut måste göras i den första utgåvan
Medium: Det här är de krav som är viktiga, men som kan bearbetas tills de implementeras.
Låg: Detta är kraven som är trevliga att ha men inte kritiska för programvarans funktion.
När priories har etablerats planeras 'iterationer'. Det tar normalt mellan 1 och 3 månader att varje Agile release-iteration levereras. Kund- / programvarufolk tar sig rätten att göra för många ändringar av kraven. Ibland är dessa förändringar så flyktiga att iterationerna stöts av. Dessa förändringar är större utmaningar för att genomföra testprocessen för Agile Automation.
hur man hittar xpath i krom för selen
Utmaning 2:Välja rätt verktyg
Traditionella, test-sista verktyg med inspelnings- och uppspelningsfunktioner tvingar lag att vänta tills programvaran är klar. Dessutom fungerar traditionella testautomationsverktyg inte för ett Agile-sammanhang eftersom de löser traditionella problem som skiljer sig från de utmaningar som Agile Automation-team står inför.
Automatisering i ett tidigt skede av ett smidigt projekt är vanligtvis mycket tufft, men när systemet växer och utvecklas löser vissa aspekter sig och det blir lämpligt att distribuera automatisering. Så valet av testverktyg blir avgörande för att skörda effektiviteten och kvalitetsfördelarna med agil.
Utmaning 3:Skriptutvecklingsfas
Automationstestare, utvecklare, affärsanalytiker och projektintressenter bidrar helt och hållet till startmöten där 'User-Stories' väljs för nästa sprint. När 'User-Stories' har valts för sprinten, används de som grund för en uppsättning tester.
Eftersom funktionaliteten växer med varje iteration måste regressionstest utföras för att säkerställa att befintlig funktionalitet inte har påverkats av införandet av ny funktionalitet i varje iterationscykel. De omfattningen av regressionstestningen växer med varje sprint och ser till att detta förblir en hanterbar uppgift och testteamet använder testautomationen för regressionssviten.
Utmaning 4:Resurshantering
Agile-metoden kräver en blandning av testfärdigheter, det vill säga testresurser kommer att krävas för att definiera oklara scenarier och testfall, uppförande Manuell testning vid sidan av utvecklare, skriv automatiserade regressionstester och kör de automatiska regressionspaketen.
När projektet fortskrider krävs också specialkunskaper för att täcka ytterligare testområden som kan inkludera integration och prestandatestning.
Det bör finnas en lämplig blandning av domänspecialister som planerar och samlar in kraven. Den utmanande delen i resurshantering är att ta reda på testresurser med flera färdigheter och fördela dem.
Utmaning 5:Kommunikation
God kommunikation måste finnas mellan Automationstestning team, utvecklare, affärsanalytiker och intressenter. Det måste finnas en mycket samverkande interaktion mellan klienten och leveransgrupperna. Mer klientinvolvering innebär fler förslag eller ändringar från klienten. Och det innebär mer bandbredd för kommunikation.
Den viktigaste utmaningen är att processen ska kunna fånga och effektivt genomföra alla förändringar och dataintegriteten behöver behållas. I traditionell testning är utvecklare och testare som olja och vatten, men i en smidig miljö är den utmanande uppgiften att de båda måste arbeta tillsammans för att uppnå målet.
Utmaning 6:Dagligt Scrum-möte
Daily Scrum Meeting är en av de viktigaste aktiviteterna i Agile Process. Lag möts i 15 minuters stand-up-sessioner. Vad är effektiviteten för dessa möten? Hur långt dessa möten hjälper Automation att utveckla utvecklare? etc. diskuteras vid detta möte.
Utmaning 7:Släpp fas
Målet med Agile-projektet är att leverera en grundläggande arbetsprodukt så snabbt som möjligt och sedan gå igenom en kontinuerlig förbättringsprocess. Det betyder att det inte finns någon fas för en produkt. Den utmanande delen ligger i integrationstestning och acceptantestning av produkten.
Steg för att automatisera regressionstestning
Processen som ska följas för att automatisera regression kan delas upp i följande steg:
Dessa sju steg förklaras i detalj nedan i enkla termer för din enkla förståelse.
1. Identifiering
# 1) Identifiera testfall som borde vara en del av regressionstestpaketet.
- För att börja automatisera regressionstestfall är det allra första du behöver göra att få regressionstestfallen identifierade och definieras korrekt med alla steg, data och förutsättningar.
- För att vara säker har du en effektiv regressionstestpaket, glöm inte att inkludera:
- Testfall med återkommande defekter.
- Testa fall som täcker scenarier från slut till slut.
- Testa fall som är mer synliga för slutanvändarna.
- Testa fall på gränsvärden.
- Bra blandning av positiva och negativa testfall.
- Komplexa testfall.
#två) Identifiera automatiseringsverktyg som är bäst för dina krav och applikationsbeteende. När Regression-testfallet har identifierats och är redo för automatisering, identifierar du de verktyg som passar bäst i dina testfall.
Det bästa sättet att identifiera verktygen är att skapa en matris med verktygen och dina krav och sedan hålla reda på vilket verktyg som uppfyller vilka krav.
Föreslagen läsning => Lista över de bästa testverktygen för automatisering
# 3) Identifiera Programmeringsspråk som du vill använda. Med så många verktyg som finns tillgängliga på marknaden stöds flera språk av dessa verktyg. Därför är det viktigt att identifiera programmeringsspråket där du vill skriva dina fall för automatiseringstest.
Exempel :Låt oss anta att vi har ett projekt där vi vill automatisera en regressionstestsvit för en webbläsarbaserad applikation.
Som förklarats ovan identifierar vi testfallet.
- Låt oss anta att vårt testfall är 'Verifiera att en användare kan logga in med ett giltigt användarnamn och lösenord'.
Därefter identifierar vi automatiseringsverktygen.
- Ett webbläsarbaserat testfall kan automatiseras med “ Selen ',' Ranorex ”,“ TestComplete ”. Låt oss bestämma Selen-verktyget eftersom det bäst uppfyller kraven.
Låt oss nu identifiera ett programmeringsspråk.
- Vi vill använda “ Java ”Som programmeringsspråk som dess ett språk som stöds mycket.
2. Analys
# 1) Do Kosta analys. Det är mycket viktigt att arbeta inom budgetgränserna. Efter identifieringsfasen får du alltså en uppfattning om hur många testfall som behöver automatiseras och vilka är de möjliga verktygen som kan användas.
Alla resultat från identifieringsfasen hjälper dig att komma fram till en ungefärlig budget och därmed kan du få något godkännande etc. om det behövs.
#två) Do resurs och ansträngning analys för att se om du har resurser att arbeta med detta. Tillsammans med kostnadsanalysen är det mycket viktigt att göra en resurs- och ansträngningsanalys för bättre fördelning av resurser och att använda sin tid på projektet effektivt.
När du uppskattar resurserna och ansträngningarna, se till att ta hänsyn till risker som om någon blir sjuk, eller om vissa testfall behöver mer resurser för utförande etc.
# 3) Do Tid Analys. Tidsanalys krävs för att se till att du kan slutföra automatiseringsprojektet inom budgeten och tidslinjerna. När du arbetar med tidsanalys kommer det att vara bra att utarbeta ett tidslinjediagram för att följa utvecklingen under utvecklingen.
För en bättre tidslinjeanalys av projektet:
- Identifiera uppgifterna och deluppgifterna i dina projekt.
- Prioritera uppgifter och deluppgifter.
- Rita ett Gantt-diagram eller nätverksdiagram för bättre bild av tidslinjen.
Exempel :Med tanke på vårt exempel från identifieringsfasen ges förklaringen till denna fas nedan:
Kostnadsanalys:
Låt oss anta att den ungefärliga kostnaden för detta projekt är $ X belopp.
Resurs och ansträngning:
För detta måste ett testfall automatiseras från slut till slut och vi behöver en resurs på heltid i cirka 24 timmar och vi behöver också en resurs till för att granska arbetet. Således behöver vi två resurser och uppskattningen av ansträngningen är cirka 40 timmar.
Tidsanalys:
Låt oss rita ett litet Gantt-diagram för att se tidslinjen.
3. Utbildning / Anställning
# 1) Om vissa resurser kräver Träning , planera sedan sin träning. Ibland kan du ha några manuella testresurser som är intresserade av att skriva fall med automatiseringstest eller att vissa har arbetat med automatisering men olika verktyg och är villiga att lära sig verktyget som du har valt för din automatisering.
I så fall identifierar du dessa resurser och planerar för deras utbildning så att de kan börja arbeta med automatisering av fall av regressionstest.
#två) Om vi behöver mer resurser, arbeta sedan på anställning planen. När du har gjort resursanalysen för ansträngningarna och om du inte kan tillgodose behoven med de redan tillgängliga resurserna, planerar du att anställa några nya resurser med rätt kompetens som krävs för projektet inom budgeten.
Exempel:
Låt oss säga att vi redan har en resurs som är bekant med Java-begrepp och vill lära sig Selen. Då ordnar vi selensträning för den personen.
Om vi inte har några tillgängliga resurser för automatisering. Då anställer vi en person som har lite bakgrund i att automatisera sådana testfall med selen och java.
4. Ramverk och riktlinjer
# 1) När verktyget och resurserna är klara, arbeta med att komma med en ramverk eller besluta vilken som ska användas från de befintliga ramarna. Flera redan byggda ramar kan användas eller så kan du bygga ditt ramverk från grunden.
När du väljer eller bygger en ram, se till att du involverar komponenterna om, testfall, loggar, rapporter, inmatning, databasanslutning etc.
#två) Bestäm den andra stödverktyg som du vill använda. Eftersom utveckling av automatiseringsskript är en utvecklingsuppgift som innefattar att skriva kod, skulle det vara mycket bättre att räkna ut de andra utvecklingsverktygen som skulle behövas för att stödja skrivning av dina skript.
Till exempel , Vissa verktyg som kan vara till hjälp inkluderar git, GitHub, Jenkins, etc.
# 3) Skissera riktlinjer för att skriva automatiseringsskript. Det är nödvändigt att beskriva riktlinjerna så att alla resurser som arbetar med projektet är synkroniserade och använder samma namnkonventioner, samma procedurer för kodincheckning / utcheckning och samma programmeringsspråk.
våren mvc intervju frågor och svar för erfarna
Exempel:
Ramverk: Låt oss bestämma BDD (beteendriven utveckling) ram för automatiseringstestning.
Stödverktyg: Verktygen som vi behöver för att fullt ut stödja automatiseringen kommer att vara, GitHub, Jenkins, Log4J, Gurka och JUnit.
5. Automationsskript
Börja skriva automatiseringsskript. När vi har allt, dvs verktyget, programmeringsspråket, nödvändiga färdigheter och testfall som behöver automatiseras, kan vi börja skriva automatiseringsskript.
När vi skriver manus måste vi se till att:
- Riktlinjerna följs.
- Vi använder verktygen.
- Testfallet är modulärt.
- Vi bör kunna återanvända komponenterna om de krävs i flera testfall.
Vi måste också se till att koden underhålls ordentligt i versionskontrollverktyget och att alla teammedlemmar enkelt kan samarbeta.
Exempel:
Låt oss skriva faktiska manus för att testprovet ska köras. Exempel från skript kan visas som nedan.
Först skulle gurkscenariot för detta testfall se ut som nedan:
Funktion: Verifiera inloggningsfunktionalitet
Som användare vill jag logga in på applikationen
Scenarioöversikt: Logga in på applikationen
Med tanke på att jag öppnar ansökan
När jag anger användarnamn “”
Och jag anger lösenord “”
Och jag klickar på inloggningsknappen
Sedan går jag till hemsidan
Exempel:
| användarnamn | lösenord |
| testanvändare1 | lösenord1 |
| testanvändare2 | lösenord2 |
Efter funktionsfilen implementerar vi stegdefinitionen för de steg som nämns i funktionsfilen.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }
I slutändan skulle det faktiska genomförandet av inloggningsfunktionsklassen se ut som nedan:
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }
6. Granskning
(bild källa )
# 1) Kodgranskning: När en automatiseringsutvecklare är klar med att skriva automatiseringsskript är det mycket viktigt att gå igenom de olika nivåerna av kodgranskning.
Kodrecensioner hjälper till
- Identifiera fel verifieringar.
- Hitta kodoptimeringspunkter.
- Hitta bättre sätt att implementera funktionaliteten för effektiv resursanvändning.
Kodgranskningar exponerar också utvecklarens arbete för de andra utvecklarna och ger det ett annat perspektiv och utrymme för förbättringar.
# 2) Granskning av testfall: Tillsammans med kodgranskningen är testfallet också mycket viktigt. Vi måste se till att automatiseringstestskripten när de körs utför samma uppsättning åtgärder och verifieringar som vi förväntar oss av de manuella testfallet.
Således kan granskning av automatiseringstestfall med affärsanalytiker eller testexperter hjälpa till att öka förtroendet för automatiseringstestning av dessa testfall.
Exempel:
För vårt exempel i åtanke, låt oss säga att för kodgranskning fick vi kommentarer som 'sökelement efter id och inte namn'. Här tar vi hänsyn till detta och ändrar vårt skript i enlighet med detta.
Dessutom kan en testgranskning göras för att lägga till steg för testning om du är på hemsidan efter en lyckad inloggning. Sedan skulle vi också lägga till detta i våra skript.
7. Leverera
Leverera testfall, så att vem som helst kan köra dem när som helst. När automatiseringsskripten är klara för användning är det mycket viktigt att komma med en leveransplan för automatiseringsskripten.
Denna plan krävs eftersom vi vill se till att automatisering av testfall inte begränsar genomförandet till en specifik uppsättning personer eller färdigheter. Alla i teamet eller projektet bör få utföra testfallet.
En av de möjliga leveransplanerna är att tillhandahålla ett Jenkins-jobb som kan utlösas för att utföra automatiserade testfall.
Exempel:
Låt oss i vårt fall anta att vi har levererat testfallet med ett Jenkins-jobb. Detta Jenkins-jobb tar koden från GitHub, bygger den och kör testfallet på en annan maskin.
När jobbet är framgångsrikt visar det dig den genererade testrapporten. Alla som har tillgång till Jenkins kan köra det här jobbet. Det här jobbet kan också planeras att köras vid en viss tidpunkt.
Slutsats
Om vi kan möta dessa utmaningar på ett väl optimerat sätt, är automatiserad regressionstestning i den agila miljön ett utmärkt tillfälle för kvalitetssäkring att ta ledningen för de smidiga processerna. Det är bättre placerat för att överbrygga klyftan mellan användare och utvecklare, förstå vad som krävs, hur det kan uppnås och hur det kan säkerställas före distributionen.
Automationspraxis bör ha ett intresse av båda, resultatet, samt fortsätta att försäkra att hela systemet som utvecklas uppfyller affärsmålen och är lämpligt för ändamålet.
Att automatisera ett fall med regressionstest är alltid bra eftersom det är den bästa kandidaten för att starta automatiseringstestning . Du kan följa stegen som nämns ovan för att automatisera alla testpaket och inte bara regressionen.
Automationstestning är också mycket hjälpsam och kostnadseffektiv och tidsinvesteringarna i automatiseringstestning är bara att skriva manus och underhålla dem. Således måste automatiseringstest planeras ordentligt och planeras för ett framgångsrikt projekt.
Om författaren: J.B. Rajkumar har mer än 15 års erfarenhet av både akademiska och programvarutestning. Han har arbetat som Corporate Trainer, Test Lead, QA Manager och QC Manager.
Låt oss veta dina kommentarer / förslag om den här artikeln.
=> Besök här för hela serien för regressionstestning.
Rekommenderad läsning
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Testing Primer eBook Download
- 4 steg mot att utveckla det agila testningstänkandet för framgångsrik övergång till smidig process
- Manuella och automatiseringstestutmaningar
- Skillnaden mellan omprövning och regressionstest med exempel
- 5 Mobila testutmaningar och lösningar
- SaaS Testing: Utmaningar, verktyg och testmetod
- Topp 10 mest populära regressionstestverktyg 2021