Testautomatiseringsramme: ArchiTekstur og typer
โก Smart opsummering
Test Automation Framework-arkitekturen definerer kodningsstandarderne, hรฅndteringen af โโtestdata og reglerne for objektlager, som automatiseringsscripts fรธlger. Der findes fem etablerede typer, der hver isรฆr handler om opsรฆtningsindsats mod genbrug, vedligeholdelsesomkostninger og langsigtet skalerbarhed.

Hvad er Framework i automationstestning?
A Test Automation Framework er et sรฆt retningslinjer som kodningsstandarder, hรฅndtering af testdata, behandling af objektlager osv... som, nรฅr de fรธlges under automatisering af scripting, giver gavnlige resultater som รธget genbrug af kode, hรธjere portabilitet, reducerede omkostninger til scriptvedligeholdelse osv. Dette er kun retningslinjer og ikke regler; de er ikke obligatoriske, og du kan stadig skrive scripts uden at fรธlge retningslinjerne. Men du vil gรฅ glip af fordelene ved at have et Framework.
Hvorfor har du brug for et Framework?
Lad os overveje et eksempel for at forstรฅ, hvorfor du har brug for et Framework.
Jeg er sikker pรฅ, at du har deltaget i et seminar/foredrag/konference, hvor deltagerne blev bedt om at overholde fรธlgende retningslinjer โ
- Deltagerne skal besรฆtte deres pladser 5 minutter fรธr starten af โโen forelรฆsning.
- Medbring en notesbog og pen til note.
- Lรฆs mavemusklernetracsรฅ du har en idรฉ om, hvad prรฆsentationen vil handle om.
- Mobiltelefoner skal indstilles til lydlรธs.
- Brug udgangsportene i den modsatte ende af hรธjttaleren, hvis du har brug for at forlade det midt i foredraget.
- Spรธrgsmรฅl vil blive taget i slutningen af โโsessionen.
Tror du, du kan afholde et seminar UDEN overholdelse af disse retningslinjer?
Svaret er stort JA! Bestemt, du kan afholde et seminar/foredrag/konference/demonstration uden ovenstรฅende retningslinjer.. faktisk vil nogle af os ikke fรธlge dem, selvom der er fastlagt!
Men hvis retningslinjerne fรธlges, vil det resultere i et gavnligt resultat, sรฅsom reduceret publikumsforstyrrelsetraction under forelรฆsninger, รธget deltagerfastholdelse og forstรฅelse af emnet.
Pรฅ baggrund af ovenstรฅende, en Framework kan defineres som et sรฆt retningslinjer, der, nรฅr de fรธlges, giver gavnlige resultater.
Test Automation Framework ArchiTekstur: Nรธglekomponenter
Fรธr man sammenligner typerne, er det en god idรฉ at se, hvad hvert framework indeholder. ArchiTekstur beskriver, hvordan disse dele er lagdelt, sรฅ en รฆndring i รฉt lag ikke bryder de andre.
- Testscriptlag: Indeholder testtilfรฆldene. Scripts forbliver korte, fordi de kalder genbrugelige funktioner i stedet for at gentage navigationstrin.
- Funktionsbibliotek: Gemmer delte handlinger sรฅsom login, sรธgning og log ud, sรฅ en รฆndring af arbejdsgangen foretages รฉn gang.
- Objektlager: Knytter brugervenlige navne til GUI-elementplaceringer. Nรฅr brugerfladen รฆndres, redigeres kun dette lag.
- Testdatalag: Bevarer input og forventede vรฆrdier i Excel, CSV eller databasekilder i stedet for inde i koden.
- Konfigurationslag: Indeholder miljรธ URLs, browservalg, timeouts og legitimationsoplysninger.
- Rapporteringslag: Producerer udfรธrelsesrapporter, skรฆrmbilleder af fejl og diagnosticeringslogfiler.
- Udfรธrelseslag: Udlรธser suiter fra en byggeserver, der forbinder automatisering til kontinuerlig integration.
Framework-typerne nedenfor adskiller sig primรฆrt i, hvor strengt de adskiller disse lag.
Typer af testautomatiseringsrammer
Nedenfor er de forskellige typer af automatiserede testrammer:
- Lineรฆr scripting
- Testbiblioteket Architecture Framework.
- Den datadrevne Test Ramme.
- Det sรธgeordsdrevne eller tabeldrevne testframework.
- Hybrid testautomatiseringsrammevรฆrk.
Lad os se pรฅ dem i detaljer -
1) Lineรฆr scripting โ Optag og afspilning
Det er det enkleste af alle Test Automation Frameworks og ogsรฅ kendt som "Optag og afspil". I denne Test af automatisering Framework, testeren registrerer manuelt hvert trin (navigation og brugerinput), indsรฆtter kontrolpunkter (valideringstrin) i fรธrste runde. Han afspiller derefter det indspillede manuskript i de efterfรธlgende runder.
Eksempel: Overvej at logge ind Ansรธgning om flyreservation og kontrollere, om applikationen er indlรฆst ved vellykket log-on. Her vil testeren blot registrere trinene og tilfรธje valideringstrin.
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")
Fordele
- Hurtigste mรฅde at generere et script pรฅ
- Automatiseringsekspertise er ikke pรฅkrรฆvet
- Den nemmeste mรฅde at lรฆre funktionerne i testvรฆrktรธjet
Ulemper
- Lidt genbrug af scripts
- Testdata er hardkodet ind i scriptet
- Vedligeholdelse mareridt
2) Testbiblioteket Architecture Framework
Det er ogsรฅ kendt som "Struktureret scripting" or "Funktionel nedbrydning".
I dette Automation Testing Framework optages testscripts oprindeligt af "Optag & afspilningโMetode. Later, er almindelige opgaver inde i scripts identificeret og grupperet i funktioner. Disse funktioner kaldes af hovedtestscriptet Chauffรธr pรฅ forskellige mรฅder at skabe testcases.
Eksempel: Ved at bruge samme eksempel som ovenfor, vil funktionen til at logge ind pรฅ Flight Reservation se ud.
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 vil du kalde denne funktion i hovedscriptet som fรธlger
Call Login() --------------------------- 'Other Function calls / Test Steps. ---------------------------
Fordele
- Hรธjere niveau af kodegenbrug opnรฅs i Structured Scripting sammenlignet med "Record & Playback"
- Automatiseringsscripts er billigere at udvikle pรฅ grund af hรธjere genbrug af kode
- Nemmere scriptvedligeholdelse
Ulemper
- Teknisk ekspertise er nรธdvendig for at skrive scripts ved hjรฆlp af Test Library Framework
- Der krรฆves mere tid til at planlรฆgge og forberede testscripts.
- Testdata er hรฅrdkodet i scripts
3) Den datadrevne testramme
I denne ramme, mens Test sag Da logikken ligger i testscripts, adskilles testdataene og opbevares uden for testscriptsene. Testdata lรฆses fra de eksterne filer (Excel-filer, tekstfiler, CSV-filer, ODBC-kilder, DAO-objekter, ADO-objekter) og indlรฆses i variablerne i testscriptet. Variabler bruges bรฅde til inputvรฆrdier og til verifikationsvรฆrdier. Selve testscripts udarbejdes enten ved hjรฆlp af Linear Scripting eller Test Library Framework. Teknikken forklares yderligere i datadrevet test tutorial.
Eksempel: Udviklingping Login-scriptet til flyreservation ved hjรฆlp af denne metode vil involvere to trin.
Trin 1) Opret en test โ Datafil, som kunne vรฆre Excel, CSV eller enhver anden databasekilde.
| Agentnavn | Adgangskode |
|---|---|
| Jimmy | Mercury |
| Tina | MERCURY |
| Bill | Kviksรธlv |
Trin 2) Udvikl testscript og foretag referencer til din testdatakilde.
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.
Fordele
- รndringer i testscripts pรฅvirker ikke testdata
- Testcases kan udfรธres med flere sรฆt data
- En rรฆkke testscenarier kan udfรธres ved blot at variere testdataene i den eksterne datafil
Ulemper
- Der krรฆves mere tid til at planlรฆgge og forberede bรฅde testscripts og testdata
4) Det nรธgleordsdrevne eller tabeldrevne testrammevรฆrk
Sรธgeordsdrevet eller udvikling af tabeldrevne automatiseringsframeworks krรฆver datatabeller og nรธgleord, uafhรฆngig af testautomatiseringsvรฆrktรธj bruges til at udfรธre dem. Tests kan designes med eller uden applikationen. I en sรธgeordsdrevet test dokumenteres funktionaliteten af โโapplikationen-under-testen i en tabel samt i trin-for-trin instruktioner for hver test.
Der er 3 grundlรฆggende komponenter i et sรธgeordsdrevet rammevรฆrk, dvs. Nรธgleord , applikationskort , komponentfunktion.
Nรธgleord er en handling, der kan udfรธres pรฅ en GUI-komponent. Eks. For GUI Component Textbox ville nogle sรธgeord (handling) vรฆre InputText, VerifyValue, VerifyProperty og sรฅ videre.
Hvad er applikationskortet?
Et applikationskort giver navngivne referencer til GUI-komponenter. Applikationskort er intet andet end "Objektopbevaring"
Hvad er komponentfunktion?
Komponentfunktioner er de funktioner, der aktivt manipulerer eller udspรธrger GUI-komponenten. Et eksempel pรฅ en funktion ville vรฆre klik pรฅ web-knappen med al fejlhรฅndtering, indtast data i en webredigering med al fejlhรฅndtering. Komponentfunktioner kan vรฆre applikationsafhรฆngige eller uafhรฆngige.
Eksempel: Lad os tage det samme eksempel for at forstรฅ sรธgeordsvisning. Det involverer 2 trin
Trin 1: Oprettelse af datatabel (forskellig fra testdatatabel oprettet i datadrevet rammevรฆrk). Denne datatabel indeholder handling, der skal udfรธres pรฅ GUI-objekter og tilsvarende argumenter, hvis nogen. Hver rรฆkke reprรฆsenterer et testtrin.
| Object | Handling | |
|---|---|---|
| (applikationskort) | (SรGEORD) | Argument |
| WinEdit (agentnavn) | sรฆt | Guru99 |
| WinEdit (adgangskode) | sรฆt | Mercury |
| Win-knap (OK) | Klik | |
| Window (Flyreservation) | Bekrรฆft | Eksisterer |
Trin 2: Skrivning Code i form af komponentfunktioner.
Nรฅr du har oprettet dine datatabeller, skriver du blot et program eller et sรฆt scripts, der lรฆser i hvert trin, udfรธrer trinnet baseret pรฅ nรธgleordet, der indeholdt handlingsfeltet, udfรธrer fejlkontrol og logger alle relevante oplysninger. Dette program eller sรฆt scripts ville ligne pseudokoden nedenfor:
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 er alt til Keyword Driven Framework.
Fordelen ved Keyword Driven Framework er, at sรธgeordene kan genbruges. For at forstรฅ dette skal du overveje, at du vil bekrรฆfte login-operationen for et websted, sig YAHOO MAIL. Bordet vil se sรฅdan ud -
| Object | Handling | |
|---|---|---|
| (APPLIKATIONSKORT) | (SรGEORD) | Argument |
| WebEdit (Brugernavn) | sรฆt | abc@yahoo.com |
| WebEdit (adgangskode) | sรฆt | xxxxx |
| WebButton (OK) | Klik | |
| vindue (Yahoo Mail) | Bekrรฆft | Belastninger |
Hvis du i dette tilfรฆlde observerer, at nรธgleordene Angiv, Klik og Bekrรฆft forbliver de samme, og for hvilke der allerede er udviklet tilsvarende komponentfunktioner. Alt du skal gรธre er at รฆndre applikationskortet.ping (Objektarkiv) fra tidligere flyreservation til Yahoo Mail , med en รฆndring i argumentvรฆrdier og det samme script vil fungere!
Fordele
- Giver hรธj kodegenanvendelighed
- Testvรฆrktรธj uafhรฆngig
- Uafhรฆngigt af applikation under test virker det samme script for AUT (med nogle begrรฆnsninger)
- Tests kan designes med eller uden AUT
Ulemper
- Da den oprindelige investering er ret hรธj, kan fordelene ved dette kun realiseres, hvis applikationen er betydeligt stor, og testscripts skal vedligeholdes i en del รฅr.
- Der krรฆves hรธj automatiseringsekspertise for at skabe det sรธgeordsdrevne rammevรฆrk.
BEMรRK : Selvom OpenText UFT En (tidligere Micro Focus UFT) reklamerer for at vรฆre et sรธgeordsdrevet framework, kan du ikke opnรฅ fuldstรฆndig uafhรฆngighed af testvรฆrktรธjer og applikationer ved at bruge det.
5) Hybrid Test Automation Framework
Som navnet antyder er denne ramme kombinationen af โโet eller flere automatiseringsrammer diskuteret ovenfor, der trรฆkker fra deres styrker og forsรธger at afbรธde deres svagheder. Den hybride test QA-automatiseringsramme er, hvad de fleste testautomatiseringsrammer udvikler sig til over tid og flere projekter. Maksimal industri bruger Keyword Framework i en kombination af funktionsnedbrydningsmetode.
PS: Andre Automation Frameworks, der er vรฆrd at nรฆvne, er
Test Modularity Framework
I denne ramme er en fรฆlles opgave i testscript grupperet sammen som moduler.
EksempelBrug af handlinger i QTP brug kan oprette modulรฆre scripts
Eksempel script til 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 of Script
Nu kan du kalde denne handling i hovedscriptet som fรธlger โ
RunAction ("Login[Argument]", oneIteration)
Business Process Testing (BPT)
Disse automatiseringsrammer opdeler store forretningsprocesser i komponenter, som kan genbruges flere gange i samme eller forskellige testscripts. For eksempel er forretningsprocessen ved at bestille en flyrejse opdelt i komponenter som Login, Finding af fly, Booking, Betaling og Logout, som kan genbruges i den samme forretningsproces eller forskellige processer. BPT letter ogsรฅ tรฆttere koordinering mellem SMV'er og automationsingeniรธrer.
Sรฅdan vรฆlger du det rigtige testautomatiseringsframework
Ingen enkelt type vinder hver gang. Det rigtige valg afhรฆnger af holdets fรฆrdigheder, applikationens stรธrrelse og hvor lรฆnge serien skal overleve. Tabellen nedenfor sammenligner de fem typer ud fra de faktorer, der bestemmer resultatet.
| Rammetype | Opsรฆtningsindsats | Code Genbruge | Vedligeholdelsesomkostninger | Bedst egnet til |
|---|---|---|---|---|
| Lineรฆr scripting | Meget lav | Meget lav | Meget hรธj | Demonstrationer og engangs rรธgtjek |
| Testbibliotek Architecture | Medium | Medium | Medium | Stabile applikationer med gentagne arbejdsgange |
| Datadrevet | Medium | Medium | Lav | Formularer og beregninger, der krรฆver mange inputsรฆt |
| Sรธgeordsdrevet | Hรธj | Meget hรธj | Lav | Store suiter vedligeholdt af blandede tekniske teams |
| Hybrid | Hรธj | Meget hรธj | Lav | Langvarige virksomhedsprogrammer |
Gennemgรฅ disse spรธrgsmรฅl, fรธr du forpligter dig:
- Hvor lรฆnge vil suiten leve? ร relang vedligeholdelse retfรฆrdiggรธr den hรธje initiale investering i et sรธgeordsdrevet eller hybridt design. Et kort projekt gรธr det ikke.
- Hvem skriver prรธverne? Hvis manuelle testere bidrager med cases, lader en nรธgleordstabel dem arbejde uden at lรฆre scriptsproget.
- Hvor ustabil er grรฆnsefladen? Hyppig skรฆrmskift gรธr et separat objektlager nรธdvendigt, ellers skal hvert script redigeres.
- Hvor meget datavariation er nรธdvendig? Mange inputkombinationer peger direkte pรฅ et datadrevet design.
- Hvilket vรฆrktรธj er allerede i brug? Rammen skal passe til det valgte automatiseringsvรฆrktรธj og et sprog teamet kender, sรฅsom Selenium med Java or Cucumber.
De fleste teams starter med en biblioteks- eller datadrevet tilgang og udvikler sig derefter mod en hybridmodel, efterhรฅnden som regression suiten udvides.
Fordele ved Test Automation Framework Architecture
Fรธlgende er fordelene ved Test automation framework arkitektur:
- En testautomatiseringsramme hjรฆlper med at reducere risikoen og omkostningerne
- Det forbedrer effektiviteten af โโtests
- Det hjรฆlper med at reducere vedligeholdelsesomkostningerne
- Tillader genbrug af kode
- Det giver mulighed for at opnรฅ maksimal testdรฆkning
- Det maksimerer applikationens funktionalitet
- Hjรฆlper med at reducere duplikering af testsager
- Det hjรฆlper med at forbedre testeffektiviteten og ydeevnen med testautomatisering
