Testi automatiseerimise raamistik: ArchiTekstuur ja tüübid

⚡ Nutikas kokkuvõte

Testi automatiseerimise raamistiku arhitektuur määratleb kodeerimisstandardid, testiandmete käitlemise ja objektide hoidla reeglid, mida automatiseerimisskriptid järgivad. On olemas viis väljakujunenud tüüpi, millest igaüks vahetab seadistuspingutuse taaskasutamise, hoolduskulude ja pikaajalise skaleeritavuse vastu.

  • 📐 Põhidefinitsioon: Raamistik on suuniste, mitte reeglite kogum, mis tagab taaskasutamise, teisaldatavuse ja madalamad hoolduskulud.
  • ⏺️ Lineaarne skriptimine: Salvestamine ja taasesitus on kõige kiirem ja kõige raskem hallata, sest andmed jäävad kõvakodeerituks.
  • 🧱 Testi raamatukogu ArchiStruktuur: Tavalistest sammudest saavad draiveri skripti poolt kutsutavad korduvkasutatavad funktsioonid, mis suurendab korduvkasutust planeerimisaja arvelt.
  • 📊 Andmepõhine: Testiloogika jääb skriptidesse, samal ajal kui andmed liiguvad Excelisse, CSV-faili või andmebaasi, võimaldades skripti kohta palju erinevaid stsenaariume.
  • 🔑 Märksõnapõhine: Toimingud salvestatakse märksõnadena tabelisse, muutes testid nii tööriistast kui ka rakendusest sõltumatuks.
  • 🔀 Hübriidmudel: Enamik küpsemaid tarkvarapakette ühendab märksõnatabelid funktsionaalse dekompositsiooniga, et tasakaalustada pingutust ja ulatust.

Testi automatiseerimise raamistikku ArchiTekstuur ja tüübid

Mis on automatiseerimise testimise raamistik?

A Testi automatiseerimise raamistikku on juhiste kogum, nagu kodeerimisstandardid, testandmete töötlemine, objektihoidla töötlemine jne, mida automatiseerimisel skriptimisel järgides saavutatakse kasulikke tulemusi, nagu suurem koodi korduskasutus, suurem kaasaskantavus, väiksemad skripti hoolduskulud jne. Need on vaid juhised ja mitte. reeglid; need ei ole kohustuslikud ja saate siiski skriptida ilma juhiseid järgimata. Kuid jääte kasutamata raamistiku eelistest.

Miks vajate raamistikku?

Vaatleme näidet, et mõista, miks teil raamistikku vaja on.

Olen kindel, et olete osalenud seminaril/loengul/konverentsil, kus osalejatel paluti järgida järgmisi juhiseid:

  • Osalejad peavad oma kohad hõivama 5 minutit enne loengu algust.
  • Märkmete tegemiseks võtke kaasa märkmik ja pliiats.
  • Loe kõhulihaseidtract, nii et sul on ettekujutus, millest esitlus räägib.
  • Mobiiltelefonid tuleks häälestada.
  • Kui soovite keset loengut lahkuda, kasutage kõneleja vastaspoolses otsas olevaid väljapääsuväravaid.
  • Seansi lõpus esitatakse küsimused.

Kas arvate, et saate seminari läbi viia? ILMA nende juhiste järgimine?

Vastus on suur JAH! Kindlasti saab seminari/loengu/konverentsi/demonstratsiooni läbi viia ka ilma ülaltoodud juhisteta... tegelikult ei järgi mõned meist neid, kuigi need on paika pandud!

Kuid kui juhiseid järgitakse, toob see kaasa kasuliku tulemuse, näiteks publiku hajumise vähenemise.tracloengute ajal, suurendas osalejate püsivust ja teema mõistmist.

Eeltoodust lähtuvalt a Raamistiku võib määratleda kui juhiste kogumit, mille järgimine annab kasulikke tulemusi.

Testi automatiseerimise raamistikku Archistruktuur: põhikomponendid

Enne tüüpide võrdlemist on kasulik näha, mida iga raamistik sisaldab. ArchiStruktuur kirjeldab, kuidas need osad kihiti paiknevad nii, et ühe kihi muutus ei lõhu teisi.

  • Testi skripti kiht: Hoiab testjuhtumeid. Skriptid jäävad lühikeseks, kuna need kutsuvad navigeerimisetappe kordamise asemel välja korduvkasutatavaid funktsioone.
  • Funktsioonide teek: Salvestab jagatud toimingud, näiteks sisselogimise, otsingu ja väljalogimise, nii et töövoo muudatus tehakse üks kord.
  • Objektihoidla: Seob kasutajasõbralikud nimed GUI elementide lokaatoritega. Liidese muutumisel muudetakse ainult seda kihti.
  • Testi andmekiht: Hoiab sisendi ja eeldatavad väärtused Exceli, CSV- või andmebaasiallikates, mitte koodis.
  • Konfiguratsioonikiht: Sisaldab keskkonda URLs, brauseri valikud, ajalõpud ja volikirjad.
  • Aruandluskiht: Koostab teostusaruandeid, tõrke ekraanipilte ja diagnostikalogisid.
  • Täitmiskiht: Käivitab komplektid ehitusserverist, sidudes automatiseerimise pidev integratsioon.

Allpool olevad raamistikutüübid erinevad peamiselt selle poolest, kui rangelt nad neid kihte eraldavad.

Testimise automatiseerimise raamistike tüübid

Allpool on eri tüüpi automatiseeritud testimise raamistikud.

  1. Lineaarne skriptimine
  2. Testikogu Architecture Framework.
  3. Andmepõhine Testimine Raamistik.
  4. Märksõnapõhine või tabelipõhine testimise raamistik.
  5. Hübriidne testimise automatiseerimise raamistik.

Vaatame neid üksikasjalikult -

1) Lineaarne skriptimine – salvestamine ja taasesitus

See on testimise automatiseerimise raamistikest lihtsaim ja tuntud ka kui "Salvestamine ja taasesitus". Selle Automatiseerimise testimine Framework, Tester salvestab käsitsi iga sammu (navigeerimine ja kasutaja sisendid), lisab kontrollpunktid (valideerimisetapid) esimeses voorus. Seejärel esitab ta salvestatud stsenaariumi järgmistes voorudes.

Näide: Kaaluge sisselogimist Lennu broneerimise taotlus ja kontrollige, kas rakendus on edukal sisselogimisel laaditud. Siin salvestab testija lihtsalt sammud ja lisab valideerimisetapid.

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")

Eelised

  • Kiireim viis skripti loomiseks
  • Automatiseerimisalased teadmised pole vajalikud
  • Lihtsaim viis testimistööriista funktsioonide õppimiseks

Puudused

  • Vähene skriptide taaskasutus
  • Testi andmed on skripti sisse kodeeritud
  • Hooldus õudusunenägu

2) Test Library Architecture Framework

Seda tuntakse ka kui "Struktureeritud skriptimine" or "Funktsionaalne lagunemine".

Selles automatiseerimise testimise raamistikus salvestab testskriptid algselt "Salvestamine ja taasesitus”Meetod. Later, tuvastatakse skriptides levinud ülesanded ja rühmitatakse need funktsioonideks. Neid funktsioone kutsub esile kutsutud peamine testskript juht erinevatel viisidel testjuhtumite loomiseks.

Näide: Kasutades ülaltoodud näidet, näeb lennubroneeringusse sisselogimise funktsioon välja selline .

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üüd kutsute seda funktsiooni põhiskriptis järgmiselt

Call Login()
---------------------------
'Other Function calls / Test Steps.
---------------------------

Eelised

  • Struktureeritud skriptimise puhul saavutatakse kõrgem koodi taaskasutamise tase võrreldes funktsiooniga "Salvestamine ja taasesitus"
  • Automatiseerimisskriptide arendamine on koodi suurema taaskasutuse tõttu odavam
  • Lihtsam skripti hooldus

Puudused

  • Skriptide kirjutamiseks Test Library Frameworki abil on vaja tehnilisi teadmisi
  • Testskriptide planeerimiseks ja ettevalmistamiseks on vaja rohkem aega.
  • Testi andmed on skriptides kõvasti kodeeritud

3) Andmepõhise testimise raamistik

Selles raamistikus, samas Testjuhtum Kui loogika asub testiskriptides, eraldatakse testiandmed ja hoitakse neid väljaspool. Testiandmeid loetakse välistest failidest (Exceli failid, tekstifailid, CSV-failid, ODBC allikad, DAO objektid, ADO objektid) ja laaditakse testiskripti muutujatesse. Muutujaid kasutatakse nii sisendväärtuste kui ka verifitseerimisväärtuste jaoks. Testiskriptid ise valmistatakse ette kas lineaarse skriptimise või testiteegi raamistiku abil. Tehnikat selgitatakse lähemalt andmepõhine testimine juhendaja.

Näide: Developing Selle meetodi abil lennubroneeringu sisselogimisskript hõlmab kahte sammu.

Step 1) Looge test – andmefail, mis võib olla Excel , CSV või mõni muu andmebaasi allikas.

Agendi nimi Parool
Jimmy Mercury
Tina ELAVHÕBE
Bill Merkuur

Step 2) Töötage välja testskript ja viige oma testandmete allikale.

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.

Eelised

  • Testskriptide muudatused ei mõjuta testandmeid
  • Testjuhtumeid saab teostada mitme andmekogumiga
  • Erinevaid teststsenaariume saab käivitada, muutes lihtsalt välises andmefailis olevaid testandmeid

Puudused

  • Nii testskriptide kui ka testandmete kavandamiseks ja ettevalmistamiseks on vaja rohkem aega

4) Märksõnapõhine või tabelipõhine testimise raamistik

. Märksõnapõhine või tabelipõhise automatiseerimisraamistiku arendamiseks on vaja andmetabeleid ja märksõnu, sõltumatu testimise automatiseerimise tööriist kasutatakse nende teostamiseks. Teste saab koostada koos rakendusega või ilma. Märksõnapõhises testis dokumenteeritakse testitava rakenduse funktsionaalsus tabelis ja iga testi jaoks samm-sammult juhistes.

Märksõnapõhisel raamistikul on kolm põhikomponenti, nimelt. Märksõna , rakenduste kaart , komponendi funktsioon.

Märksõna on toiming, mida saab teha GUI komponendiga. Nt. GUI komponendi tekstikasti puhul oleksid mõned märksõnad (tegevus) InputText, VerifyValue, VerifyProperty ja nii edasi.

Mis on rakenduskaart?

Rakenduse kaart sisaldab GUI komponentide nimelisi viiteid. Rakenduste kaardid pole midagi muud kui "Objektide hoidla"

Mis on komponendi funktsioon?

Komponendi funktsioonid on need funktsioonid, mis GUI komponenti aktiivselt manipuleerivad või küsitlevad. Funktsiooni näide oleks klõpsa veebinupul koos kogu veakäsitlusega , sisestage andmed veebiredigeerimisse koos kõigi vigade käsitlemisega. Komponentide funktsioonid võivad olla rakendusest sõltuvad või sõltumatud.

Näide: Märksõnavaate mõistmiseks võtame sama näite. See hõlmab 2 sammu

Samm 1: Andmetabeli loomine (erineb andmepõhises raamistikus loodud testandmete tabelist). See andmetabel sisaldab GUI objektidega tehtavaid toiminguid ja vastavaid argumente, kui neid on. Iga rida tähistab ühte testietappi.

objekt tegevus
(Rakenduse MAP) (MÄRKSÕNAD) Argument
WinEdit (agendi nimi) komplekt Guru99
WinEdit (parool) komplekt Mercury
WinButton (OK) Click
Aken (lennu broneerimine) Kontrollima Olemas

Samm 2: Kirjutamine Code komponentfunktsioonide kujul.

Kui olete oma andmetabeli(d) loonud, kirjutage lihtsalt programm või skriptide komplekt, mis loeb iga sammu, käivitab sammu väljal Action sisalduva märksõna alusel, teostab veakontrolli ja logib kogu asjakohase teabe. See programm või skriptide komplekt näeks välja sarnane alloleva pseudokoodiga:

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

See on märksõnapõhise raamistiku jaoks kõik.

Märksõnapõhise raamistiku eeliseks on see, et märksõnad on taaskasutatavad. Selle mõistmiseks kaaluge, kas soovite veebisaidile sisselogimistoiminguid kontrollida, öelge YAHOO MAIL. Tabel näeb välja selline -

objekt tegevus
(RAKENDUSKAART) (MÄRKSÕNA) Argument
WebEdit (kasutajanimi) komplekt abc@yahoo.com
WebEdit (parool) komplekt xxxxx
WebButton (OK) Click
Aken (Yahoo Mail) Kontrollima Saadetised

Kui märkate, et antud juhul jäävad märksõnad „Set“, „Click“ ja „Verify“ samaks, mille jaoks on juba loodud vastavad komponentide funktsioonid. Teil on vaja vaid muuta rakenduse kaarti.ping (Objektide hoidla) varasemast lennubroneeringust Yahoo'sse Mail , argumendi väärtuste muutmisega ja sama skript töötab!

Eelised

  • Pakub koodi kõrget taaskasutatavust
  • Testtööriist Sõltumatu
  • Sõltumata testitavast rakendusest töötab sama skript AUT-i jaoks (mõningate piirangutega)
  • Teste saab koostada AUT-ga või ilma

Puudused

  • Kuna esialgne investeering on üsna suur, saab sellest kasu realiseerida ainult siis, kui rakendus on märkimisväärselt suur ja testskripte tuleb säilitada päris mitu aastat.
  • Märksõnapõhise raamistiku loomiseks on vaja kõrgeid automatiseerimise oskusi.

NOTE: Kuigi OpenText UFT Üks (endine Micro Focus UFT) reklaamib end märksõnapõhise raamistikuna, ei saa selle abil saavutada täielikku testimisvahendi ja rakenduse sõltumatust.

5) Hübriidtesti automatiseerimise raamistik

Nagu nimigi viitab, on see raamistik kombinatsioon ühest või mitmest eespool käsitletud automatiseerimisraamistikust, mis lähtub nende tugevustest ja püüab leevendada nende nõrkusi. Hübriidtesti kvaliteedi tagamise automatiseerimisraamistik on see, milleks enamik testimise automatiseerimise raamistikke areneb aja jooksul ja mitme projekti käigus. Maksimaalne tööstus kasutab märksõnade raamistikku funktsioonide lagunemise meetodi kombinatsioonis.

PS: Muud mainimist väärivad automatiseerimisraamistikud

Modulaarsuse raamistiku testimine

Selles raamistikus on testskripti ühised ülesanded rühmitatud mooduliteks.

NäideToimingute kasutamine QTP kasutamine saab luua modulaarseid skripte

Sisselogimise näidisskript

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üüd saate seda toimingut põhiskriptis nimetada järgmiselt -

RunAction ("Login[Argument]", oneIteration)

Äriprotsesside testimine (BPT)

Need automatiseerimisraamistikud jagavad suured äriprotsessid komponentideks, mida saab samades või erinevates testskriptides mitu korda uuesti kasutada. Näiteks lennu broneerimise äriprotsess on jagatud sellisteks komponentideks nagu sisselogimine , lendude otsimine , broneerimine , maksmine ja väljalogimine , mida saab uuesti kasutada samas äriprotsessis või erinevates protsessides. Samuti hõlbustab BPT VKEde ja automaatikainseneride vahelist tihedamat koordineerimist.

Kuidas valida õige testimisautomaatika raamistik

Ükski tüüp ei võida alati. Õige valik sõltub meeskonna oskustest, rakenduse suurusest ja sellest, kui kaua pakett peab vastu pidama. Allolev tabel võrdleb viit tüüpi tulemust määravate tegurite põhjal.

Raamistiku tüüp Seadistuspingutus Code Taaskasutamine Hoolduskulud Sobib kõige paremini
Lineaarne skriptimine Väga madal Väga madal Väga kõrge Demonstratsioonid ja ühekordne suitsukontroll
Testi raamatukogu Architektuur Keskmine Keskmine Keskmine Stabiilsed rakendused korduvate töövoogudega
Andmetöötlus Keskmine Keskmine Madal Paljud sisendkomplektid vajavad vormid ja arvutused
Märksõnapõhine Kõrge Väga kõrge Madal Suured sviidid, mida haldavad segatehnilised meeskonnad
hübriid Kõrge Väga kõrge Madal Pikaajalised ettevõtteprogrammid

Enne pühendumist töötage läbi need küsimused:

  1. Kui kaua sviit veel vastu peab? Märksõnapõhise või hübriiddisaini puhul on aastatepikkune hooldus õigustanud suurt alginvesteeringut. Lühike projekt seda aga ei tee.
  2. Kes kirjutab teste? Kui manuaalsed testijad panustavad juhtumeid, võimaldab märksõnade tabel neil töötada ilma skriptimiskeelt õppimata.
  3. Kui volatiilne on liides? Sagedane ekraanivahetus muudab eraldi objektide hoidla hädavajalikuks, vastasel juhul vajab iga skript redigeerimist.
  4. Kui palju andmete variatsiooni on vaja? Paljud sisendkombinatsioonid viitavad otse andmepõhisele disainile.
  5. Milline tööriist on juba kasutusel? Raamistik peab sobima valitud objektiga automaatika tööriist ja keel, mida meeskond oskab, näiteks Selenium koos Java or Cucumber.

Enamik meeskondi alustab raamatukogu- või andmepõhise lähenemisviisiga ja areneb seejärel hübriidmudeli suunas, kui regressioon sviit laieneb.

Testi automatiseerimise raamistiku eelised Architektuur

Testi automatiseerimise raamistiku arhitektuuri eelised on järgmised:

  • Testide automatiseerimise raamistik aitab vähendada riske ja kulusid
  • See parandab testide tõhusust
  • See aitab vähendada hoolduskulusid
  • Võimaldab koodi taaskasutada
  • See võimaldab saavutada maksimaalse testi katvuse
  • See maksimeerib rakenduse funktsionaalsust
  • Aitab vähendada testjuhtumite dubleerimist
  • See aitab testimise automatiseerimisega parandada testi tõhusust ja jõudlust

KKK

Tööriist käivitab rakendusele käske. Raamistik on ümbritsev konventsioonide, kaustastruktuuri ja korduvkasutatavate teekide kogum, mis määrab, kuidas neid käske kirjutatakse, korraldatakse ja hallatakse.

Ei. Lehe objektimudel on objektihoidla kihi kujundusmuster. Seda kasutatakse tavaliselt teekide, andmepõhiste ja hübriidraamistike sees, selle asemel et ühtegi neist asendada.

Tehisintellekt lisab objektide hoidla kihile isetervenevad lokaatorid ja visuaalse võrdluse. Kihiline arhitektuur jääb samaks, kuid skriptid ei tööta kasutajaliidese väikeste muudatuste korral harvemini.

Jah. Tehisintellekti assistendid teisendavad kirjalikud sammud objekti-, toimingu- ja argumendiridadeks. Ülevaataja peab ikkagi kinnitama, et objektide nimed vastavad repositooriumile, vastasel juhul genereeritud read käitusajal ebaõnnestuvad.

Trac000 skripti hooldustundi väljalaske kohta, ebastabiilsete tõrgete protsent ja aeg loomisest tulemuse saavutamiseni. Tervislik raamistik näitab vähenevat hoolduskoormust, samas kui automatiseeritud hoolduse ulatus pidevalt suureneb.

Võta see postitus kokku järgmiselt: