Rammeverk for testautomatisering: ArchiTekstur og typer
โก Smart oppsummering
Arkitekturen i Test Automation Framework definerer kodestandardene, hรฅndteringen av testdata og reglene for objektlageret som automatiseringsskript fรธlger. Det finnes fem etablerte typer, som hver handler om oppsettsinnsats mot gjenbruk, vedlikeholdskostnader og langsiktig skalerbarhet.

Hva er rammeverk i automatiseringstesting?
A Test Automation Framework er et sett med retningslinjer som kodingsstandarder, hรฅndtering av testdata, behandling av objektlager osv... som nรฅr de fรธlges under automatisering av skripting gir gunstige resultater som รธkt gjenbruk av kode, hรธyere portabilitet, reduserte skriptvedlikeholdskostnader osv. Dette er bare retningslinjer og ikke regler; de er ikke obligatoriske, og du kan fortsatt skripte uten รฅ fรธlge retningslinjene. Men du vil gรฅ glipp av fordelene ved รฅ ha et rammeverk.
Hvorfor trenger du et rammeverk?
La oss vurdere et eksempel for รฅ forstรฅ hvorfor du trenger et rammeverk.
Jeg er sikker pรฅ at du har deltatt pรฅ et seminar/foredrag/konferanse hvor deltakerne ble bedt om รฅ fรธlge fรธlgende retningslinjer โ
- Deltakere bรธr besette plassene sine 5 minutter fรธr starten av en forelesning.
- Ta med en notatbok og penn for รฅ ta notater.
- Les magemusklenetracsรฅ har du en idรฉ om hva presentasjonen vil handle om.
- Mobiltelefoner bรธr settes til stille.
- Bruk utgangsportene i motsatt ende av foredragsholderen hvis du trenger รฅ forlate det midt i forelesningen.
- Spรธrsmรฅl vil bli tatt pรฅ slutten av รธkten.
Tror du kan gjennomfรธre et seminar UTEN overholde disse retningslinjene?
Svaret er stort JA! Absolutt, du kan gjennomfรธre et seminar/foredrag/konferanse/demonstrasjon uten de ovennevnte retningslinjene.. faktisk vil noen av oss ikke fรธlge dem selv om det er lagt opp!
Men hvis retningslinjene fรธlges, vil det resultere i et gunstig resultat, som redusert publikumsforstyrrelsetracsjon under forelesninger, รธkt deltakerlojalitet og forstรฅelse av faget.
Basert pรฅ ovenstรฅende, a Rammeverk kan defineres som et sett med retningslinjer som, nรฅr de fรธlges, gir gunstige resultater.
Test Automation Framework ArchiTekstur: Nรธkkelkomponenter
Fรธr man sammenligner typene, er det nyttig รฅ se hva hvert rammeverk inneholder. ArchiTekstur beskriver hvordan disse delene er lagdelt, slik at en endring i ett lag ikke รธdelegger de andre.
- Testskriptlag: Holder testtilfellene. Skriptene forblir korte fordi de kaller gjenbrukbare funksjoner i stedet for รฅ gjenta navigasjonstrinn.
- Funksjonsbibliotek: Lagrer delte handlinger som pรฅlogging, sรธk og utlogging, slik at en endring i arbeidsflyten gjรธres รฉn gang.
- Objektarkiv: Tilordner brukervennlige navn til GUI-elementlokaliseringsverktรธy. Nรฅr grensesnittet endres, redigeres bare dette laget.
- Testdatalag: Beholder inndata og forventede verdier i Excel, CSV eller databasekilder i stedet for inne i koden.
- Konfigurasjonslag: Inneholder miljรธ URLs, nettleservalg, tidsavbrudd og pรฅloggingsinformasjon.
- Rapporteringslag: Produserer utfรธrelsesrapporter, skjermbilder av feil og diagnostiske logger.
- Utfรธrelseslag: Utlรธser pakker fra en byggeserver, og kobler automatisering til kontinuerlig integrering.
Rammeverkstypene nedenfor skiller seg hovedsakelig ut i hvor strengt de skiller disse lagene.
Typer testautomatiseringsrammer
Nedenfor er de forskjellige typene av automatiserte testrammer:
- Lineรฆr skripting
- Testbiblioteket Architecture Framework.
- Den datadrevne Testing Framework.
- Det sรธkeorddrevne eller tabelldrevne testrammeverket.
- Hybrid testautomatiseringsrammeverk.
La oss se pรฅ dem i detalj -
1) Lineรฆr skripting โ opptak og avspilling
Det er det enkleste av alle Testing Automation Frameworks og ogsรฅ kjent som "Ta opp og spille av". I denne Automatiseringstesting Framework, Tester registrerer manuelt hvert trinn (navigasjon og brukerinndata), setter inn sjekkpunkter (valideringstrinn) i fรธrste runde. Deretter spiller han det innspilte manuset i de pรฅfรธlgende rundene.
Eksempel: Vurder รฅ logge pรฅ Sรธknad om flyreservasjon og sjekke om applikasjonen har lastet inn ved vellykket pรฅlogging. Her vil testeren ganske enkelt registrere trinnene og legge til valideringstrinn.
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")
Fordeler
- Raskeste mรฅten รฅ generere et skript pรฅ
- Automatiseringskompetanse ikke nรธdvendig
- Den enkleste mรฅten รฅ lรฆre funksjonene til testverktรธyet
Ulemper
- Lite gjenbruk av manus
- Testdata er hardkodet inn i skriptet
- Vedlikeholdsmareritt
2) Testbiblioteket Architecture Framework
Det er ogsรฅ kjent som "Strukturert skripting" or "Funksjonell dekomponering".
I dette rammeverket for automatiseringstesting blir testskript fรธrst registrert av "Record & PlaybackโMetoden. Later, blir vanlige oppgaver inne i skriptene identifisert og gruppert i funksjoner. Disse funksjonene kalles av hovedtestskriptet Driver pรฅ ulike mรฅter for รฅ lage testcases.
Eksempel: Ved รฅ bruke samme eksempel som ovenfor, vil funksjonen for รฅ logge inn 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
Nรฅ vil du kalle denne funksjonen i hovedskriptet som fรธlger
Call Login() --------------------------- 'Other Function calls / Test Steps. ---------------------------
Fordeler
- Hรธyere nivรฅ av kodegjenbruk oppnรฅs i Structured Scripting sammenlignet med "Record & Playback"
- Automatiseringsskriptene er mindre kostbare รฅ utvikle pรฅ grunn av hรธyere gjenbruk av kode
- Enklere skriptvedlikehold
Ulemper
- Teknisk ekspertise er nรธdvendig for รฅ skrive skript ved hjelp av Test Library Framework
- Mer tid er nรธdvendig for รฅ planlegge og forberede testskript.
- Testdata er hardkodet i skriptene
3) Det datadrevne testrammeverket
I dette rammeverket, mens Testsak Logikken ligger i testskript, testdataene skilles og holdes utenfor testskriptene. Testdata leses fra de eksterne filene (Excel-filer, tekstfiler, CSV-filer, ODBC-kilder, DAO-objekter, ADO-objekter) og lastes inn i variablene i testskriptet. Variabler brukes bรฅde for inngangsverdier og for verifiseringsverdier. Selve testskriptene utarbeides enten ved hjelp av lineรฆr skripting eller Test Library Framework. Teknikken forklares videre i datadrevet testing opplรฆringen.
Eksempel: Utviklingping Skriptet for pรฅlogging av flyreservasjon som bruker denne metoden vil innebรฆre to trinn.
Trinn 1) Lag en test โ Datafil som kan vรฆre Excel, CSV eller en annen databasekilde.
| Agentnavn | Passord |
|---|---|
| Jimmy | Mercury |
| Tina | MERCURY |
| Bill | Merkur |
Trinn 2) Utvikle testskript og referanser til testdatakilden din.
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.
Fordeler
- Endringer i testskriptene pรฅvirker ikke testdataene
- Testtilfeller kan utfรธres med flere sett med data
- En rekke testscenarier kan utfรธres ved รฅ bare variere testdataene i den eksterne datafilen
Ulemper
- Mer tid er nรธdvendig for รฅ planlegge og forberede bรฅde testskript og testdata
4) Det sรธkeorddrevne eller tabelldrevne testrammeverket
Ocuco Sรธkeorddrevet eller utvikling av tabelldrevet automatiseringsrammeverk krever datatabeller og nรธkkelord, uavhengig av testautomatiseringsverktรธy brukes til รฅ henrette dem. Tester kan designes med eller uten applikasjonen. I en nรธkkelorddrevet test dokumenteres funksjonaliteten til applikasjonen-under-testen i en tabell samt i trinnvise instruksjoner for hver test.
Det er 3 grunnleggende komponenter i et nรธkkelorddrevet rammeverk, nemlig. Nรธkkelord , applikasjonskart , komponentfunksjon.
Nรธkkelord er en handling som kan utfรธres pรฅ en GUI-komponent. Eks. For GUI-komponenttekstboks vil noen nรธkkelord (handling) vรฆre InputText, VerifyValue, VerifyProperty og sรฅ videre.
Hva er applikasjonskartet?
Et applikasjonskart gir navngitte referanser for GUI-komponenter. Applikasjonskart er ingenting annet enn "Objektlager"
Hva er komponentfunksjon?
Komponentfunksjoner er de funksjonene som aktivt manipulerer eller avhรธrer GUI-komponenten. Et eksempel pรฅ en funksjon vil vรฆre klikk pรฅ web-knappen med all feilhรฅndtering, skriv inn data i en webredigering med all feilhรฅndtering. Komponentfunksjoner kan vรฆre applikasjonsavhengige eller uavhengige.
Eksempel: For รฅ forstรฅ sรธkeordvisning kan vi ta det samme eksempelet. Det innebรฆrer 2 trinn
Trinn 1: Opprette datatabell (forskjellig fra testdatatabell opprettet i datadrevet rammeverk). Denne datatabellen inneholder handling som skal utfรธres pรฅ GUI-objekter og tilsvarende argumenter hvis noen. Hver rad representerer ett testtrinn.
| Objekt | Handling | |
|---|---|---|
| (Sรธknadskart) | (SรKEORD) | Argument |
| WinEdit (agentnavn) | Sett | Guru99 |
| WinEdit (passord) | Sett | Mercury |
| Win Button (OK) | Klikk | |
| Vindu (flyreservasjon) | Bekreft | Eksisterer |
Trinn 2: Skrive Code i form av komponentfunksjoner.
Nรฅr du har opprettet datatabellen(e), skriver du ganske enkelt et program eller et sett med skript som leser i hvert trinn, utfรธrer trinnet basert pรฅ nรธkkelordet som inneholder handlingsfeltet, utfรธrer feilkontroll og logger all relevant informasjon. Dette programmet eller settet med skript vil 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 sรธkeorddrevet rammeverk.
Fordelen med sรธkeorddrevet rammeverk er at sรธkeordene kan gjenbrukes. For รฅ forstรฅ dette bรธr du vurdere at du รธnsker รฅ bekrefte pรฅloggingsoperasjonen for et nettsted, si YAHOO MAIL. Tabellen vil se slik ut -
| Objekt | Handling | |
|---|---|---|
| (SรKNAKKART) | (SรKEORD) | Argument |
| WebEdit (brukernavn) | Sett | abc@yahoo.com |
| WebEdit (passord) | Sett | xxxxx |
| WebButton (OK) | Klikk | |
| Vindu (Yahoo Mail) | Bekreft | Laster |
Hvis du i dette tilfellet observerer at nรธkkelordene Angitt, Klikk og Bekreft forblir de samme, og tilsvarende komponentfunksjoner er allerede utviklet for dem. Alt du trenger รฅ gjรธre er รฅ endre applikasjonskartet.ping (Objektarkiv) fra tidligere flyreservasjon til Yahoo Mail , med en endring i argumentverdier og det samme skriptet vil fungere!
Fordeler
- Gir hรธy kodegjenbrukbarhet
- Testverktรธy uavhengig
- Uavhengig av applikasjon under test, fungerer det samme skriptet for AUT (med noen begrensninger)
- Tester kan designes med eller uten AUT
Ulemper
- Startinvesteringen er ganske hรธy, og fordelene med dette kan bare realiseres hvis applikasjonen er betydelig stor og testskriptene skal vedlikeholdes i ganske mange รฅr.
- Hรธy automatiseringsekspertise kreves for รฅ lage nรธkkelorddrevet rammeverk.
MERK : Selv om OpenText UFT En (tidligere Micro Focus UFT) annonserer seg selv som et sรธkeorddrevet rammeverk, kan du ikke oppnรฅ fullstendig uavhengighet av testverktรธy og applikasjoner ved รฅ bruke det.
5) The Hybrid Test Automation Framework
Som navnet antyder er dette rammeverket kombinasjonen av ett eller flere automatiseringsrammer diskutert ovenfor som trekker fra sine styrker og prรธver รฅ dempe svakhetene deres. Det hybride test-QA-automasjonsrammeverket er det de fleste testautomatiseringsrammeverk utvikler seg til over tid og flere prosjekter. Maksimal industri bruker Keyword Framework i en kombinasjon av funksjonsdekomponeringsmetode.
PS: Andre automatiseringsrammer som er verdt รฅ nevne er
Test Modularity Framework
I dette rammeverket er en vanlig oppgave i testskript gruppert sammen som moduler.
EksempelBruk av handlinger i QTP bruk kan opprette modulรฆre skript
Eksempelskript for pรฅlogging
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
Nรฅ kan du kalle denne handlingen i hovedskriptet som fรธlger โ
RunAction ("Login[Argument]", oneIteration)
Business Process Testing (BPT)
Disse automatiseringsrammene deler opp store forretningsprosesser i komponenter som kan gjenbrukes flere ganger i samme eller forskjellige testskript. For eksempel er forretningsprosessen for รฅ bestille en flyreise delt inn i komponenter som pรฅlogging , finne flyreiser , bestilling , betaling og utlogging som kan gjenbrukes i samme forretningsprosess eller forskjellige prosesser. BPT legger ogsรฅ til rette for tettere koordinering mellom SMB-er og automatiseringsingeniรธrer.
Hvordan velge riktig rammeverk for testautomatisering
Ingen enkelt type vinner hver gang. Det riktige valget avhenger av lagets ferdigheter, applikasjonsstรธrrelsen og hvor lenge serien mรฅ overleve. Tabellen nedenfor sammenligner de fem typene basert pรฅ faktorene som avgjรธr utfallet.
| Rammetype | Oppsett innsats | Code gjenbruk | Vedlikeholdskostnader | Passer best |
|---|---|---|---|---|
| Lineรฆr skripting | Veldig lav | Veldig lav | Veldig hรธy | Demonstrasjoner og engangs rรธyksjekk |
| Testbibliotek Architecture | Medium | Medium | Medium | Stabile applikasjoner med gjentatte arbeidsflyter |
| Data drevet | Medium | Medium | Lav | Skjemaer og beregninger som krever mange inputsett |
| Sรธkeorddrevet | Hรธyt | Veldig hรธy | Lav | Store suiter vedlikeholdes av blandede tekniske team |
| Hybrid | Hรธyt | Veldig hรธy | Lav | Langvarige bedriftsprogrammer |
Gรฅ gjennom disse spรธrsmรฅlene fรธr du bestemmer deg:
- Hvor lenge vil suiten leve? ร relang vedlikehold rettferdiggjรธr den hรธye initiale investeringen i et sรธkeorddrevet eller hybrid design. Et kort prosjekt gjรธr ikke det.
- Hvem skriver testene? Hvis manuelle testere bidrar med saker, lar en nรธkkelordtabell dem jobbe uten รฅ lรฆre skriptsprรฅket.
- Hvor volatilt er grensesnittet? Hyppig skjermbytte gjรธr et separat objektlager essensielt, ellers mรฅ hvert skript redigeres.
- Hvor mye datavariasjon er nรธdvendig? Mange inputkombinasjoner peker direkte mot et datadrevet design.
- Hvilket verktรธy er allerede i bruk? Rammeverket mรฅ passe til det valgte automatiseringsverktรธy og et sprรฅk teamet kan, for eksempel Selenium med Java or Cucumber.
De fleste team starter med en bibliotek- eller datadrevet tilnรฆrming, og vokser deretter mot en hybridmodell etter hvert som regresjon suiten utvides.
Fordeler med Test Automation Framework Architecture
Fรธlgende er fordelene med Test automatiseringsrammearkitektur:
- Et rammeverk for testautomatisering bidrar til รฅ redusere risiko og kostnadsutgifter
- Det forbedrer effektiviteten av tester
- Det bidrar til รฅ redusere vedlikeholdskostnadene
- Tillater gjenbruk av kode
- Det gjรธr det mulig รฅ oppnรฅ maksimal testdekning
- Det maksimerer applikasjonsfunksjonaliteten
- Bidrar til รฅ redusere duplisering av testtilfeller
- Det bidrar til รฅ forbedre testeffektiviteten og ytelsen med testautomatisering
