- Vad är automationstestning?
- Varför är automationstestning kritisk i en Programvarulivscykel?
- kan en programvara testa en annan programvara?
- vilka tester ska automatiseras?
- komma igång med automationstestning
- exempel på testautomatisering
- hur man går från Manuell till automationstestning
- Vad Ska Automatiseras?
- hur automatiseras?
- underhåll av testautomatisering
Vad är automationstestning?
som namnet antyder. automatiseringstestning tar programvarutestningsaktiviteter och utför dem via en automatiseringsverktygssats eller ramverk. I enkla ord är det en typ av testning där ett verktyg utför en uppsättning uppgifter i ett definierat mönster automatiskt.
det tar bort trycket från manuella testare och låter dem fokusera på högre värdeuppgifter-utforskande tester, granskning av testresultat etc. I huvudsak tar en maskin över och implementerar, vardagliga, repetitiva, tidsförvirrande uppgifter som regressionstester. Automationstestning är avgörande för att uppnå större testtäckning inom kortare tidslinjer, liksom större noggrannhet i resultaten.
Varför är automationstestning kritisk i en Programvarulivscykel?
Föreställ dig detta.
på din första dag som QA måste du testa ett program som innehåller cirka 100 fält som kräver inmatning. När du utför utforskande testning måste du infoga inmatning manuellt i varje fält. Det tar ungefär 10 minuter att göra om du är riktigt snabb.
du trycker på Skicka. Ett felmeddelande visas. Det ser ut som ett obehandlat undantag. Du rapporterar felet och känner dig riktigt bra om ett väl utfört jobb. Du upprepar processen, hittar några fler buggar och har en generellt produktiv första dag.
nästa dag fixar utvecklaren problemen och du måste testa den nya versionen av programvaran och upprepa samma steg som dagen innan. Bugg Fast. Bra jobbat. En bra användarupplevelse säkerställs tack vare dina ansträngningar.
på den tredje dagen har utvecklare släppt en nyare version med nyare funktioner. Men för att säkerställa att de nya funktionerna inte har brutit de äldre arbetsfunktionerna måste du upprepa processen igen. Inga problem hittades.
en månad framåt släpper Utvecklare nyare versioner kontinuerligt, vilket innebär att du måste fortsätta testa programvaran och upprepa samma process (infoga fältinmatning) varje gång. Du är uttråkad och trött. Din noggrannhet börjar vackla, vilket resulterar i att du så småningom saknar en bugg – möjligen en ganska uppenbar.
tro det eller ej, detta är ett ganska vanligt scenario för de flesta QAs. Det är inte möjligt att göra samma sak om och om igen och vara perfekt på det varje gång. Det är här automationstestning kommer in.
kan en programvara testa en annan programvara?
Ja. Det är hela poängen med automatiseringstestning. När det gäller regressionstestning är investering av manuell ansträngning meningslös och slösig. Istället för att förvänta sig att människor ska upprepa samma steg med samma hastighet, noggrannhet och energi, är det mycket mer logiskt att programmera en maskin för att göra detsamma.
vilka tester ska automatiseras?
innan vi skapar en testautomatiseringsstrategi, låt oss ta en titt på vilka tester som är mest genomförbara för automatisering:
- regressionstestning: regressionssviter ökar ständigt och kräver att samma variabler fylls flera gånger för att säkerställa att nya funktioner inte manipuleras med äldre funktioner. Detta kan enkelt automatiseras.
- testning av komplexa funktioner: automatisera alla tester som kräver komplexa beräkningar, något som är benäget för mänskliga fel.
- rökprovning: Kör automatiserade sviter för att verifiera kvaliteten på viktiga funktioner. Detta sparar tid genom att erbjuda en snabb analys av huruvida en byggnad kräver mer djupgående testning.
- datadriven testning: automatisera tester för att validera funktioner som måste testas upprepade gånger med många datamängder.
- prestandatestning: automatisera tester som övervakar programvarans prestanda under olika omständigheter. Att göra detta manuellt skulle vara extremt noggrant och tidskrävande.
- funktionstestning: Varje gång en utvecklare skickar in en PR måste funktionstestning utföras snabbt och ge omedelbar feedback. Detta är omöjligt att uppnå utan automatisering, särskilt när organisationer skala upp.
komma igång med automationstestning
tänk på följande när du övergår från Manuell till automationstestning:
- sikta inte på 100% testautomatisering. Inte alla tester kan automatiseras. Även bland tester som kan automatiseras, Ställ inte in ett initialt mål för fullständig automatisering.
- sätt ett realistiskt mål. Börja till exempel med att flytta några tester till automatisering. Skriv mindre testfall som enkelt kan återanvändas i framtida tester av samma programvara. Kartlägg testfall med motsvarande funktioner för att ge bättre testtäckning. Märk testfall så att team kan få klarhet i vad de ska automatisera och rapportera mer effektivt.
- utforska nya områden i applikationen med automatisering. När du kritar ut automatiseringsstrategier, se till att affärskraven tas lika seriöst som tekniska överväganden.
- vet vad du inte ska automatisera. Detta hjälper till att bestämma omfattningen av automatisering tidigt i ideationsprocessen. Följande tester lämnas bäst till manuell täckning:
- användarupplevelse testning: verktyg kan inte replikera någon användarresa i sin helhet. Det är omöjligt för en algoritm att förutsäga hur enskilda användare kommer att interagera med en applikation. För att faktiskt bedöma kvaliteten på användarupplevelsen, håll dig till mänskliga testare. Prova att använda manuella interaktiva testverktyg som BrowserStack Live.
- Tillgänglighetstestning: När man testar hur tillgänglig en applikation är, finns det ingen ersättning för mänsklig användning. Ett verktyg kan inte mäta tillgänglighet eftersom människor ofta har olika åsikter om vad som räknas som tillgängligt. Det är inte möjligt för ett verktyg att känna igen om programvarans arbetsflöde ger enkel åtkomst för faktiska människor.
- Välj rätt verktygautomatiseringstestning är helt beroende av verktyg. Här är vad du ska tänka på när du väljer rätt verktyg:
- mjukvarans natur: testas applikationen webbaserad eller mobilbaserad?
för att testa den förra, använd ett verktyg som Selenium för att automatisera dina tester. För det senare är Appium ett av de bästa möjliga verktygen för automatisering. - Programmerarupplevelse: välj ramar, språk och verktyg som matchar testarnas komfort och upplevelse. Några av de mest populära språken som används för automatiseringstestning inkluderar Java, JavaScript, Ruby, C#, etc.
- öppen källkod eller inte: beroende på budgetbegränsningar kan man välja att använda open source-verktyg som Selenium eller Appium för automatiseringsändamål. Det är dock viktigt att komma ihåg att alla open source-verktyg inte är sämre än deras kommersiellt tillgängliga motsvarigheter. Selenium Webdriver är till exempel ett open source-verktyg som är mest gynnat av automatiserade testare runt om i världen.
- Välj rätt testgaller
testgaller avser den infrastruktur som alla automatiserade tester kommer att köras på. Den består av en serie enheter, webbläsare och operativsystem (flera versioner) som programvaran ska testas på. Det är alltid bäst att automatisera tester på riktiga enheter och webbläsare. Detta kommer att säkerställa att programvaran testas i verkliga användarförhållanden.
dessutom bör det ideala testnätet möjliggöra parallell testning. Detta innebär att testare ska kunna köra flera tester på flera enheter samtidigt. Detta minskar testtiden, påskyndar resultaten och erbjuder resultat inom kortare tidsfrister.
något annat att bestämma är om testnätet ska vara värd på plats eller på molnet. Tänk på att lokal infrastruktur nästan alltid är dyr att installera och underhålla. Det kräver att hålla reda på nya enheter, webbläsare och operativsystem, uppdatera och underhålla dem i enlighet därmed. Detta är en utmaning eftersom flera versioner av varje släpps varje månad.
omvänt är testning på ett molnbaserat nät lättare, eftersom uppdatering och underhåll skulle tas om hand av organisationen som erbjuder nätet. Till exempel erbjuder BrowserStack ett moln Selenium-nät som är anslutet till 2000+ riktiga enheter och webbläsare för testning. Användare måste helt enkelt registrera sig och börja testa på ett robust Seleniumnät som ständigt uppdateras för bästa möjliga resultat.
Browserstacks real device cloud ger 2000 + riktiga webbläsare och enheter för omedelbar testning på begäran. Molnet ger också integrationer med populära CI / CD-verktyg som Jira, Jenkins, TeamCity, Travis CI och mycket mer. Dessutom finns det inbyggda felsökningsverktyg som låter testare identifiera och lösa buggar omedelbart. BrowserStack underlättar också Cypress testning på 30 + webbläsarversioner med omedelbar, problemfri parallellisering.
prova automationstestning gratis
exempel på testautomatisering
vid manuell testning av programvara använder testaren ett fäste och tangentbord för att interagera med det. Automatiseringsskript och verktyg replikerar denna interaktion steg för steg.
i det här exemplet testas en räknare för att se om den kan lägga till två nummer och visa resultatet. Manuellt skulle stegen för att göra det vara följande:
Steg 1: Starta kalkylator
steg 2: Tryck på 2
steg 3: Tryck på +
steg 4: Tryck på 3
Steg 5: Tryck =
steg 6: skärmen visar 5
Steg 7: Close Calculator
ett automatiseringsverktyg kan utföra samma steg med följande skript:
//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}
när du kör ovanstående skript visas exakt samma resultat (5). Istället för att behöva gå igenom de manuella stegen, skriv bara skriptet och låt verktyget ta hand om resten.
hur man går från Manuell till automationstestning
till att börja med: Ställ två frågor.
- Vad ska automatiseras?
- hur automatiseras?
Vad Ska Automatiseras?
- automatisera tester som är nödvändiga för en frekvent frisättningscykel. Det kan inkludera röktester, regressionstester och liknande. I grund och botten automatisera tester som påskyndar hela testcykeln. Kom ihåg att lägre Manuell intervention motsvarar snabbare resultat.
- automatisera tester baserade på teknisk och affärsmässig prioritet. Tänk så här: skulle automatiseringen av detta test hjälpa verksamheten? Skulle automatisera detta test hjälpa till att förenkla tekniska komplexiteter? Om svaret är ja på någon fråga, automatisera.
- automatisera baserat på användbarhet. Vissa tester, till exempel cross browser-kompatibilitetstester fungerar helt enkelt bättre när de utförs manuellt. Verktygsberoende kan också begränsa automatiseringspotentialen för ett visst testteam eller en viss organisation.
Läs Mer: 10 testautomatisering bästa praxis att följa
hur automatiseras?
till att börja med, kom ihåg att inte alla tester kan automatiseras. Genom att följa de tre strategierna i föregående avsnitt blir det lättare att initiera automatiserad testning på ett praktiskt sätt.
- börja små. 100% automatisering är inte målet, och inte heller möjligt. Skriv mindre testfall eftersom de är lättare att underhålla och återanvända. Flytta ett litet antal tester till en automationsplattform, kör testerna, analysera resultaten och bestäm om processen visade sig vara till nytta för mjukvaruutvecklingsprocessen.
- om betydande fördelar kommer från operationen, flytta fler tester till automation. Börja flytta tester inte bara i volym utan också öka typen av tester som automatiseras. Kom ihåg att detta fortfarande är ett experimentellt Stadium. Det är möjligt att vissa tester kommer att visa sig vara ineffektiva i automatisering och måste flyttas tillbaka till manuell testning.
- kartlägga testfall med varje metod eller funktion för att få bättre testtäckning. Märk dina testfall för enklare identifiering så att teamet snabbt kan veta vilka tester som ska automatiseras. Detta bidrar också till bättre rapportering.
- när du startar automationstestning börjar du med att utforska nya områden i applikationen manuellt. Skapa sedan en riskplan som beskriver vad som behöver automatiseras, baserat på affärs-och tekniska prioriteringar.
- använd analytics för att bestämma slutanvändarens preferenser. Skapa en lista över webbläsare och enheter som användarna mest sannolikt kommer åt programvaran med. Detta hjälper automatiseringstestning att täcka rätt gränssnitt och optimerar programvarans prestanda på rätt användarvägar.
prova automatiserad testning på riktigt Enhetsmoln
underhåll av testautomatisering
när de har skapats måste automatiseringstestsviter underhållas. När programvaran utvecklas och kodbasen expanderar måste automatiseringsskript ändras och uppdateras för att införliva nya funktioner och funktioner. Även små förändringar i användargränssnittet kan störa tester och få dem att misslyckas. Vid utformning av testfall måste automatiseringstestare ta hänsyn till underhållsinsatser och kostnader.
testautomatiseringsunderhållsmetoden fungerar ur två huvudperspektiv:
- testfel: vid felsökning av misslyckade tester letar du efter möjliga underhållsproblem. Var testskriptet inte tillräckligt uppdaterat? Störde en förändring av programkoden testskriptet? Detta är ett enkelt sätt att identifiera vilka områden som kräver underhållsinsatser.
- ändring av beroenden eller verktyg: Har teamet eller organisationen ändrat API: er,rapporteringsverktyg, databaser etc.? Om så är fallet kan tester behöva ändras eller uppdateras för att anpassa sig till nya verktygsuppsättningar. För att uppnå detta måste utvecklare och testare naturligtvis utbildas i den nya infrastrukturen så att de kan hålla jämna steg med underhållsinsatserna i framtiden.
vilka är de viktigaste elementen i en effektiv testautomatiseringsstrategi?
automationstestning är en integrerad del av alla testekosystem. Utan att flytta till en automatiseringsinstallation blir omfattande tester svåra, liksom mötet med ständigt förkortade tidsfrister. Därför är det viktigt att initiera automatiseringsprovningsprotokoll så tidigt som möjligt på ett sätt som balanserar och kompletterar manuell testning.
prova stegen ovan och experimentera tillräckligt för att ta reda på vilka tillvägagångssätt som ger optimala resultat. Var inte orolig för att misslyckas några gånger innan du hittar den söta platsen som möjliggör effektiv automatisering utan att kompromissa med mänsklig validering.