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.

  • ๐Ÿ“ Kernedefinition: Et framework er et sรฆt retningslinjer, ikke regler, der skaber genbrug, bรฆrbarhed og lavere vedligeholdelsesomkostninger.
  • โบ๏ธ Lineรฆr scripting: Optagelse og afspilning er den hurtigste metode at opbygge og den svรฆreste at vedligeholde, fordi data forbliver hardcodet.
  • ๐Ÿงฑ Testbibliotek Archilรฆre: Almindelige trin bliver genbrugelige funktioner, der kaldes af et driverscript, hvilket รธger genbrug pรฅ bekostning af planlรฆgningstiden.
  • ๐Ÿ“Š Datadrevet: Testlogik forbliver i scripts, mens data flyttes til Excel, CSV eller en database, hvilket muliggรธr mange scenarier pr. script.
  • ๐Ÿ”‘ Sรธgeordsdrevet: Handlinger gemmes som nรธgleord i en tabel, hvilket gรธr tests uafhรฆngige af bรฅde vรฆrktรธj og applikation.
  • ๐Ÿ”€ Hybrid model: De fleste modne suiter kombinerer sรธgeordstabeller med funktionel nedbrydning for at balancere indsats og dรฆkning.

Test Automation Framework ArchiTekstur og typer

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:

  1. Lineรฆr scripting
  2. Testbiblioteket Architecture Framework.
  3. Den datadrevne Test Ramme.
  4. Det sรธgeordsdrevne eller tabeldrevne testframework.
  5. 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:

  1. 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.
  2. Hvem skriver prรธverne? Hvis manuelle testere bidrager med cases, lader en nรธgleordstabel dem arbejde uden at lรฆre scriptsproget.
  3. Hvor ustabil er grรฆnsefladen? Hyppig skรฆrmskift gรธr et separat objektlager nรธdvendigt, ellers skal hvert script redigeres.
  4. Hvor meget datavariation er nรธdvendig? Mange inputkombinationer peger direkte pรฅ et datadrevet design.
  5. 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

Ofte Stillede Spรธrgsmรฅl

Et vรฆrktรธj udfรธrer kommandoer mod et program. Et framework er det omgivende sรฆt af konventioner, mappestrukturer og genanvendelige biblioteker, der bestemmer, hvordan disse kommandoer skrives, organiseres og vedligeholdes.

Nej. Sideobjektmodellen er et designmรธnster for objektlagerlaget. Den bruges almindeligvis i biblioteks-, datadrevne og hybride frameworks i stedet for at erstatte nogen af โ€‹โ€‹dem.

AI tilfรธjer selvreparerende lokaliseringsvรฆrktรธjer og visuel sammenligning til objektlagerlaget. Den lagdelte arkitektur forbliver den samme, men scripts bryder sjรฆldnere, nรฅr brugergrรฆnsefladen รฆndres en smule.

Ja. AI-assistenter konverterer skrevne trin til rรฆkker af objekter, handlinger og argumenter. En korrekturlรฆser skal stadig bekrรฆfte, at objektnavnene matcher arkivet, ellers fejler de genererede rรฆkker under kรธrsel.

Track scriptvedligeholdelsestimer pr. udgivelse, procentdel af ustabile fejl og tid fra build til resultat. Et sundt framework viser faldende vedligeholdelsesindsats, mens automatiseret dรฆkning fortsรฆtter med at stige.

Opsummer dette indlรฆg med: