types automation testing
Lär dig de olika typerna av automatiseringstestning med vissa missuppfattningar om testautomatisering:
I denna andra del av testautomationshandledningsserier , Jag kommer kort att beskriva vilka typer av automatiserade tester och viktigast av allt kommer jag att rensa några missuppfattningar om testautomatisering.
Vad är automatiseringstestning?
Automationstestning kan definieras som ett sätt att köra en uppsättning tester om och om igen utan att behöva utföra dem manuellt. Att introducera automatiseringstester i din teststrategi är ett sätt att spara pengar och tid.
Vad du kommer att lära dig:
Typer av automatiseringstestning
Typer av automatiseringstester definierar vilken typ av testsviter som kan automatiseras. Många testare förväxlar detta ämne med de typer av automatiseringsramar som definierar hur du ska utforma din testsvit till ett automatiseringspaket som enkelt kan köras.
I den här artikeln kommer vi att ta en närmare titt på Automation-testtyperna och i slutändan ta en kort titt på automatiseringsramarna.
Låt oss förstå ovanstående klassificeringar i detalj:
Automation baserat på typ av testning
Automation av funktionstester:
Funktionella tester skrivs för att testa affärslogiken bakom en applikation. Automatisering av dessa genomsnittliga skrivskript för att validera affärslogiken och den funktion som förväntas av applikationen.
Automatisering av icke-funktionella tester:
Icke-funktionella tester definierar applikationens icke-affärsbehov. Detta är kraven relaterade till prestanda, säkerhet, databaser etc. Dessa krav kan förbli konstanta eller kan skalas enligt programvarans storlek.
Automation baserad på testfasen
Automation av enhetstester:
Dessa tester körs under själva utvecklingsfasen, helst av utvecklaren efter avslutad utveckling och innan de överlämnas till testarna för testning.
Automation av API-tester:
API-test körs under integrationsfasen. Dessa kan köras av utvecklings- eller testteamet och kan köras före eller efter att UI-lagret har byggts för applikationen. Dessa tester riktar sig till testningen baserat på begäran och svaret som applikationen bygger på.
Automation av UI-baserade tester:
UI-baserade tester körs under testutförandefasen. Dessa körs specifikt av testarna och körs bara en gång innan applikationsgränssnittet överlämnas till dem. Dessa testar funktionaliteten och affärslogiken för applikationen från applikationens framsida.
Automation baserat på typ av tester
Enhetstester:
Enhetstester är de tester som är byggda för att testa koden för en applikation och vanligtvis är inbyggda i själva koden. De riktar sig mot kodningsstandarderna som hur metoderna och funktionerna skrivs.
Dessa tester skrivs oftare av utvecklarna själva, men i dagens värld kan automatiseringstestare också bli ombedda att skriva dem.
Att utföra dessa tester och få inga buggar från dem betyder att din kod kommer att kompileras och köras utan några kodproblem. Dessa tester riktar sig vanligtvis inte till de funktionella aspekterna av applikationen och eftersom de riktar sig mot kod är det mer lämpligt att automatisera dem så att de kan köras när och när det krävs av utvecklaren.
Rökprov:
Röktestet är ett berömt test som utförs under testets livscykel. Dessa är efterbyggda tester, de körs omedelbart efter att någon version har givits ut av applikationen för att säkerställa att applikationen fortfarande fungerar efter att byggnaden är klar.
Detta är en liten testsvit och är något som kommer att köras flera gånger och därmed är det vettigt att automatisera det. Dessa tester kommer vanligtvis att vara av funktionell karaktär och beroende på typ av applikation kan ett verktyg väljas för dem.
vad är den bästa mjukvaran för taligenkänning
API-tester:
API-testning har blivit mycket känd under de senaste åren. Applikationer byggda på API-arkitekturen kan utföra denna testning.
Vid API-testning validerar testarna applikationens affärsskikt genom att kontrollera begäran-svarskombinationerna för de olika API: er som applikationen är byggd på. API-tester kan också göras som en del av integrationstesterna nedan.
Integrationstester:
Integrationstest som själva namnet antyder innebär att testa applikationen genom att integrera alla moduler och kontrollera applikationens funktionalitet.
Integrationstestning kan göras via API-testning eller kan göras via applikationens UI-lager.
hur man öppnar dat-filen på iphone
UI-tester:
UI-tester görs från UI-lagret eller applikationens frontend. Dessa kan vara inriktade på att testa funktionaliteten eller helt enkelt testa UI-elementen i en applikation.
Att automatisera användargränssnittet för att testa funktionaliteten är en vanlig praxis. Att automatisera GUI-funktionerna är dock en av de mer komplicerade automatiseringarna.
Regressionstest:
En av de vanligaste automatiserade testsviterna är regressionstestpaketet. Regression, som du kanske redan vet, är testet som görs i slutet av testningen av en ny modul för att säkerställa att ingen av de befintliga modulerna har påverkats av den.
Det upprepas efter varje ny iteration av testningen och de viktigaste testfallet förblir fasta med vanligtvis några nya tillägg efter en ny iteration. Eftersom det ofta körs försöker nästan alla testteam automatisera detta paket.
Automation som kontinuerlig integration:
Kontinuerlig integration kan återigen köras på själva de automatiska regressionstesterna, men för att uppnå CI möjliggör vi att regressionen eller det identifierade testpaketet kan köras varje gång en ny distribution sker.
Säkerhetstester:
Säkerhetstester kan vara både funktionella och en icke-funktionell typ av testning som innebär att testa applikationen för sårbarheter. Funktionella tester kommer att bestå av tester relaterade till behörighet etc., medan icke-funktionella krav kan testa för SQL-injektion, skriptöverföring på plats etc.
Prestandatester och kvalitetskontroll:
Prestandatester är icke-funktionella tester som riktar sig till kraven som test av belastning, stress, skalbarhet i applikationen.
Godkännande tester:
Acceptanstester faller igen under funktionstester som vanligtvis görs för att säkerställa om de acceptanskriterier som givits av klienten har uppfyllts.
Hittills har vi beskrivit vilken typ av tester som kan automatiseras och olika klassificeringar av samma, alla klassificeringar kommer så småningom att leda till att samma slutresultat av en testsvit automatiseras. Som vi sa tidigare krävs lite förståelse för hur dessa skiljer sig från ramar.
När du väl har identifierat de tester som du vill automatisera från klassificeringen ovan, måste du utforma din logik på ett sätt för att utföra dessa tester smidigt utan mycket manuellt ingripande. Denna design av en manuell testsvit till en automatiserad testsvit är där ramarna kommer in.
Nu kommer vi att utforska Top 3 Test Automation Typer
- Enhetstestning
- API-testning
- GUI-testning
# 1) Automatiserade enhetstester
Automatiserade enhetstester är skrivna för att testa kodnivån. Fel identifieras i funktionerna, metoderna och rutinerna som skrivits av utvecklarna.
Vissa företag ber utvecklarna att själva testa enheten och andra anlitar specialiserade testautomationsresurser. Dessa resurser har tillgång till källkod och de skriver enhetstester för att bryta produktionskoden.
På grund av förekomsten av enhetstester, när koden kompileras, körs alla enhetstester och berättar för oss resultatet om alla funktioner fungerar. Om något enhetstest misslyckas betyder det att det nu finns ett fel i produktionskoden.
Några av de mest populära verktygen som finns på marknaden inkluderar NUnit och JUnit . Microsoft tillhandahåller också ett eget ramverk för enhetstest som kallas MSTest . Gå igenom webbplatserna för dessa verktyg och de kommer att ge dig fler exempel och handledning om hur du skriver enhetstester.
#två) Automated Web Service / API Tests
Ett API (Application Programming Interface) gör det möjligt för programvaran att prata med andra program. Precis som alla andra program måste API: er testas. I denna typ av testning är GUI vanligtvis inte inblandad.
Vad vi testar här är vanligtvis funktionalitet, efterlevnad och säkerhetsfrågor. I webbapplikationer kan vi testa vår applikations begäran och svar om att de är säkra och krypterade eller inte.
Detta är ett av exemplen där vi kan använda API-testning. Det mest populära verktyget för API-testning är TVÅL som har både gratis och betalda versioner. Det finns också andra verktyg som du kan använda efter ditt behov.
# 3) Automatiserade GUI-tester.
Denna typ av automatiserad testning är den tuffaste formen för automatisering eftersom den involverar testning av ett användargränssnitt för applikationen.
Det är tufft eftersom GUI: erna är mycket föremål för förändringar. Men den här typen av test är också närmast vad användarna kommer att göra med vår applikation. Eftersom användaren kommer att använda musen och tangentbordet, efterliknar automatiserade GUI-tester också samma beteende genom att använda musen och tangentbordet för att klicka eller skriva till objekt som finns i användargränssnittet.
På grund av detta kan vi hitta buggar tidigt och det kan användas i många scenarier, t.ex. regressionstest eller att fylla i formulär som tar för mycket tid.
De mest populära GUI-testverktygen inkluderar Micro Focus Unified Functional Testing (UFT) , Selen , Testet är klart och Microsoft Coded UI (som är en del av Visual Studio ultimata och premiumutgåvor).
Precis som de typer av automatiseringstester, det finns också flera typer av ramar.
Automationsramar
Några vanliga automatiseringsramar inkluderar:
- Linjär (spela in och spela upp)
- Nyckelord Driven
- Data driven
- Sidobjektmodell
- Modul
Ytterligare läsning => Automationsramar
Som du kan se är det första steget i automatiseringsprocessen att identifiera typen av automatisering, då kan du identifiera ramverket för att designa och med tanke på dessa kan du välja de verktyg som passar dina behov.
Automationsverktyg
Baserat på vilken typ av test du inriktar dig på och vilken typ av ram du kanske vill bygga runt är följande verktyg tillgängliga att använda:
- Selen : Mycket kraftfullt verktyg för testning av webbapplikationer. Ger stöd för flera webbläsare.
- Junit och Nunit: Verktyg som huvudsakligen används för enhetstestning av utvecklarna.
- QTP : Bra verktyg för icke-webbapplikationer och levereras med ett inbyggt objektförvar.
- Sikuli: Open source-verktyg för GUI-testning.
- Tvål UI: Verktyg för API-testning.
- Var så säker: Bibliotek för att skapa ett API-testramverk.
- appium : Verktyg som stöder mobiltestning, testning av inbyggda appar, hybridtestning och mobilapplikationstestning.
- Jmeter : Ett verktyg som används för prestandatester.
- TestNG: TestNG är inte ett automatiseringsverktyg i sig, men det ger bra stöd till automatiseringsramar byggda med selen, appium, vara säker etc.
Ytterligare läsning => Testa automatiseringsverktyg
Missuppfattningar om automatiseringstestning
Under åren har jag hört några missuppfattningar om testautomatisering. Jag tror att jag också borde rensa dem i den här artikeln.
Missuppfattning nr 1. Automation är här för att ersätta manuella testare.
Testautomation är för att hjälpa testarna att göra testningen snabbare och på ett mycket tillförlitligt sätt. Det kan aldrig ersätta människor.
Tänk på testautomation som en bil. Om du går tar det cirka 20 minuter att nå ditt hem. Men om du använder en bil når du om två minuter. Bilföraren är fortfarande du, en människa, men .. bilen hjälper människan att uppnå sitt mål snabbare. Dessutom sparas det mesta av din energi eftersom du inte gick. Således kan du använda denna energi för att utföra viktigare saker.
Samma sak gäller automatiseringstestning. Du använder den för att snabbt testa de flesta av dina upprepade, långa och tråkiga tester och spara tid och energi för att fokusera och testa ny och viktig funktionalitet.
Som James Bach sa ett underbart citat:
”Verktyg testar inte. Endast människor testar. Verktyg utför bara åtgärder som 'hjälper' människor att testa. “
Verktyg kan klicka på objekt. Men var du ska klicka kommer alltid att få veta av en manuell testare. Jag tror att du förstår min poäng nu.
Missuppfattning nr 2 . Allt under solen kan automatiseras
Om du försöker automatisera 100% av dina testfall kanske du kommer att kunna göra det, men om du skulle kunna göra det blir vår första punkt falsk. Om allt är automatiserat, vad gör då en manuell testare?
Förvirrad? Rätt?
Egentligen är poängen att du inte kan automatisera 100% av dina testfall. Eftersom vi som testare tror att ingen ansökan kan testas 100%. Det kommer alltid att finnas några scenarier som vi kommer att sakna. Det kommer alltid att finnas buggar som bara kommer när din applikation kommer att användas av klienterna.
Om ansökan inte kan testas 100%, hur kan du då lova 100% automatisering?
Det finns också en mycket liten chans att du kommer att kunna automatisera alla dina befintliga testfall. Det finns alltid scenarier som är svåra att automatisera och är lättare att göra manuellt.
programvara för taligenkänning är mest populär för
Till exempel , En användare kommer att mata in data, den andra användaren kommer att godkänna data, den tredje användaren kommer att se data och den fjärde användaren är förbjuden att se data. Dessa scenarier kan automatiseras, men de tar mycket tid och ansträngning. Så det blir lättare om du bara gör det manuellt.
Kom ihåg att vi använder bilar för att gå till avstånd, men det kan vara långa signaler på vägen, det kommer att finnas bränsleförbrukning, det kommer att bli parkeringsplatsproblem, parkeringsavgifter och mycket mer huvudvärk. I vissa scenarier går vi bara och når vårt mål :) .
Således bör du inte försöka automatisera allt. Automatisera bara de scenarier som är viktiga och de som tar mycket tid att göra manuellt.
Missuppfattning # 3 . Automatisering innebär endast inspelning och uppspelning.
Vänligen lev inte i en fantasivärld. Denna fantasi skapas faktiskt av falska annonser från olika leverantörer av automatiseringsverktyg. De säger att du bara spelar in och spelar upp dina steg så att dina testfall automatiseras. Det är en stor lögn!
Automation är allt och inte bara inspelning och uppspelning. Rena automatiseringsingenjörer använder normalt inte inspelnings- och uppspelningsfunktionen alls. Inspelning och uppspelning används vanligtvis för att få en uppfattning om hur verktyget genererar ett skript för våra steg.
När vi väl har lärt känna skriptet använder vi alltid skript för att skapa automatiska tester. Kom ihåg, du måste kunna programmering om du vill göra testautomatisering . Å andra sidan, bli inte avskräckt om du inte känner till programmering. Precis som alla andra uppgifter kan programmering också läras med övning och engagemang.
Jag känner människor som inte ens har en datavetenskaplig bakgrund, men de lär sig att programmera och nu är de fantastiska automationsingenjörer. Hos Microsoft anställer de testare som kan göra programmering. De kallas SDET (Programvaruutvecklare för test). Den första raden i jobbbeskrivningen säger 'SDET: s skriver mycket kod ...'.
Lär dig att programmera, spring inte bort från det. Det kommer att göra dig till en fantastisk testare .
Slutsats
Jag hoppas att den här artikeln skulle ha hjälpt dig att rensa några begrepp relaterade till testautomation.
Vi har täckt en hög nivå av olika typer av automatiseringstest, med olika sätt att klassificera.
De viktigaste klassificeringarna inkluderar:
- Automation baserad på typ av testning (funktionell eller icke-funktionell).
- Automation baserad på testfasen (Unit, API eller UI).
- Automation baserad på olika typer av tester (Multipla testtyper).
Vi har också listat de olika verktygen som kan användas för dessa typer av automatiserade tester.
I vår kommande artikel kommer vi att diskutera steg för steg procedur av hur man startar testautomatisering i din organisation .
PREV-handledning nr 1 | NÄSTA självstudie # 3
Rekommenderad läsning
- Lasttestning med HP LoadRunner-handledning
- Bästa verktyg för testning av programvara 2021 [QA Test Automation Tools]
- Förlorar testare greppet över test på grund av automatisering?
- Manuella och automatiseringstestutmaningar
- 10-stegs automatiseringstestprocess: Hur man startar automatiseringstestning i din organisation
- Är du expert på manuell eller automatiseringstestning? Arbeta deltid för oss!
- 11 bästa automatiseringsverktyg för testning av Android-applikationer (Android-apptestverktyg)
- Topp 10+ bästa testböcker för programvara (testböcker för manuell och automatisering)