Okvir za automatizaciju testiranja: Architekstura i vrste

โšก Pametni saลพetak

Arhitektura okvira za automatizaciju testiranja definira standarde kodiranja, rukovanje testnim podacima i pravila repozitorija objekata kojih se pridrลพavaju skripte za automatizaciju. Postoji pet utvrฤ‘enih tipova, a svaki od njih trguje naporom postavljanja u odnosu na ponovnu upotrebu, troลกkove odrลพavanja i dugoroฤnu skalabilnost.

  • ๐Ÿ“ Osnovna definicija: Okvir je skup smjernica, a ne pravila, koji omoguฤ‡uju ponovnu upotrebu, prenosivost i niลพe troลกkove odrลพavanja.
  • โบ๏ธ Linearno skriptiranje: Snimanje i reprodukcija su najbrลพi za izgradnju, a najteลพi za odrลพavanje, jer podaci ostaju fiksno kodirani.
  • ๐Ÿงฑ Knjiลพnica testova Architekstura: Uobiฤajeni koraci postaju funkcije za viลกekratnu upotrebu koje poziva skripta upravljaฤkog programa, ลกto poveฤ‡ava ponovnu upotrebu nauลกtrb vremena planiranja.
  • ๐Ÿ“Š Upravljano podacima: Logika testiranja ostaje u skriptama dok se podaci premjeลกtaju u Excel, CSV ili bazu podataka, ลกto omoguฤ‡uje viลกe scenarija po skripti.
  • ๐Ÿ”‘ Voฤ‘eno kljuฤnim rijeฤima: Akcije se pohranjuju kao kljuฤne rijeฤi u tablici, ลกto testove ฤini neovisnima i o alatu i o aplikaciji.
  • ๐Ÿ”€ Hibridni model: Veฤ‡ina zrelijih paketa kombinira tablice kljuฤnih rijeฤi s funkcionalnom dekompozicijom kako bi uravnoteลพili trud i pokrivenost.

Test Automation Framework Architekstura i vrste

ล to je Framework u automatiziranom testiranju?

A Test Automation Framework je skup smjernica kao ลกto su standardi kodiranja, rukovanje testnim podacima, tretman repozitorija objekata itd. koji kada se slijede tijekom automatizacije skriptiranja proizvode korisne rezultate kao ลกto su poveฤ‡ana ponovna upotreba koda, veฤ‡a prenosivost, smanjeni troลกkovi odrลพavanja skripte itd. Ovo su samo smjernice, a ne pravila; oni nisu obvezni i joลก uvijek moลพete pisati skriptu bez pridrลพavanja smjernica. Ali propustit ฤ‡ete prednosti posjedovanja Frameworka.

Zaลกto vam je potreban Framework?

Razmotrimo primjer da bismo razumjeli zaลกto vam je potreban Framework.

Siguran sam da ste prisustvovali seminaru/predavanju/konferenciji gdje su sudionici bili zamoljeni da se pridrลพavaju sljedeฤ‡ih smjernica โ€“

  • Sudionici trebaju zauzeti svoja mjesta 5 minuta prije poฤetka predavanja.
  • Ponesite sa sobom biljeลพnicu i olovku za biljeลพenje.
  • Proฤitajte trbuลกne miลกiฤ‡etract, tako da imate ideju o ฤemu ฤ‡e biti prezentacija.
  • Mobilni telefoni trebaju biti postavljeni na neฤujno.
  • Koristite izlazna vrata na suprotnom kraju od govornika ako ลพelite otiฤ‡i usred predavanja.
  • Pitanja ฤ‡e se postavljati na kraju sesije.

Mislite li da moลพete voditi seminar BEZ pridrลพavajuฤ‡i se ovih smjernica?

Odgovor je velik DA! Svakako, moลพete voditi seminar/predavanje/konferenciju/demonstraciju bez gornjih smjernica.. zapravo, neki od nas ih neฤ‡e slijediti iako su postavljene!

Ali ako se slijede smjernice, to ฤ‡e rezultirati korisnim ishodom poput smanjene nelagode kod publike.tracacija tijekom predavanja, poveฤ‡ano zadrลพavanje sudionika i razumijevanje teme.

Na temelju navedenog, a Okvir se moลพe definirati kao skup smjernica koje, kada se slijede, daju korisne rezultate.

Test Automation Framework ArchiTektura: Kljuฤne komponente

Prije usporedbe tipova, korisno je vidjeti ลกto svaki okvir sadrลพi. ArchiTektura opisuje kako su ti dijelovi slojevito sloลพeni tako da promjena u jednom sloju ne naruลกava ostale.

  • Sloj testnog skripta: Sadrลพi testne sluฤajeve. Skripte ostaju kratke jer pozivaju funkcije za viลกekratnu upotrebu umjesto ponavljanja koraka navigacije.
  • Biblioteka funkcija: Pohranjuje dijeljene radnje kao ลกto su prijava, pretraลพivanje i odjava, tako da se promjena tijeka rada vrลกi jednom.
  • Spremiลกte objekata: Mapira prijateljska imena na lokatore elemenata grafiฤkog korisniฤkog suฤelja. Kada se suฤelje promijeni, ureฤ‘uje se samo ovaj sloj.
  • Testni sloj podataka: ฤŒuva ulazne i oฤekivane vrijednosti u Excelu, CSV-u ili izvorima baze podataka, a ne unutar koda.
  • Konfiguracijski sloj: Sadrลพi okruลพenje URLs, odabiri preglednika, vremenska ograniฤenja i vjerodajnice.
  • Izvjeลกtajni sloj: Izraฤ‘uje izvjeลกฤ‡a o izvrลกenju, snimke zaslona o greลกkama i dijagnostiฤke zapisnike.
  • Izvrลกni sloj: Pokreฤ‡e pakete s posluลพitelja za izgradnju, povezujuฤ‡i automatizaciju s kontinuirana integracija.

Tipovi okvira u nastavku razlikuju se uglavnom po tome koliko strogo odvajaju ove slojeve.

Vrste okvira za automatizaciju testiranja

Ispod su razliฤite vrste okvira za automatsko testiranje:

  1. Linearno skriptiranje
  2. Testna knjiลพnica Architekturni okvir.
  3. Podaci-voฤ‘eni Ispitivanje Okvir.
  4. Okvir za testiranje voฤ‘eno kljuฤnim rijeฤima ili tablicama.
  5. Okvir za hibridnu automatizaciju testiranja.

Pogledajmo ih detaljnije โ€“

1) Linearno skriptiranje โ€“ snimanje i reprodukcija

To je najjednostavniji od svih okvira za automatizaciju testiranja i takoฤ‘er poznat kao โ€œSnimanje i reprodukcijaโ€. U ovom Testiranje automatizacije Framework, Tester ruฤno biljeลพi svaki korak (navigacija i korisniฤki unos), ubacuje kontrolne toฤke (koraci provjere) u prvom krugu. Zatim , Reproducira snimljeni scenarij u sljedeฤ‡im rundama.

Primjer: Razmislite o prijavi Aplikacija za rezervaciju leta i provjera je li se aplikacija uฤitala nakon uspjeลกne prijave. Ovdje ฤ‡e tester jednostavno zabiljeลพiti korake i dodati korake provjere valjanosti.

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

Prednosti

  • Najbrลพi naฤin za generiranje skripte
  • Struฤnost automatizacije nije potrebna
  • Najlakลกi naฤin da nauฤite znaฤajke alata za testiranje

Nedostaci

  • Mala ponovna upotreba skripti
  • Testni podaci su ukodirani u skriptu
  • Noฤ‡na mora odrลพavanja

2) Knjiลพnica testova Architekturni okvir

Takoฤ‘er je poznat kao "Strukturirano skriptiranje" or โ€œFunkcionalna dekompozicijaโ€.

U ovom okviru za automatizirano testiranje, testne skripte inicijalno biljeลพi "Snimanje i reprodukcijaโ€Metoda. Later, uobiฤajeni zadaci unutar skripti su identificirani i grupirani u Funkcije. Ove funkcije poziva glavna testna skripta tzv vozaฤ na razliฤite naฤine za izradu testnih sluฤajeva.

Primjer: Koristeฤ‡i isti primjer kao gore, funkcija za prijavu u Rezervaciju leta izgledat ฤ‡e ovako.

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

Sada ฤ‡ete ovu funkciju pozvati u glavnoj skripti na sljedeฤ‡i naฤin

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

Prednosti

  • Viลกa razina ponovne upotrebe koda postiลพe se u Structured Scriptingu u usporedbi sa "Record & Playback"
  • Skripte za automatizaciju manje su skupe za razvoj zbog veฤ‡e ponovne upotrebe koda
  • Lakลกe odrลพavanje skripte

Nedostaci

  • Za pisanje skripti pomoฤ‡u okvira knjiลพnice testova potrebna je tehniฤka struฤnost
  • Potrebno je viลกe vremena za planiranje i pripremu testnih skripti.
  • Testni podaci ฤvrsto su kodirani unutar skripti

3) Okvir za testiranje na temelju podataka

U ovom Okviru, dok Testni sluฤaj Logika se nalazi u testnim skriptama, testni podaci su odvojeni i ฤuvaju se izvan testnih skripti. Testni podaci se ฤitaju iz vanjskih datoteka (Excel datoteke, tekstualne datoteke, CSV datoteke, ODBC izvori, DAO objekti, ADO objekti) i uฤitavaju se u varijable unutar testne skripte. Varijable se koriste i za ulazne vrijednosti i za vrijednosti provjere. Sami testni skripti se pripremaju pomoฤ‡u linearnog skriptiranja ili okvira testne knjiลพnice. Tehnika je detaljnije objaลกnjena u testiranje voฤ‘eno podacima udลพbenik.

Primjer: Razvojping Skripta za prijavu na rezervaciju leta pomoฤ‡u ove metode ukljuฤivat ฤ‡e dva koraka.

Korak 1) Stvorite datoteku s podacima za testiranje koja moลพe biti Excel, CSV ili bilo koji drugi izvor baze podataka.

Ime agenta Lozinka
Jimmy Mercury
Tina MERKUR
Bill Merkur

Korak 2) Razvijte testnu skriptu i napravite reference na svoj izvor testnih podataka.

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.

Prednosti

  • Promjene testnih skripti ne utjeฤu na testne podatke
  • Testni sluฤajevi mogu se izvrลกiti s viลกe skupova podataka
  • Razni testni scenariji mogu se izvrลกiti samo mijenjanjem testnih podataka u vanjskoj datoteci podataka

Nedostaci

  • Potrebno je viลกe vremena za planiranje i pripremu testnih skripti i testnih podataka

4) Okvir za testiranje na temelju kljuฤne rijeฤi ili tablice

The Na temelju kljuฤnih rijeฤi ili razvoj okvira za automatizaciju voฤ‘enu tablicama zahtijeva tablice podataka i kljuฤne rijeฤi, neovisno od alat za automatizaciju ispitivanja koristio za njihovo pogubljenje. Testovi se mogu dizajnirati sa ili bez aplikacije. U testu temeljenom na kljuฤnim rijeฤima, funkcionalnost aplikacije koja se testira dokumentirana je u tablici kao i u uputama korak po korak za svaki test.

Postoje 3 osnovne komponente okvira voฤ‘enog kljuฤnim rijeฤima, tj. Kljuฤna rijeฤ, Mapa aplikacije, Funkcija komponente.

Kljuฤna rijeฤ je radnja koja se moลพe izvesti na GUI komponenti. npr. Za tekstualni okvir GUI komponenti neke kljuฤne rijeฤi (akcija) bile bi InputText, VerifyValue, VerifyProperty i tako dalje.

ล to je mapa aplikacija?

Mapa aplikacije pruลพa imenovane reference za GUI komponente. Karte aplikacija nisu niลกta drugo nego "Repozitorij objekata"

ล to je funkcija komponente?

Funkcije komponente su one funkcije koje aktivno manipuliraju ili ispituju GUI komponentu. Primjer funkcije bio bi klik na web gumb sa svim obradama pogreลกaka, unos podataka u Web Edit sa svim obradama pogreลกaka. Funkcije komponente mogu biti ovisne ili neovisne o aplikaciji.

Primjer: Da bismo razumjeli prikaz kljuฤnih rijeฤi, uzmimo isti primjer. Ukljuฤuje 2 koraka

Korak 1: Stvaranje podatkovne tablice (Razlikuje se od testne podatkovne tablice stvorene u Data Driven Frameworku). Ova podatkovna tablica sadrลพi radnje koje treba izvrลกiti na GUI objektima i odgovarajuฤ‡e argumente ako postoje. Svaki redak predstavlja jedan testni korak.

Objekt Akcijski
(KARTA aplikacije) (KLJUฤŒNE RIJEฤŒI) Argument
WinEdit (ime agenta) Postaviti Guru99
WinEdit (lozinka) Postaviti Mercury
WinButton (OK) Kliknite
Prozor (rezervacija leta) Provjeriti Postoji

Korak 2: Pisanje Code u obliku komponentnih funkcija.

Nakon ลกto ste kreirali svoju podatkovnu tablicu(e), jednostavno napiลกete program ili skup skripti koje ฤitaju u svakom koraku, izvrลกavaju korak na temelju kljuฤne rijeฤi koja sadrลพi polje Action, provodi provjeru pogreลกaka i biljeลพi sve relevantne informacije. Ovaj program ili skup skripti bi izgledao sliฤno pseudo kodu ispod:

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

To je sve za Keyword Driven Framework.

Prednost Keyword Driven Frameworka je da se kljuฤne rijeฤi mogu ponovno koristiti. Da biste ovo razumjeli, uzmite u obzir da ลพelite potvrditi operaciju prijave za web mjesto, recimo YAHOO MAIL. Tablica ฤ‡e izgledati ovako โ€“

Objekt Akcijski
(KARTA APLIKACIJA) (KLJUฤŒNA RIJEฤŒ) Argument
WebEdit (korisniฤko ime) Postaviti abc@yahoo.com
WebEdit (lozinka) Postaviti xxxxx
WebButton (OK) Kliknite
Prozor (Yahoo Mail) Provjeriti hrpe

Ako u ovom sluฤaju primijetite da kljuฤne rijeฤi Set, Click, Verify ostaju iste za koje su odgovarajuฤ‡e funkcije komponenti veฤ‡ razvijene, sve ลกto trebate uฤiniti je promijeniti mapu aplikacije.ping (Spremiลกte objekata) iz ranije rezervacije leta za Yahoo Mail , uz promjenu vrijednosti argumenata i ista skripta ฤ‡e raditi!

Prednosti

  • Omoguฤ‡uje visoku moguฤ‡nost ponovne upotrebe koda
  • Neovisni alat za testiranje
  • Neovisno o aplikaciji koja se testira, ista skripta radi za AUT (uz neka ograniฤenja)
  • Testovi se mogu dizajnirati sa ili bez AUT

Nedostaci

  • Buduฤ‡i da je poฤetno ulaganje priliฤno veliko, prednosti ovoga mogu se ostvariti samo ako je aplikacija znatno velika i ako se testne skripte moraju odrลพavati nekoliko godina.
  • Za izradu okvira voฤ‘enog kljuฤnim rijeฤima potrebna je visoka struฤnost u automatizaciji.

BILJEล KA : Mada OpenText UFT Jedan (ranije Micro Focus UFT) se reklamira kao okvir voฤ‘en kljuฤnim rijeฤima, ne moลพete postiฤ‡i potpunu neovisnost alata za testiranje i aplikacije pomoฤ‡u njega.

5) Okvir za automatizaciju hibridnog testiranja

Kao ลกto naziv sugerira, ovaj je okvir kombinacija jednog ili viลกe okvira za automatizaciju o kojima je bilo rijeฤi u prethodnom tekstu, koji se oslanjaju na njihove prednosti i pokuลกavaju ublaลพiti njihove slabosti. Okvir za automatizaciju hibridnog testiranja je ono u ลกto se veฤ‡ina okvira za automatizaciju testiranja razvija tijekom vremena i viลกe projekata. Maximum industrija koristi okvir kljuฤnih rijeฤi u kombinaciji metode dekompozicije funkcije.

PS: Ostali okviri za automatizaciju vrijedni spomena su

Test Modularity Framework

U ovom okviru, uobiฤajeni zadatak u testnoj skripti grupiran je zajedno kao moduli.

PrimjerKoriลกtenje akcija u QTP koriลกtenje moลพe stvoriti modularne skripte

Primjer skripte za prijavu

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

Sada moลพete pozvati ovu radnju u glavnoj skripti na sljedeฤ‡i naฤin โ€“

RunAction ("Login[Argument]", oneIteration)

Testiranje poslovnih procesa (BPT)

Ovi automatizacijski okviri rastavljaju velike poslovne procese na komponente koje se mogu ponovno koristiti viลกe puta u istim ili razliฤitim testnim skriptama. Na primjer, poslovni proces rezervacije leta podijeljen je na komponente kao ลกto su prijava, pronalaลพenje letova, rezervacija, plaฤ‡anje i odjava koje se mogu ponovno koristiti u istom poslovnom procesu ili razliฤitim procesima. Takoฤ‘er, BPT olakลกava bliลพu koordinaciju izmeฤ‘u malih i srednjih poduzeฤ‡a i inลพenjera automatizacije.

Kako odabrati pravi okvir za automatizaciju testiranja

Niti jedna vrsta ne pobjeฤ‘uje uvijek. Ispravan izbor ovisi o vjeลกtini tima, veliฤini aplikacije i koliko dugo paket mora preลพivjeti. Tablica u nastavku usporeฤ‘uje pet vrsta na temelju ฤimbenika koji odreฤ‘uju ishod.

Vrsta okvira Napor pri postavljanju Code ponovo upotrijebiti Troลกkovi odrลพavanja Najbolje za
Linearno skriptiranje Vrlo nisko Vrlo nisko Vrlo visoko Demonstracije i jednokratne provjere dima
Knjiลพnica testova Architektura Srednji Srednji Srednji Stabilne aplikacije s ponavljajuฤ‡im tijekovima rada
Na temelju podataka Srednji Srednji Nizak Obrasci i izraฤuni koji zahtijevaju mnogo ulaznih skupova
Na temelju kljuฤnih rijeฤi visok Vrlo visoko Nizak Velike apartmane odrลพavaju mjeลกoviti tehniฤki timovi
Hibrid visok Vrlo visoko Nizak Dugoroฤni poduzetniฤki programi

Prije nego ลกto se odluฤite, rijeลกite ova pitanja:

  1. Koliko ฤ‡e dugo apartman ลพivjeti? Godine odrลพavanja opravdavaju visoka poฤetna ulaganja u dizajn voฤ‘en kljuฤnim rijeฤima ili hibridni dizajn. Kratak projekt to ne opravdava.
  2. Tko piลกe testove? Ako ruฤni testeri doprinose sluฤajevima, tablica kljuฤnih rijeฤi omoguฤ‡uje im rad bez uฤenja skriptnog jezika.
  3. Koliko je suฤelje nestabilno? ฤŒesta promjena ekrana ฤini zasebno spremiลกte objekata neophodnim, inaฤe je potrebno ureฤ‘ivati โ€‹โ€‹svaku skriptu.
  4. Kolika je potrebna varijacija podataka? Mnoge kombinacije ulaznih podataka izravno upuฤ‡uju na dizajn voฤ‘en podacima.
  5. Koji se alat veฤ‡ koristi? Okvir mora odgovarati odabranom alat za automatizaciju i jezik koji tim zna, kao ลกto je Selenium sa Java or Cucumber.

Veฤ‡ina timova zapoฤinje s pristupom voฤ‘enim bibliotekom ili podacima, a zatim se razvija prema hibridnom modelu kako regresija apartman se ลกiri.

Prednosti okvira za automatizaciju testiranja Architektura

Slijede prednosti arhitekture okvira automatizacije testiranja:

  • Okvir za automatizaciju testiranja pomaลพe u smanjenju rizika i troลกkova
  • Poboljลกava uฤinkovitost testova
  • Pomaลพe smanjiti troลกkove odrลพavanja
  • Omoguฤ‡uje ponovnu upotrebu koda
  • Omoguฤ‡uje postizanje maksimalne pokrivenosti testom
  • Maksimalno poveฤ‡ava funkcionalnost aplikacije
  • Pomaลพe smanjiti dupliciranje testnih sluฤajeva
  • Pomaลพe u poboljลกanju uฤinkovitosti i izvedbe testa s automatizacijom testa

Pitanja i odgovori

Alat izvrลกava naredbe za aplikaciju. Okvir je skup konvencija, strukture mapa i biblioteka za viลกekratnu upotrebu koje odreฤ‘uju kako se te naredbe piลกu, organiziraju i odrลพavaju.

Ne. Model objekta stranice je obrazac dizajna za sloj repozitorija objekata. Obiฤno se koristi unutar biblioteฤkih, podatkovno voฤ‘enih i hibridnih okvira, umjesto da ih zamjenjuje.

Umjetna inteligencija dodaje lokatore za samoobnavljanje i vizualnu usporedbu sloju spremiลกta objekata. Slojevita arhitektura ostaje ista, ali skripte se rjeฤ‘e kvare kada se korisniฤko suฤelje malo promijeni.

Da. AI asistenti pretvaraju pisane korake u retke objekata, radnji i argumenata. Pregledatelj i dalje mora potvrditi da se nazivi objekata podudaraju s repozitorijem, inaฤe generirani retci neฤ‡e uspjeti tijekom izvoฤ‘enja.

Track sati odrลพavanja skripte po izdanju, postotak nestabilnih kvarova i vrijeme od izrade do rezultata. Zdrav okvir pokazuje pad napora odrลพavanja dok automatizirana pokrivenost nastavlja rasti.

Saลพmite ovu objavu uz: