Bevezetés
A tesztautomatizálás felgyorsítja a kiadási [link1][link2][link3] ciklusokat, növeli a lefedettséget, kiváltja a manuális tesztelés során fellépő emberi hibákat, hiányosságokat melyek a projekt sikerességére is hatással lehetnek [További vonatkozó cikk]. Viszont, mint minden más is az életben, csak akkor teljesíti be a feladatát, ha jól csináljuk. A „jól csinálás” alapja a jó alap. 😊 A tesztautomatizálás gyakorlati alapját a keretrendszerek szolgáltatják. [link1][link2] Egy-egy keretrendszer típus meghatározza azt a logikai struktúrát, amiben a tesztjeinket építjük. Ez a cikk a keretrendszer típusokat mutatja be.
A tesztautomatizálási keretrendszerek evolúcióját tükrözi az alábbi felsorolás. Ez a sorrend egyrészt időrendi, másrészt a keretrendszerek összetettségét is jelképezi.
- Lineáris
- Moduláris
- Könyvtár alapú
- Adatvezérelt
- Kulcsszóvezérelt
- Hibrid
- Viselkedésvezérelt
Lineáris
A tesztautomata keretrendszerek első generációja. Ez a keretrendszer típusok közül a legegyszerűbb. A típus legfőbb jellemzője, hogy a tesztek egymástól függetlenek, gyakran kézi műveletek rögzítésével és újrajátszásával jönnek létre. Minden teszt maga gondoskodik a logolásról, a hibajelzésről, a tesztadatokról, a teszt-objektumokról. A tesztek között nincs kommunikáció.
Előnyök:
- Gyorsan létrehozhatók a tesztek felvétel segítségével.
- Egyszerű: Kezdő tesztautomatizálók számára ez a módszer megfelelő.
- Nagyon kevés tervezésre van szükség
- Minimális programozói tudást igényel
Hátrányok:
- A karbantartása lényegébe a tesztek újra elkészítését jelenti, ezért hosszú távon nem hatékony.
- Nincs újrafelhasználhatóság.
- Sok az kódismétlés.
- A kód tartalmazza az adatokat. Az adatok módosítása a kód módosításával egyenértékű.
Sok a hátránya, de demózásra, gyors eredményt igénylő validálásra, minimális smoke tesztkészlet létrehozásra alkalmas.
Moduláris
A moduláris tesztelési keretrendszerben a tesztelők modulárisan hoznak létre automata teszteket úgy, hogy a tesztelt alkalmazást kisebb, független tesztekre bontják. Ezek az egyedi automata tesztek kombinálhatók össze hosszabb tesztesetekké, úgy, hogy egy fő kódot használnak, amiben ezeket a kisebb teszteket hívják meg egymás után.
Ebben a keretrendszerben a tesztelők függvénykönyvtárakat írhatnak, amiket a tesztek szükség esetén felhasználnak.
Előnyök:
- Könnyebb karbantarthatóság.
- Függvénykönyvtárak használata.
- Az egyik modulban végrehajtott változtatások nem, vagy csak csekély hatással vannak a többi modulra.
Hátrányok:
- Több időt vesz igénybe a tervezés.
- A tesztadatok itt is a kódba vannak égetve.
- Kisebb programozói tudást igényel a keretrendszer összeállítása.
Könyvtár alapú
A moduláris keretrendszeren alapul, néhány további előnnyel. Szokták strukturált keretrendszernek is nevezni. A moduláris tesztelési keretrendszerben a tesztelt alkalmazást modulokra bontjuk, itt pedig azonosítjuk a gyakori feladatokat és ezeket függvényekbe csoportosítjuk. A függvénycsoportok egy-egy függvény-könyvtárban lesznek tárolva. A tesztek létrehozásához ezeket a könyvtárakat és a könyvtárakban lévő függvényeket lehet felhasználni.
Előnyök:
- A függvénykönyvtárak karbantartása könnyű
- A függvénykönyvtárak újrafelhasználhatóak.
Hátrányok: - A tervezés és a keretrendszer elkészítése több időt vesz igénybe.
- A keretrendszer megtervezéséhez tapasztalt automatizálási tesztelőkre van szükség programozói tudással.
A modulárisból egyenes út vezet ide. Lényegében ez a moduláris refaktorálásából származik. 😊
Adatvezérelt
Az adatvezérelt tesztautomatizálási keretrendszer a tesztesetek logikájának és a tesztadatok egymástól való elválasztására összpontosít. Megoldja azt a problémát, hogy egy-egy tesztet többfajta tesztadat-összeállítással is le lehessen futtatni.
A tesztadatkészletet külső fájlokban vagy erőforrásokban tárolják, például táblázatokban, CSV, XML, JSON állományokban, vagy valamilyen adatbázisban. Mivel a tesztadatok nemcsak a bemenő, hanem az ellenőrizendő értékeket is tartalmazhatják, így a tesztesetek száma jelentősen lecsökken a moduláris típusú keretrendszerekhez képest.
A karbantartás költsége is csökken, mivel:
- kevesebb a teszteset,
- gyakran elég csak a tesztadatokat módosítani,
Előnyök:
- A tesztadatok nem a kód részei, több tesztadat-összeállítást is használhatunk, egymástól függetlenül.
- A tesztesetek módosítása nincs hatással a tesztadatokra.
- Kevesebb tesztesetet kell elkészíteni.
- Könnyebb a karbantarthatósága az előző típusokhoz képest.
Hátrányok:
- Programozási ismereteket igényel
- A keretrendszer és a tesztadatok tervezése és előállítása több időt vesz igénybe. (Megfelelő eszközök használatával ez a hátrány jelentősen csökkenthető.)
- A keretrendszer megtervezéséhez tapasztalt tesztautomatizálási szakemberre van szükség
Kulcsszóvezérelt
A kulcsszó vezérelt automatizálás egy rendkívül komplex tesztelési keretrendszer generációnak tekinthető, ugyanis ezek kidolgozása és implementálása hosszú ideig tart, illetve magas odafigyelést követel a készítés alatt.
A kulcsszóvezérelt tesztautomatizálásnál a végrehajtani kívánt funkciók, emberi nyelven értelmezhető kulcsszavakba kerülnek tárolásra. A tesztlépéseket a tesztelők általában táblázatos formában tudják megadni soronként, úgy, hogy a sor első eleme a kulcsszó, többi eleme a működést befolyásoló, kulcsszóhoz köthető tesztadatok. Ez nagyon hasonlít az adatvezérelt megoldáshoz, a különbség lényegében a kulcsszó, ami nem csak az adatot, de a műveletet is meghatározza.
A keretrendszer azt a programot tartalmazza, ami az előbb leírt táblázatos teszteket tudja értelmezni és futtatni.
A kulcsszóvezérelt automatizálásnál a tesztesetek írását rá lehet bízni manuális tesztelőkre is, míg a keretrendszer tervezéséhez, elkészítéséhez és karbantartásához magasan képzet tesztautomatizáló szakemberre van szükség.
Előnyök:
- A tesztesetek írásához nem kell szakértőnek lenni
- Az kulcsszavak és a tesztek is könnyen újrafelhasználhatók.
- Az alkalmazás módosulása, nem feltétlenül vonja maga után a tesztesetek módosítását
- A tesztesetek tervezése és megírása még az alkalmazás funkciók fejlesztése előtt megtörténhet
Hátrányok:
- A tervezés és a keretrendszer kialakítása költséges. (Ez a költség csökkenthető, egy megfelelően megválasztott eszközzel.)
- Erős tesztautomatizálási és programozási ismeretekkel rendelkező alkalmazottak szükségesek.
Hibrid
A hibrid tesztautomatizálási keretrendszer két vagy több előbb említett keretrendszer kombinációja. Általában a kulcsszóvezérelt és adatvezérelt lehetőségek együttes használatát értik a hibrid tesztautomatizálási keretrendszerek alatt.
Viselkedésvezérelt
A viselkedésvezérelt keretrendszer célja egy olyan platform létrehozása, amely lehetővé teszi mindenki (például üzleti elemzők, fejlesztők, tesztelők stb.) aktív részvételét. Ez fokozott együttműködést igényel a fejlesztői és tesztcsoportok között. Teszteket még a felhasználók is képesek írni, mert a tesztspecifikációk elkészítéséhez nem technikai, hanem formailag kötött természetes nyelvet használnak.
Összefoglalás
A fent felsorolt generációk közül mindenek megvan a maga előnye és hátránya, a legnépszerűbbek az adatvezérelt, a kulcsszóvezérelt és a hibrid keretrendszerek. Ezeknél a keretrendszereknél nem ússzuk meg a tervezés és a kiépítés költségeit és megfelelő tapasztalatokkal rendelkező, programozói vénával megáldott tesztautomatizáló szakember alkalmazását sem. Ugyanakkor, amit nyerhetünk e keretrendszerek megfelelő alkalmazásával, az a karbantarthatóság, rugalmasság, üzembiztonság és azt, hogy a teszteseteket nem csak a tesztautomatizáló szakember tervezheti/írhatja.
Jó tesztelés! Hajrá!