Testausautomaatiokehys: ArchiRakenne ja tyypit
โก รlykรคs yhteenveto
Test Automation Frameworkin arkkitehtuuri mรครคrittelee koodausstandardit, testidatan kรคsittelyn ja objektisรคilรถsรครคnnรถt, joita automaatioskriptit noudattavat. Vakiintuneita tyyppejรค on viisi, joista jokainen tarjoaa vastinetta asennustyรถlle uudelleenkรคytรถn, yllรคpitokustannusten ja pitkรคn aikavรคlin skaalautuvuuden suhteen.

Mikรค on automaatiotestauksen kehys?
A Testaa automaatiokehystรค on joukko ohjeita, kuten koodausstandardeja, testitietojen kรคsittelyรค, objektivaraston kรคsittelyรค jne., joita automaation komentosarjojen aikana noudatettaessa saadaan aikaan hyรถdyllisiรค tuloksia, kuten lisรครคntynyt koodin uudelleenkรคyttรถ, suurempi siirrettรคvyys, pienemmรคt komentosarjan yllรคpitokustannukset jne. Nรคmรค ovat vain ohjeita eivรคtkรค ei sรครคnnรถt; ne eivรคt ole pakollisia, ja voit silti kirjoittaa ohjeita noudattamatta ohjeita. Mutta menetรคt kehyksen edut.
Miksi tarvitset Frameworkin?
Tarkastellaan esimerkkiรค ymmรคrtรครคksesi, miksi tarvitset kehyksen.
Olen varma, ettรค olet osallistunut seminaariin/luennolle/konferenssiin, jossa osallistujia pyydettiin noudattamaan seuraavia ohjeita:
- Osallistujien tulee varata paikkansa 5 minuuttia ennen luennon alkua.
- Ota mukaan muistivihko ja kynรค muistiinpanoja varten.
- Lue vatsalihaksettract, jotta sinulla on kรคsitys siitรค, mistรค esityksessรค on kyse.
- Matkapuhelimet tulee asettaa รครคnettรถmรคlle.
- Kรคytรค puhujan vastakkaisessa pรครคssรค olevia uloskรคyntiportteja, jos haluat lรคhteรค kesken luentoa.
- Kysymyksiรค kรคsitellรครคn istunnon lopussa.
Luuletko, ettรค voit jรคrjestรครค seminaarin ILMAN noudattamalla nรคitรค ohjeita?
Vastaus on suuri KYLLร! Tietysti voit pitรครค seminaarin/luennon/konferenssin/demonstraation ilman yllรค olevia ohjeita... itse asiassa jotkut meistรค eivรคt noudata niitรค, vaikka ne on laadittu!
Mutta jos ohjeita noudatetaan, se johtaa hyรถdylliseen lopputulokseen, kuten yleisรถn epรคtasapainon vรคhenemiseen.tracluentojen aikana, paransi osallistujien pysyvyyttรค ja aiheen ymmรคrrystรค.
Edellรค olevan perusteella a Viitekehys voidaan mรครคritellรค joukoksi suuntaviivoja, joita noudattamalla saadaan hyรถdyllisiรค tuloksia.
Testaa automaatiokehystรค Archirakenne: Keskeiset komponentit
Ennen tyyppien vertailua on hyรถdyllistรค nรคhdรค, mitรค kukin kehys sisรคltรครค. ArchiRakenne kuvaa, miten nรคmรค osat kerrostuvat siten, ettรค yhden kerroksen muutos ei riko muita.
- Testiskriptikerros: Sรคilyttรครค testitapaukset. Skriptit pysyvรคt lyhyinรค, koska ne kutsuvat uudelleenkรคytettรคviรค funktioita navigointivaiheiden toistamisen sijaan.
- Funktiokirjasto: Tallentaa jaetut toiminnot, kuten sisรครคnkirjautumisen, haun ja uloskirjautumisen, joten tyรถnkulun muutos tehdรครคn vain kerran.
- Objektivarasto: Yhdistรครค kรคyttรคjรคtunnukset graafisen kรคyttรถliittymรคn elementtien paikantimiin. Kun kรคyttรถliittymรค muuttuu, vain tรคtรค tasoa muokataan.
- Testitietokerros: Sรคilyttรครค syรถtetyt ja odotetut arvot Excelissรค, CSV-tiedostossa tai tietokantalรคhteissรค koodin sijaan.
- Konfiguraatiokerros: Sisรคltรครค ympรคristรถn URLs, selainvalinnat, aikakatkaisut ja tunnistetiedot.
- Raportointikerros: Tuottaa suoritusraportteja, virhenรคyttรถkuvia ja diagnostiikkalokeja.
- Suorituskerros: Kรคynnistรครค paketteja koontipalvelimelta, linkittรคmรคllรค automaation jatkuva integrointi.
Alla olevat kehystyypit eroavat toisistaan โโpรครคasiassa siinรค, kuinka tarkasti ne erottavat nรคmรค kerrokset toisistaan.
Testausautomaatiokehysten tyypit
Alla on erilaisia โโautomaattisten testauskehysten tyyppejรค:
- Lineaarinen komentosarjakirjoitus
- Testikirjasto Architecture Framework.
- Datalรคhtรถinen Testaus Kehys.
- Avainsanapohjainen tai taulukkopohjainen testauskehys.
- Hybridi-testausautomaatiokehys.
Katsotaanpa niitรค yksityiskohtaisesti -
1) Lineaarinen komentosarja โ tallennus ja toisto
Se on yksinkertaisin kaikista Testing Automation Frameworks ja tunnetaan myรถs nimellรค "Tallennus ja toisto". Tรคssรค Automaatiotestaus Framework, Tester tallentaa manuaalisesti jokaisen vaiheen (navigointi ja kรคyttรคjรคn syรถtteet), lisรครค tarkistuspisteet (validointivaiheet) ensimmรคisellรค kierroksella. Sitten hรคn Toistaa tallennetun kรคsikirjoituksen seuraavilla kierroksilla.
Esimerkiksi: Harkitse kirjautumista Lentovaraushakemus ja tarkistaa, onko sovellus latautunut onnistuneen sisรครคnkirjautumisen yhteydessรค. Tรครคllรค testaaja yksinkertaisesti tallentaa vaiheet ja lisรครค vahvistusvaiheet.
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")
edut
- Nopein tapa luoda komentosarja
- Automaatioalan asiantuntemusta ei vaadita
- Helpoin tapa oppia testaustyรถkalun ominaisuudet
Haitat
- Vรคhรคn skriptien uudelleenkรคyttรถรค
- Testitiedot on koodattu skriptiin
- Huolto painajainen
2) Testikirjasto Architecture Framework
Se tunnetaan myรถs nimellรค "Strukturoitu komentosarja" or "Funktionaalinen hajoaminen".
Tรคssรค Automation Testing Frameworkissa testiskriptit tallentaa aluksi "Tallenna ja toistaโMenetelmรค. Later, yleiset tehtรคvรคt skriptien sisรคllรค tunnistetaan ja ryhmitellรครคn funktioiksi. Nรคmรค toiminnot kutsutaan pรครคtestikoodilla kuljettaja eri tavoilla luoda testitapauksia.
Esimerkiksi: Kรคyttรคmรคllรค samaa esimerkkiรค kuin yllรค, Flight Reservation -palveluun kirjautumistoiminto nรคyttรครค tรคltรค.
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
Nyt kutsut tรคtรค funktiota pรครคskriptissรค seuraavasti
Call Login() --------------------------- 'Other Function calls / Test Steps. ---------------------------
edut
- Strukturoidussa komentosarjassa saavutetaan korkeampi koodin uudelleenkรคyttรถ taso "Tallenna ja toisto" -ohjelmaan verrattuna.
- Automaatioskriptien kehittรคminen on halvempaa koodin suuremman uudelleenkรคytรถn vuoksi
- Helpompi komentosarjan yllรคpito
Haitat
- Teknistรค asiantuntemusta tarvitaan komentosarjojen kirjoittamiseen Test Library Frameworkin avulla
- Testiohjelmien suunnitteluun ja valmisteluun tarvitaan enemmรคn aikaa.
- Testitiedot on koodattu skripteihin
3) Data-Driven Testing Framework
Tรคssรค kehyksessรค, kun Testitapaus Koska logiikka sijaitsee testiskripteissรค, testidata erotetaan toisistaan โโja sรคilytetรครคn testiskriptien ulkopuolella. Testidata luetaan ulkoisista tiedostoista (Excel-tiedostot, tekstitiedostot, CSV-tiedostot, ODBC-lรคhteet, DAO-objektit, ADO-objektit) ja ladataan testiskriptin muuttujiin. Muuttujia kรคytetรครคn sekรค syรถttรถarvoina ettรค varmennusarvoina. Itse testiskriptit valmistellaan joko lineaarisen komentosarjan tai testikirjastokehyksen avulla. Tekniikkaa selitetรครคn tarkemmin datalรคhtรถinen testaus opetusohjelma.
Esimerkiksi: Developing Tรคllรค menetelmรคllรค lentovarauksen kirjautumisskripti sisรคltรครค kaksi vaihetta.
Vaihe 1) Luo testi โ Datatiedosto, joka voi olla Excel , CSV tai mikรค tahansa muu tietokantalรคhde.
| Agentin nimi | Salasana |
|---|---|
| Sorkkarauta | Mercury |
| Tina | MERCURY |
| Bill | Mercury |
Vaihe 2) Kehitรค testiskripti ja tee viittaukset testidatalรคhteeseen.
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.
edut
- Testikirjoihin tehdyt muutokset eivรคt vaikuta testitietoihin
- Testitapaukset voidaan suorittaa useilla tietosarjoilla
- Erilaisia โโtestiskenaarioita voidaan suorittaa muuttamalla vain ulkoisen datatiedoston testitietoja
Haitat
- Sekรค testiskriptien ettรค testitietojen suunnitteluun ja valmisteluun tarvitaan enemmรคn aikaa
4) Avainsanoihin perustuva tai taulukkopohjainen testauskehys
Avainsanoihin perustuva tai taulukkopohjaisen automaatiokehyksen kehittรคminen vaatii datataulukoita ja avainsanoja, riippumaton testiautomaatio-tyรถkalu kรคytetรครคn niiden toteuttamiseen. Testit voidaan suunnitella sovelluksen kanssa tai ilman sitรค. Avainsanalรคhtรถisessรค testissรค testattavan sovelluksen toimivuus dokumentoidaan taulukkoon sekรค kunkin testin vaiheittaisiin ohjeisiin.
Avainsanoihin perustuvassa viitekehyksessรค on kolme peruskomponenttia, nimittรคin. Avainsana , sovelluskartta , komponenttitoiminto.
Avainsana on toiminto, joka voidaan suorittaa GUI-komponentille. Esim. GUI-komponenttitekstilaatikossa jotkin avainsanat (toiminto) olisivat InputText, VerifyValue, VerifyProperty ja niin edelleen.
Mikรค on sovelluskartta?
Sovelluskartta sisรคltรครค nimetyt viitteet GUI-komponenteille. Sovelluskartat ovat vain "Objektivarasto"
Mikรค on komponenttitoiminto?
Komponenttifunktiot ovat toimintoja, jotka aktiivisesti kรคsittelevรคt tai kyselevรคt GUI-komponenttia. Esimerkki toiminnosta olisi napsauta verkkopainiketta, jossa on kaikki virheiden kรคsittelyt , syรถtรค tiedot Web-muokkaukseen, jossa on kaikki virheiden kรคsittelyt. Komponenttitoiminnot voivat olla sovelluksesta riippuvaisia โโtai riippumattomia.
esimerkki: Ymmรคrtรครคksesi Avainsananรคkymรคn, otetaan sama esimerkki. Se sisรคltรครค 2 vaihetta
Vaihe 1: Tietotaulukon luominen (erilainen kuin Data Driven Frameworkissa luodut testidatataulukot). Tรคmรค tietotaulukko sisรคltรครค GUI-objekteille suoritettavan toiminnon ja vastaavat argumentit, jos sellaisia โโon. Jokainen rivi edustaa yhtรค testivaihetta.
| objekti | Toiminta | |
|---|---|---|
| (Sovelluskartta) | (AVAINSANAT) | Perustelu |
| WinEdit (Agentin nimi) | Asettaa | Guru99 |
| WinEdit (salasana) | Asettaa | Mercury |
| WinButton (OK) | Napauta | |
| Ikkuna (lentovaraus) | Todentaa | Olemassa |
Vaihe 2: Kirjoittaminen Code komponenttifunktioiden muodossa.
Kun olet luonut tietotaulukot, kirjoitat vain ohjelman tai joukon komentosarjoja, jotka lukevat jokaisen vaiheen, suorittavat vaiheen Toiminto-kentรคn sisรคltรคmรคn avainsanan perusteella, suorittavat virheentarkistuksen ja kirjaavat kaikki asiaankuuluvat tiedot. Tรคmรค ohjelma tai komentosarjasarja nรคyttรคisi samanlaiselta kuin alla oleva pseudokoodi:
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
Siinรค kaikki avainsanoihin perustuvassa kehyksessรค.
Avainsanoihin perustuvan kehyksen etuna on, ettรค avainsanat ovat uudelleenkรคytettรคviรค. Ymmรคrtรครคksesi tรคmรคn harkitse, ettรค haluat varmistaa sisรครคnkirjautumisen verkkosivustolle, sano YAHOO MAIL. Pรถytรค nรคyttรครค tรคltรค -
| objekti | Toiminta | |
|---|---|---|
| (SOVELLUSKARTTA) | (KEYWORD) | Perustelu |
| WebEdit (kรคyttรคjรคnimi) | Asettaa | abc@yahoo.com |
| WebEdit (salasana) | Asettaa | xxxxx |
| WebButton (OK) | Napauta | |
| Ikkuna (Yahoo Mail) | Todentaa | kuormat |
Jos huomaat tรคssรค tapauksessa, ettรค avainsanat Aseta, Napsauta ja Vahvista pysyvรคt samoina, joille vastaavat komponenttifunktiot on jo kehitetty. Sinun tarvitsee vain muuttaa sovelluskarttaa.ping (Objektiarkisto) aiemmasta lentovarauksesta Yahoolle Mail , argumenttiarvojen muutoksella ja sama komentosarja toimii!
edut
- Tarjoaa korkean koodin uudelleenkรคytettรคvyyden
- Testityรถkalusta riippumaton
- Testattavana olevasta sovelluksesta riippumatta sama komentosarja toimii AUT:lle (joillakin rajoituksilla)
- Testit voidaan suunnitella AUT:n kanssa tai ilman
Haitat
- Koska alkuinvestointi on melko suuri, tรคmรคn hyรถdyt voidaan saavuttaa vain, jos sovellus on huomattavan suuri ja testiskriptejรค aiotaan yllรคpitรครค useita vuosia.
- Avainsanoihin perustuvan kehyksen luominen edellyttรครค korkeaa automaatioasiantuntemusta.
HUOMAUTUS : Vaikka OpenText UFT Yksi (entinen Micro Focus UFT) mainostaa itseรครคn avainsanapohjaisena viitekehyksenรค, mutta sen avulla ei voida saavuttaa tรคydellistรค testaustyรถkalu- ja sovellusriippumattomuutta.
5) Hybriditestiautomaatiokehys
Kuten nimestรค voi pรครคtellรค, tรคmรค kehys on yhdistelmรค yhdestรค tai useammasta yllรค kรคsitellystรค automaatiokehyksestรค, joka vetรครค vahvuuksistaan โโja yrittรครค lieventรครค heikkouksiaan. Hybriditestin laadunvarmistuksen automaatiokehys on se, mitรค useimmat testiautomaatiokehykset kehittyvรคt ajan ja useiden projektien myรถtรค. Suurin teollisuus kรคyttรครค Keyword Frameworkia funktion hajotusmenetelmรคn yhdistelmรคssรค.
PS: Muut mainitsemisen arvoiset automaatiokehykset ovat
Testaa modulaarisuuskehystรค
Tรคssรค kehyksessรค testiskriptin yhteinen tehtรคvรค on ryhmitelty moduuleiksi.
esimerkkiToimintojen kรคyttรถ QTP kรคyttรถ voi luoda modulaarisia skriptejรค
Esimerkkiskripti kirjautumiseen
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
Nyt voit kutsua tรคtรค toimintoa pรครคskriptissรค seuraavasti -
RunAction ("Login[Argument]", oneIteration)
Liiketoimintaprosessien testaus (BPT)
Nรคmรค automaatiokehykset hajottavat suuret liiketoimintaprosessit osiin, joita voidaan kรคyttรครค useita kertoja samassa tai eri testiskripteissรค. Esimerkiksi lennon varauksen liiketoimintaprosessi on jaettu osiin, kuten sisรครคnkirjautuminen, lentojen etsiminen, varaus, maksu ja uloskirjautuminen, joita voidaan kรคyttรครค uudelleen samassa liiketoimintaprosessissa tai eri prosesseissa. Lisรคksi BPT mahdollistaa tiiviimmรคn koordinoinnin pk-yritysten ja automaatioinsinรถรถrien vรคlillรค.
Kuinka valita oikea testiautomaatiokehys
Mikรครคn yksittรคinen tyyppi ei voita joka kerta. Oikea valinta riippuu tiimin taidoista, sovelluksen koosta ja siitรค, kuinka kauan paketin on oltava toimintakunnossa. Alla olevassa taulukossa vertaillaan viittรค tyyppiรค lopputulokseen vaikuttavien tekijรถiden perusteella.
| Kehyksen tyyppi | Asennusponnistus | Code Kรคyttรครค uudelleen | Yllรคpitokustannukset | Sopii parhaiten |
|---|---|---|---|---|
| Lineaarinen komentosarjakirjoitus | Erittรคin matala | Erittรคin matala | Erittรคin korkea | Mielenosoituksia ja kertaluonteisia savutarkastuksia |
| Testikirjasto Archirakenne | Keskikova | Keskikova | Keskikova | Vakaat sovellukset toistuvilla tyรถnkuluilla |
| Tieto-ohjautuva | Keskikova | Keskikova | Matala | Lomakkeet ja laskelmat, jotka vaativat useita syรถttรถjoukkoja |
| Avainsanoihin perustuva | Korkea | Erittรคin korkea | Matala | Sekalaisten teknisten tiimien yllรคpitรคmรคt suuret huoneistot |
| Hybridi | Korkea | Erittรคin korkea | Matala | Pitkรคkestoiset yritysohjelmat |
Kรคy lรคpi nรคmรค kysymykset ennen sitoutumista:
- Kuinka kauan sviitti tulee olemaan elinkaaressaan? Vuosien yllรคpito oikeuttaa avainsanapohjaisen tai hybridisuunnittelun korkean alkuinvestoinnin. Lyhyt projekti ei kuitenkaan ole.
- Kuka kirjoittaa kokeet? Jos manuaaliset testaajat osallistuvat tapausten luomiseen, avainsanataulukko antaa heidรคn tyรถskennellรค ilman skriptikielen opettelua.
- Kuinka epรคvakaa kรคyttรถliittymรค on? Usein toistuvat nรคytรถnvaihdot tekevรคt erillisen objektivaraston vรคlttรคmรคttรถmรคksi, muuten jokaista skriptiรค on muokattava.
- Kuinka paljon datan vaihtelua tarvitaan? Monet syรถteyhdistelmรคt viittaavat suoraan datalรคhtรถiseen suunnitteluun.
- Mikรค tyรถkalu on jo kรคytรถssรค? Kehyksen on sovittava valittuun automaatiotyรถkalu ja kieli, jota joukkue osaa, kuten Selenium Java or Cucumber.
Useimmat tiimit aloittavat kirjasto- tai datalรคhtรถisellรค lรคhestymistavalla ja kasvavat sitten kohti hybridimallia. regressio sviitti laajenee.
Test Automation Frameworkin edut Archirakenne
Testausautomaation kehysarkkitehtuurin edut ovat seuraavat:
- Testausautomaatiokehys auttaa vรคhentรคmรครคn riskejรค ja kustannuskustannuksia
- Se parantaa testien tehokkuutta
- Se auttaa vรคhentรคmรครคn yllรคpitokustannuksia
- Mahdollistaa koodin uudelleenkรคytรถn
- Se mahdollistaa maksimaalisen testin kattavuuden
- Se maksimoi sovelluksen toiminnallisuuden
- Auttaa vรคhentรคmรครคn testitapausten pรครคllekkรคisyyttรค
- Se auttaa parantamaan testauksen tehokkuutta ja suorituskykyรค testiautomaation avulla
