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.

ล 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:
- Linearno skriptiranje
- Testna knjiลพnica Architekturni okvir.
- Podaci-voฤeni Ispitivanje Okvir.
- Okvir za testiranje voฤeno kljuฤnim rijeฤima ili tablicama.
- 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:
- 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.
- 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.
- Koliko je suฤelje nestabilno? ฤesta promjena ekrana ฤini zasebno spremiลกte objekata neophodnim, inaฤe je potrebno ureฤivati โโsvaku skriptu.
- Kolika je potrebna varijacija podataka? Mnoge kombinacije ulaznih podataka izravno upuฤuju na dizajn voฤen podacima.
- 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
