Tesztautomatizálási keretrendszer: Archistruktúra és típusok

⚡ Okos összefoglaló

A Tesztautomatizálási Keretrendszer architektúrája meghatározza a kódolási szabványokat, a tesztadat-kezelést és az objektumtárház szabályait, amelyeket az automatizálási szkriptek követnek. Öt bevett típus létezik, amelyek mindegyike a beállítási erőfeszítést az újrafelhasználás, a karbantartási költségek és a hosszú távú skálázhatóság ellenében cseréli gazdára.

  • 📐 Alapvető definíció: A keretrendszer irányelvek, nem szabályok összessége, amelyek újrafelhasználhatóságot, hordozhatóságot és alacsonyabb karbantartási költségeket eredményeznek.
  • ⏺️ Lineáris szkriptelés: A felvétel és lejátszás a leggyorsabban felépíthető és a legnehezebben karbantartható, mivel az adatok fixen kódolva maradnak.
  • 🧱 Tesztkönyvtár Architectúra: A gyakori lépések újrafelhasználható függvényekké válnak, amelyeket egy illesztőprogram-szkript hív meg, ami a tervezési idő rovására növeli az újrafelhasználhatóságot.
  • 📊 Adatvezérelt: A tesztlogika szkriptekben marad, miközben az adatok Excelbe, CSV-be vagy adatbázisba kerülnek, így szkriptenként számos forgatókönyv használható.
  • 🔑 Kulcsszóvezérelt: A műveletek kulcsszavakként tárolódnak egy táblázatban, így a tesztek függetlenek mind az eszköztől, mind az alkalmazástól.
  • 🔀 Hibrid modell: A legtöbb kiforrott csomag kulcsszótáblázatokat kombinál funkcionális felbontással, hogy kiegyensúlyozza az erőfeszítést és a lefedettséget.

Teszt automatizálási keretrendszer Archistruktúra és típusok

Mi az a keretrendszer az automatizálási tesztelésben?

A Teszt automatizálási keretrendszer olyan irányelvek halmaza, mint például a kódolási szabványok, a tesztadatok kezelése, az objektumtárkezelés stb., amelyeket az automatizálás során követve a szkriptek olyan előnyös eredményeket hoznak létre, mint például megnövekedett kód-újrahasználat, nagyobb hordozhatóság, csökkentett szkript-karbantartási költségek stb. Ezek csak iránymutatások, és nem szabályok; ezek nem kötelezőek, és az irányelvek betartása nélkül továbbra is írhat. De lemarad a keretrendszer előnyeiről.

Miért van szüksége keretrendszerre?

Nézzünk egy példát, hogy megértsük, miért van szükség keretrendszerre.

Biztos vagyok benne, hogy részt vett egy szemináriumon/előadáson/konferencián, ahol a résztvevőket arra kérték, hogy tartsák be a következő irányelveket:

  • A résztvevők az előadás kezdete előtt 5 perccel foglalják el helyüket.
  • Vigyél magaddal jegyzetfüzetet és tollat ​​a jegyzeteléshez.
  • Olvasd le a hasizmokattract, így van egy elképzelésed arról, hogy miről fog szólni a prezentáció.
  • A mobiltelefonokat néma üzemmódba kell állítani.
  • Használja az előadóval ellentétes végén lévő kijárati kapukat, ha az előadás közepén távoznia kell.
  • A kérdésekre az ülés végén kerül sor.

Gondolja, hogy le tud tartani egy szemináriumot? NÉLKÜL betartva ezeket az irányelveket?

A válasz egy nagy IGEN! Természetesen a fenti iránymutatások nélkül is tarthat szemináriumot/előadást/konferenciát/bemutatót... sőt, néhányunk nem követi azokat, pedig ki vannak írva!

De ha betartjuk az irányelveket, az előnyös eredményt hoz, például csökkenti a közönség tévedését.tracaz előadások során, a résztvevők fokozott megtartása és a téma jobb megértése.

A fentiek alapján a A keretrendszer olyan irányelvek összességeként határozható meg, amelyek betartása előnyös eredményeket hoz.

Teszt automatizálási keretrendszer Archiszerkezet: Főbb összetevők

Mielőtt összehasonlítanánk a típusokat, érdemes áttekinteni, hogy mit tartalmaznak az egyes keretrendszerek. ArchiA struktúra leírja, hogyan rétegeződnek ezek az alkatrészek úgy, hogy az egyik réteg változása ne rontsa a többit.

  • Tesztszkript réteg: A teszteseteket tárolja. A szkriptek rövidek maradnak, mert újrafelhasználható függvényeket hívnak meg a navigációs lépések ismétlése helyett.
  • Függvénykönyvtár: Tárolja a megosztott műveleteket, például a bejelentkezést, a keresést és a kijelentkezést, így a munkafolyamat-módosítás csak egyszer történik meg.
  • Objektumtár: Felhasználóbarát neveket rendel hozzá a GUI elemkeresőkhöz. Amikor a felület megváltozik, csak ez a réteg szerkesztődik.
  • Tesztelési adatréteg: A bemeneti és a várható értékeket Excelben, CSV-ben vagy adatbázisforrásokban tartja a kódon belüli helyett.
  • Konfigurációs réteg: Környezetet tartalmaz URLs, böngészőbeállítások, időtúllépések és hitelesítő adatok.
  • Jelentési réteg: Végrehajtási jelentéseket, hibajelentéseket és diagnosztikai naplókat készít.
  • Végrehajtási réteg: Csomagok indítását indítja el egy build szerverről, összekapcsolva az automatizálást a folyamatos integráció.

Az alábbi keretrendszer-típusok főként abban különböznek, hogy mennyire szigorúan választják el ezeket a rétegeket.

Tesztautomatizálási keretrendszerek típusai

Az alábbiakban bemutatjuk az automatizált tesztelési keretrendszerek különböző típusait:

  1. Lineáris szkriptelés
  2. A tesztkönyvtár Architecture Framework.
  3. Az adatvezérelt Tesztelés Keretrendszer.
  4. A kulcsszóvezérelt vagy táblázatvezérelt tesztelési keretrendszer.
  5. A hibrid tesztautomatizálási keretrendszer.

Nézzük meg őket részletesen –

1) Lineáris szkriptelés – Felvétel és lejátszás

Ez a legegyszerűbb az összes tesztelési automatizálási keretrendszer közül, és más néven is ismert „Felvétel és lejátszás”. Ebben Automatizálási tesztelés A keretrendszer, a Tester manuálisan rögzít minden lépést (navigációs és felhasználói bemenetek), ellenőrzőpontokat szúr be (érvényesítési lépések) az első körben. Ezután lejátssza a rögzített forgatókönyvet a következő körökben.

Példa: Fontolja meg a bejelentkezést Repülőjegy-foglalási kérelem és annak ellenőrzése, hogy az alkalmazás betöltődött-e a sikeres bejelentkezéskor. Itt a tesztelő egyszerűen rögzíti a lépéseket, és hozzáadja az érvényesítési lépéseket.

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

Előnyök

  • A szkript létrehozásának leggyorsabb módja
  • Automatizálási szakértelem nem szükséges
  • A Teszteszköz funkcióinak megismerésének legegyszerűbb módja

Hátrányok

  • Kevés szkriptek újrafelhasználása
  • A tesztadatok a szkriptbe vannak bekódolva
  • Karbantartási rémálom

2) A tesztkönyvtár Architecture Framework

Úgy is ismert, mint "Strukturált szkriptek" or „Funkcionális dekompozíció”.

Ebben az automatizálási tesztelési keretrendszerben a tesztszkripteket kezdetben a „Felvétel és lejátszás”Módszer. Later, a parancsfájlokon belüli gyakori feladatok azonosítása és függvényekbe csoportosítható. Ezeket a függvényeket a fő tesztszkript hívja meg Vezető különböző módokon tesztesetek létrehozására.

Példa: Ugyanazt a példát használva, mint a fenti, a Flight Reservation szolgáltatásba való bejelentkezés funkciója így fog kinézni.

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

Most ezt a függvényt a következőképpen hívja meg a fő szkriptben

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

Előnyök

  • A Strukturált Scriptingben magasabb szintű kód-újrahasználat érhető el, mint a „Rögzítés és lejátszás”
  • Az automatizálási szkriptek fejlesztése kevésbé költséges a nagyobb kód-újrafelhasználás miatt
  • Egyszerűbb szkript-karbantartás

Hátrányok

  • A Test Library Framework használatával szkriptek írásához technikai szakértelem szükséges
  • Több időre van szükség a tesztszkriptek tervezésére és előkészítésére.
  • A tesztadatok keményen kódolva vannak a szkriptekben

3) Az adatvezérelt tesztelési keretrendszer

Ebben a keretrendszerben , míg Teszt eset Mivel a logika a tesztszkriptekben található, a tesztadatokat elkülönítik és a tesztszkripteken kívül tárolják. A tesztadatokat külső fájlokból (Excel-fájlok, szövegfájlok, CSV-fájlok, ODBC-források, DAO-objektumok, ADO-objektumok) olvassák be, és a tesztszkripten belüli változókba töltik be. A változókat bemeneti értékekként és ellenőrző értékekként is használják. Magukat a tesztszkripteket lineáris szkripteléssel vagy tesztkönyvtár-keretrendszerrel készítik el. A technikát részletesebben a következő részben ismertetjük. adatvezérelt tesztelés tutorial.

Példa: Fejlesztőping A repülőjegy-foglalási bejelentkezési szkript ezzel a módszerrel két lépésből áll.

Step 1) Hozzon létre egy tesztet – adatfájlt, amely lehet Excel , CSV vagy bármilyen más adatbázisforrás.

Ügynök neve Jelszó
Feszítővas Mercury
Tina MERCURY
Bill Higany

Step 2) Készítsen tesztszkriptet, és hivatkozzon a tesztadatforrásra.

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.

Előnyök

  • A tesztszkriptek változásai nem érintik a tesztadatokat
  • A tesztesetek több adatkészlettel is végrehajthatók
  • Különféle tesztforgatókönyvek hajthatók végre a külső adatfájlban lévő tesztadatok megváltoztatásával

Hátrányok

  • Több időre van szükség a tesztszkriptek és a tesztadatok megtervezéséhez és előkészítéséhez

4) A kulcsszóvezérelt vagy táblázatvezérelt tesztelési keretrendszer

Az Kulcsszóvezérelt vagy a táblavezérelt automatizálási keretrendszer fejlesztéséhez adattáblákra és kulcsszavakra van szükség, független a teszt automatizálási eszköz végrehajtásukra használták. A tesztek megtervezhetők az Alkalmazással vagy anélkül. A kulcsszóvezérelt tesztben a tesztelés alatt álló alkalmazás funkcionalitása egy táblázatban, valamint az egyes tesztek lépésenkénti utasításaiban van dokumentálva.

A kulcsszóvezérelt keretrendszernek 3 alapvető összetevője van, nevezetesen. Kulcsszó , Alkalmazástérkép , Összetevő funkció.

A kulcsszó egy GUI-komponensen végrehajtható művelet. Volt. A GUI komponens szövegdobozában néhány kulcsszó (művelet) az InputText, a VerifyValue, a VerifyProperty és így tovább.

Mi az Alkalmazástérkép?

Az alkalmazástérkép névvel ellátott hivatkozásokat tartalmaz a grafikus felhasználói felület összetevőihez. Az alkalmazástérképek nem más, mint „Objektumtár"

Mi az a komponens funkció?

A komponensfüggvények azok a funkciók, amelyek aktívan manipulálják vagy lekérdezik a grafikus felhasználói felület összetevőjét. Példa erre a funkcióra: kattintson a web gombra az összes hibakezeléssel , adja meg az adatokat a webes szerkesztésben az összes hibakezeléssel. Az összetevő függvények lehetnek alkalmazásfüggőek vagy függetlenek.

Példa: A Kulcsszónézet megértéséhez vegyük ugyanezt a példát. 2 lépésből áll

1 lépés: Adattábla létrehozása (Eltér a Data Driven Frameworkben létrehozott tesztadattáblázattól). Ez az adattábla tartalmazza a GUI objektumokon végrehajtandó műveleteket és a megfelelő argumentumokat, ha vannak. Minden sor egy tesztlépést jelent.

tárgy Akció
(Alkalmazástérkép) (KULCSSZAVAK) Érv
WinEdit (ügynök neve) Készlet Guru99
WinEdit (jelszó) Készlet Mercury
WinButton (OK) Kattints
Ablak (járatfoglalás) Ellenőrzése Létezik

2 lépés: Írás Code komponensfüggvények formájában.

Miután létrehozta az adattáblázat(oka)t, egyszerűen írjon egy programot vagy egy szkriptkészletet, amely minden lépésben beolvassa, végrehajtja a lépést a Művelet mezőben található kulcsszó alapján, elvégzi a hibaellenőrzést, és naplózza a releváns információkat. Ez a program vagy szkriptkészlet az alábbi pszeudokódhoz hasonlítana:

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

Ez minden a kulcsszóvezérelt keretrendszerben.

A Kulcsszóvezérelt Framework előnye, hogy a kulcsszavak újra felhasználhatók. Ennek megértéséhez fontolja meg, hogy ellenőrizni szeretné egy webhely bejelentkezési működését, mondjuk a YAHOO MAIL. A táblázat így fog kinézni:

tárgy Akció
(ALKALMAZÁSI TÉRKÉP) (KEYWORD) Érv
WebEdit (Felhasználónév) Készlet abc@yahoo.com
WebEdit (jelszó) Készlet xxxxx
WebButton (OK) Kattints
Ablak (Yahoo Mail) Ellenőrzése Betölti

Ha ebben az esetben azt tapasztalja, hogy a kulcsszavak (Set, Click, Verify) ugyanazok maradnak, amelyekhez már kifejlesztették a megfelelő komponensfüggvényeket. Csak az Alkalmazástérképet kell módosítania.ping (Objektumtár) a korábbi repülőjegy-foglalásból a Yahoo-hoz Mail , az argumentumértékek megváltoztatásával és ugyanaz a szkript fog működni!

Előnyök

  • Magas kód-újrafelhasználhatóságot biztosít
  • Teszteszköz független
  • A tesztelés alatt álló alkalmazástól függetlenül ugyanaz a szkript működik az AUT-hoz (bizonyos korlátozásokkal)
  • A tesztek megtervezhetők AUT-val vagy anélkül

Hátrányok

  • Mivel a kezdeti befektetés meglehetősen magas, ennek előnyei csak akkor érhetők el, ha az alkalmazás meglehetősen nagy, és a tesztszkripteket jó néhány évig karban kell tartani.
  • A kulcsszóvezérelt keretrendszer létrehozásához magas szintű automatizálási szakértelem szükséges.

JEGYZET : Annak ellenére OpenText UFT Egy (korábban Micro Focus UFT) kulcsszóvezérelt keretrendszerként hirdeti magát, használatával nem lehet teljes teszteszköz- és alkalmazásfüggetlenséget elérni.

5) A hibrid tesztautomatizálási keretrendszer

Ahogy a neve is sugallja, ez a keretrendszer egy vagy több fentebb tárgyalt automatizálási keretrendszer kombinációja, amelyek erősségeikből merítenek, és megpróbálják mérsékelni gyengeségeikat. A hibrid teszt-minőségbiztosítási automatizálási keretrendszer az, amivé a legtöbb tesztautomatizálási keretrendszer idővel és több projekttel együtt fejlődik. A Maximum iparág a kulcsszókeretet használja a függvénybontási módszer kombinációjában.

PS: További említésre méltó automatizálási keretrendszerek

Modularitási keretrendszer tesztelése

Ebben a keretben a tesztszkriptben található közös feladatok modulokként vannak csoportosítva.

PéldaMűveletek használata a következőben: QTP használatával moduláris szkripteket hozhat létre

Minta szkript a bejelentkezéshez

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

Most a következőképpen hívhatja ezt a műveletet a fő szkriptben -

RunAction ("Login[Argument]", oneIteration)

Üzleti folyamatok tesztelése (BPT)

Ezek az automatizálási keretrendszerek a nagy üzleti folyamatokat komponensekre bontják, amelyek többször is felhasználhatók ugyanabban vagy különböző tesztszkriptekben. Például a repülőjegy lefoglalásának üzleti folyamata olyan összetevőkre van felosztva, mint a Bejelentkezés, a repülőjegyek keresése, a foglalás, a fizetés és a kijelentkezés, amelyek újra felhasználhatók ugyanabban az üzleti folyamatban vagy különböző folyamatokban. Ezenkívül a BPT elősegíti a KKV-k és az automatizálási mérnökök közötti szorosabb koordinációt.

Hogyan válasszuk ki a megfelelő tesztautomatizálási keretrendszert?

Egyetlen típus sem nyer mindig. A helyes választás a csapat képességeitől, az alkalmazás méretétől és attól függ, hogy mennyi ideig kell a csomagnak fennmaradnia. Az alábbi táblázat összehasonlítja az öt típust a kimenetelt meghatározó tényezők alapján.

Kerettípus Beállítási erőfeszítés Code újrafelhasználás Fenntartási költség A legalkalmasabb
Lineáris szkriptelés Nagyon alacsony Nagyon alacsony Nagyon magas Bemutatók és egyszeri füstellenőrzések
Tesztkönyvtár Architectúra közepes közepes közepes Stabil alkalmazások ismétlődő munkafolyamatokkal
Adatközpontú közepes közepes Alacsony Sok bemeneti készletet igénylő űrlapok és számítások
Kulcsszóvezérelt Magas Nagyon magas Alacsony Vegyes műszaki csapatok által karbantartott nagyméretű lakosztályok
hibrid Magas Nagyon magas Alacsony Hosszú távú vállalati programok

Mielőtt belevágsz, gondold át ezeket a kérdéseket:

  1. Meddig fog élni a lakosztály? Az évekig tartó karbantartás indokolja egy kulcsszóvezérelt vagy hibrid design magas kezdeti befektetését. Egy rövid projekt nem.
  2. Ki írja a teszteket? Ha a manuális tesztelők eseteket adnak hozzá, egy kulcsszótábla lehetővé teszi számukra a szkriptnyelv megtanulása nélküli munkát.
  3. Mennyire változékony a felület? A gyakori képernyőváltás miatt elengedhetetlen egy külön objektumtár, különben minden szkriptet szerkeszteni kell.
  4. Mekkora adatvariációra van szükség? Sok bemeneti kombináció közvetlenül egy adatvezérelt tervezésre mutat.
  5. Melyik eszköz van már használatban? A keretnek illeszkednie kell a kiválasztotthoz automatizálási eszköz és egy nyelvet, amit a csapat ismer, például Selenium ahol Java or Cucumber.

A legtöbb csapat könyvtár- vagy adatvezérelt megközelítéssel kezd, majd hibrid modell felé halad. regresszió lakosztály bővül.

A tesztautomatizálási keretrendszer előnyei Architectúra

A Tesztautomatizálási keretrendszer architektúra előnyei a következők:

  • A tesztautomatizálási keretrendszer segít csökkenteni a kockázatokat és a költségeket
  • Javítja a tesztek hatékonyságát
  • Segít csökkenteni a karbantartási költségeket
  • Lehetővé teszi a kód újrafelhasználását
  • Lehetővé teszi a maximális vizsgálati lefedettség elérését
  • Maximalizálja az alkalmazás funkcionalitását
  • Segít csökkenteni a tesztesetek megkettőzését
  • A tesztautomatizálással segít a teszt hatékonyságának és teljesítményének javításában

GYIK

Egy eszköz parancsokat hajt végre egy alkalmazáson. A keretrendszer a parancsokat körülvevő konvenciók, mappaszerkezet és újrafelhasználható könyvtárak összessége, amelyek meghatározzák, hogyan íródnak, szerveződnek és kerülnek karbantartásra ezek a parancsok.

Nem. Az Page Object Model egy tervezési minta az objektumtár rétegéhez. Általában könyvtári, adatvezérelt és hibrid keretrendszerekben használják, ahelyett, hogy bármelyiket is helyettesítenék.

A mesterséges intelligencia önjavító lokátorokat és vizuális összehasonlítást ad az objektumtár rétegéhez. A réteges architektúra ugyanaz marad, de a szkriptek ritkábban hibásodnak meg, amikor a felhasználói felület kissé megváltozik.

Igen. A mesterséges intelligencia asszisztensek az írott lépéseket objektum-, művelet- és argumentumsorokká alakítják. A felülvizsgálónak továbbra is meg kell erősítenie, hogy az objektumnevek megegyeznek a tárházéval, különben a generált sorok futásidejű hibát jeleznek.

Track szkriptkarbantartási óra kiadásonként, a hibás hibák százalékos aránya és a buildtől az eredményig eltelt idő. Egy egészséges keretrendszer csökkenő karbantartási ráfordítást mutat, míg az automatizált lefedettség folyamatosan növekszik.

Foglald össze ezt a bejegyzést a következőképpen: