Test Automation Framework: Vad är, Architecture & Typer
Vad är ramverk i automationstestning?
A Testa Automation Framework är en uppsättning riktlinjer som kodningsstandarder, hantering av testdata, behandling av objektlager etc... som när de följs under automatisering av skript ger fördelaktiga resultat som ökad kodåteranvändning, högre portabilitet, minskad skriptunderhållskostnad etc. Dessa är bara riktlinjer och inte regler; de är inte obligatoriska och du kan fortfarande skripta utan att följa riktlinjerna. Men du kommer att gå miste om fördelarna med att ha ett ramverk.
Varför behöver du ett ramverk?
Låt oss överväga ett exempel för att förstå varför du behöver ett ramverk.
Jag är säker på att du har deltagit i ett seminarium/föreläsning/konferens där deltagarna ombads följa följande riktlinjer –
- Deltagarna bör sitta på sina platser 5 minuter innan föreläsningen börjar.
- Ta med en anteckningsbok och penna för anteckningar.
- Läs sammanfattningen så att du har en uppfattning om vad presentationen kommer att handla om.
- Mobiltelefoner ska vara inställda på tyst.
- Använd utgångsgrindarna i den motsatta änden av talaren om du skulle behöva lämna mitt under föreläsningen.
- Frågor kommer att ställas i slutet av sessionen.
Tror du att du kan genomföra ett seminarium UTAN följa dessa riktlinjer👍
Svaret är stort JA! Visst, du kan genomföra ett seminarium/föreläsning/konferens/demonstration utan ovanstående riktlinjer.. faktiskt, vissa av oss kommer inte att följa dem även om det finns upplagt!
Men om riktlinjerna följs kommer det att resultera i ett fördelaktigt resultat som minskad distraktion av publiken under föreläsningar, ökad deltagarebehållning och förståelse för ämnet.
Baserat på ovanstående, a Ramverk kan definieras som en uppsättning riktlinjer som, när de följs, ger fördelaktiga resultat.
Typer av ramverk för testautomatisering
Nedan finns de olika typerna av ramverk för automatisk testning:
- 1) Linjär scripting
- 2) Testbiblioteket Architecture Framework.
- 3) Den datadrivna Testning Ramverk.
- 4) Det nyckelordsdrivna eller tabelldrivna testramverket.
- 5) Hybrid Test Automation Framework.
Låt oss titta på dem i detalj -
1) Linjärt skript – Spela in och spela upp
Det är det enklaste av alla Testing Automation Frameworks och även känt som "Spela in och spela upp". I detta Automationstestning Framework, Tester registrerar manuellt varje steg (navigering och användarinmatningar), infogar kontrollpunkter (valideringssteg) i den första omgången. Han spelar sedan upp det inspelade manuset i de efterföljande omgångarna.
Exempelvis: Överväg att logga in Ansökan om flygbokning och kontrollera om applikationen har laddats vid lyckad inloggning. Här kommer testaren helt enkelt att registrera stegen och lägga till valideringssteg.
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded after successful log-on Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Fördelar
- Snabbaste sättet att skapa ett skript
- Automationsexpertis krävs inte
- Det enklaste sättet att lära sig funktionerna i testverktyget
Nackdelar
- Lite återanvändning av skript
- Testdata hårdkodas in i skriptet
- Underhåll mardröm
2) Testbiblioteket Architecture Framework
Det är också känt som "Structured Scripting" or "Funktionell nedbrytning".
I detta ramverk för automatiseringstestning registreras testskript initialt av "Spela in och spela upp”Metod. Later, identifieras vanliga uppgifter i skripten och grupperas i funktioner. Dessa funktioner anropas av huvudtestskriptet Chaufför på olika sätt för att skapa testfall.
Exempelvis: Med samma exempel som ovan kommer funktionen för att logga in på Flight Reservation se ut som .
Function Login() SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click End Function
Nu kommer du att anropa denna funktion i huvudskriptet enligt följande
Call Login() --------------------------- Other Function calls / Test Steps. ---------------------------
Fördelar
- Högre nivå av återanvändning av kod uppnås i Structured Scripting jämfört med "Record & Playback"
- Automatiseringsskripten är mindre kostsamma att utveckla på grund av högre återanvändning av kod
- Enklare skriptunderhåll
Nackdelar
- Teknisk expertis är nödvändig för att skriva skript med Test Library Framework
- Mer tid behövs för att planera och förbereda testskript.
- Testdata är hårdkodade i skripten
3) Det datadrivna testramverket
I detta ramverk, medan Testfall logiken finns i testskript, testdata separeras och hålls utanför testskripten. Testdata läses från de externa filerna (Excel-filer, textfiler, CSV-filer, ODBC-källor, DAO-objekt, ADO-objekt) och läses in i variablerna i testskriptet. Variabler används både för ingångsvärden och för verifieringsvärden. Testskripten själva förbereds antingen med hjälp av linjär skript eller testbiblioteksram.
Exempelvis: Att utveckla inloggningsskriptet för flygbokning med denna metod kommer att innebära två steg.
Steg 1) Skapa ett test – Datafil som kan vara Excel, CSV eller någon annan databaskälla.
Agent namn | Lösenord |
---|---|
Jimmy | Mercury |
tina | KVICKSILVER |
Bill | Merkurius |
Steg 2) Utveckla testskript och gör referenser till din testdatakälla.
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet) Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet) Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded Window("Flight Reservation").Check CheckPoint("Flight Reservation") **Note "dtGlobalSheet" is the default excel sheet provided by QTP.
Fördelar
- Ändringar av testskripten påverkar inte testdata
- Testfall kan utföras med flera uppsättningar data
- En mängd testscenarier kan utföras genom att bara variera testdata i den externa datafilen
Nackdelar
- Mer tid behövs för att planera och förbereda både testskript och testdata
4) Det nyckelordsdrivna eller tabelldrivna testramverket
Utvecklingen av nyckelordsdriven eller tabelldriven automationsramverk kräver datatabeller och nyckelord, oberoende av testautomatiseringsverktyg används för att avrätta dem. Tester kan utformas med eller utan applikationen. I ett nyckelordsdrivet test dokumenteras funktionaliteten av applikationen-under-test i en tabell samt i steg-för-steg-instruktioner för varje test.
Det finns tre grundläggande komponenter i ett nyckelordsdrivet ramverk, dvs. Nyckelord , Applikationskarta , Komponentfunktion.
Vad är ett nyckelord?
Nyckelord är en åtgärd som kan utföras på en GUI-komponent. Ex. För GUI Component Textbox skulle vissa nyckelord ( Action) vara InputText, VerifyValue, VerifyProperty och så vidare.
Vad är applikationskartan?
En applikationskarta ger namngivna referenser för GUI-komponenter. Applikationskartor är inget annat än "Objektförråd"
Vad är komponentfunktion?
Komponentfunktioner är de funktioner som aktivt manipulerar eller förhör GUI-komponenten. Ett exempel på en funktion skulle vara klicka på webbknappen med all felhantering , ange data i en webbredigering med all felhantering. Komponentfunktioner kan vara applikationsberoende eller oberoende.
Exempelvis: För att förstå nyckelordsvyn tar vi samma exempel. Det innebär 2 steg
steg 1: Skapar datatabell (Skillnad från testdatatabell skapad i datadrivet ramverk). Denna datatabell innehåller åtgärder som ska utföras på GUI-objekt och motsvarande argument om några. Varje rad representerar ett teststeg.
Ändamålet | Handling | |
---|---|---|
(Applikationskarta) | (NYCKELORD) | Argument |
WinEdit (agentens namn) | uppsättning | Guru99 |
WinEdit (lösenord) | uppsättning | Mercury |
WinButton (OK) | Klicka | |
Fönster (Flygbokning) | Verifiera | Existerar |
steg 2: Skriva kod i form av komponentfunktioner.
När du har skapat dina datatabeller, skriver du helt enkelt ett program eller en uppsättning skript som läser i varje steg, kör steget baserat på nyckelordet i fältet Åtgärd, utför felkontroll och loggar all relevant information. Detta program eller uppsättning skript skulle se ut som pseudokoden nedan:
Function main() { Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table. while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table. { Pass values to appropriate COMPONENT functions.Like Set(Object Name, Argument) ex.Set(Agent Name, Guru99). } } Call CloseConnection() //Function for Closing connection after all the operation has been performed. } //End of main
Det är allt till nyckelordsdrivet ramverk.
Fördelen med Keyword Driven Framework är att sökorden är återanvändbara. För att förstå detta, tänk på att du vill verifiera inloggningsfunktionen för en webbplats, säg YAHOO MAIL. Tabellen kommer att se ut så här -
Ändamålet | Handling | |
---|---|---|
(APPLIKATIONSKARTA) | (NYCKELORD) | Argument |
WebEdit(användarnamn) | uppsättning | abc@yahoo.com |
WebEdit (lösenord) | uppsättning | xxxxx |
Webbutton (OK) | Klicka | |
Fönster (Yahoo Mail) | Verifiera | Massor |
Om du i detta fall ser att nyckelordsuppsättningen , klicka , verifiera förblir densamma för vilka motsvarande komponentfunktioner redan är utvecklade. Allt du behöver göra är att ändra Application Mapping (Object Repository) från tidigare flygbokning till Yahoo Mail , med en förändring i argumentvärden och samma skript kommer att fungera!
Fördelar
- Ger hög kodåteranvändbarhet
- Testverktyg oberoende
- Oberoende av Application Under Test, fungerar samma skript för AUT (med vissa begränsningar)
- Tester kan utformas med eller utan AUT
Nackdelar
- Eftersom den initiala investeringen är ganska hög, kan fördelarna med detta bara realiseras om applikationen är avsevärt stor och testskripten ska underhållas under ganska många år.
- Hög automationsexpertis krävs för att skapa det nyckelordsdrivna ramverket.
NOTERA : Även om Micro Focus UFT annonserar sig själv som KeyWord Driven Framework, kan du inte uppnå fullständigt testverktyg och applikationsoberoende med HP UFT.
5) Hybrid Test Automation Framework
Som namnet antyder är detta ramverk kombinationen av ett eller flera Automation Frameworks som diskuterats ovan som drar ur sina styrkor och försöker mildra sina svagheter. Hybridtest-QA-automationsramverket är vad de flesta testautomationsramverk utvecklas till över tid och flera projekt. Maximum industri använder Keyword Framework i en kombination av funktionsnedbrytningsmetod.
PS: Andra Automation Frameworks värda att nämna är
Testa Modularity Framework
I detta ramverk grupperas en vanlig uppgift i testskript som moduler.
Exempelvis: Att använda Actions i QTP-användning kan skapa ett modulärt skript
Exempelskript för inloggning
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'End of Script
Nu kan du kalla denna Action i huvudskriptet enligt följande –
RunAction ("Login[Argument]", oneIteration)
Business Process Testing (BPT)
Dessa Automation Frameworks delar upp stora affärsprocesser i komponenter som kan återanvändas flera gånger i samma eller olika testskript. Till exempel är affärsprocessen för att boka en flygresa uppdelad i komponenter som inloggning , Hitta flyg , bokning , betalning och utloggning som kan återanvändas i samma affärsprocess eller olika processer. Dessutom underlättar BPT närmare samordning mellan små och medelstora företag och automationsingenjörer.
Fördelar med Test Automation Framework Architecture
Följande är fördelarna med Test automation framework-arkitektur:
- Ett ramverk för testautomatisering hjälper till att minska riskerna och kostnadskostnaderna
- Det förbättrar effektiviteten i testerna
- Det hjälper till att minska underhållskostnaderna
- Tillåter återanvändning av kod
- Det gör det möjligt att uppnå maximal testtäckning
- Det maximerar applikationens funktionalitet
- Hjälper till att minska testfallsdubblering
- Det hjälper till att förbättra testeffektiviteten och prestandan med testautomatisering
Sammanfattning
- Ett ramverk är en uppsättning riktlinjer som kodningsstandarder, hantering av testdata, behandling av objektlager etc... som när de följs under automatisering av skript ger fördelaktiga resultat som ökad kodåteranvändning, högre portabilitet, minskad skriptunderhållskostnad etc.
- Linjär skriptning är det enklaste av alla Automation Frameworks och kallas även "Record & Playback".
- Testbibliotek Architecture Framework är också känt som "Structured Scripting" eller "Functional Decomposition".
- I Data-Driven Testing Framework finns testfallslogik i testskript, och testdata separeras och hålls utanför testskripten.
- Det nyckelordsdrivna eller tabelldrivna ramverket kräver utveckling av datatabeller och nyckelord, oberoende av testautomatiseringsverktyget som används för att köra dem.
- Hybrid Automation Framework är vad de flesta testautomationsramverk utvecklas till över tid och flera projekt.