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.

  • ๐Ÿ“ Kjernedefinisjon: Et rammeverk er et sett med retningslinjer, ikke regler, som gir gjenbruk, portabilitet og lavere vedlikeholdskostnader.
  • โบ๏ธ Lineรฆr skripting: Opptak og avspilling er det raskeste รฅ bygge og det vanskeligste รฅ vedlikeholde, fordi dataene forblir hardkodet.
  • ๐Ÿงฑ Testbibliotek Archilรฆre: Vanlige trinn blir gjenbrukbare funksjoner som kalles av et driverskript, noe som รธker gjenbruk pรฅ bekostning av planleggingstid.
  • ๐Ÿ“Š Data drevet: Testlogikk forblir i skript mens data flyttes til Excel, CSV eller en database, noe som muliggjรธr mange scenarier per skript.
  • ๐Ÿ”‘ Sรธkeorddrevet: Handlinger lagres som nรธkkelord i en tabell, noe som gjรธr tester uavhengige av bรฅde verktรธy og applikasjon.
  • ๐Ÿ”€ Hybrid modell: De fleste modne suiter kombinerer nรธkkelordtabeller med funksjonell dekomponering for รฅ balansere innsats og dekning.

Test Automation Framework ArchiTekstur og typer

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:

  1. Lineรฆr skripting
  2. Testbiblioteket Architecture Framework.
  3. Den datadrevne Testing Framework.
  4. Det sรธkeorddrevne eller tabelldrevne testrammeverket.
  5. 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:

  1. 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.
  2. Hvem skriver testene? Hvis manuelle testere bidrar med saker, lar en nรธkkelordtabell dem jobbe uten รฅ lรฆre skriptsprรฅket.
  3. Hvor volatilt er grensesnittet? Hyppig skjermbytte gjรธr et separat objektlager essensielt, ellers mรฅ hvert skript redigeres.
  4. Hvor mye datavariasjon er nรธdvendig? Mange inputkombinasjoner peker direkte mot et datadrevet design.
  5. 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

Spรธrsmรฅl og svar

Et verktรธy utfรธrer kommandoer mot et program. Et rammeverk er det omkringliggende settet med konvensjoner, mappestruktur og gjenbrukbare biblioteker som bestemmer hvordan disse kommandoene skrives, organiseres og vedlikeholdes.

Nei. Sideobjektmodellen er et designmรธnster for objektlagerlaget. Den brukes ofte i bibliotek-, datadrevne og hybride rammeverk i stedet for รฅ erstatte noen av dem.

AI legger til selvreparerende lokaliseringsverktรธy og visuell sammenligning i objektlagerlaget. Den lagdelte arkitekturen forblir den samme, men skript brytes sjeldnere nรฅr brukergrensesnittet endres litt.

Ja. AI-assistenter konverterer skrevne trinn til objekt-, handlings- og argumentrader. En gransker mรฅ fortsatt bekrefte at objektnavnene samsvarer med repositoriet, ellers mislykkes de genererte radene under kjรธring.

Track skriptvedlikeholdstimer per utgivelse, prosentandel av ustabile feil og tid fra bygging til resultat. Et sunt rammeverk viser fallende vedlikeholdsinnsats mens automatisert dekning fortsetter รฅ รธke.

Oppsummer dette innlegget med: