Hardverközeli tesztelés automatizálása Robot Frameworkkel

A feladat

Egy termék tesztelésekor a tesztek automatizálása elengedhetetlen a termék minőségének fenntartásához annak fejlesztése során. Az automatizálandó tesztesetek kiválasztásakor törekedni kell arra, hogy azok optimálisan lefedjék a termék specifikáció szerinti működését. Ezáltal biztosítható, hogy a már elkészült és jól működő funkciókba a fejlesztés során nem kerültek hibák. Az automatizálás további előnye az, hogy olyan tesztek is futtathatóvá válnak, amelyeket kézzel nehéz, vagy szinte lehetetlen végrehajtani, például performancia tesztelés.

Az automatizálásra többféle eszköz is rendelkezésre áll a piacon, ezek egyike a nyílt forráskódú Robot Framework. Ez a keretrendszer első sorban a kulcsszó alapú tesztautomatizálásra lett kitalálva, amelyben elérhető számos már implementált library, de saját kulcsszavak is implementálhatók aszerint, hogy a teszteléshez mire van szükség, például egy CLI vagy egy REST API felületen. A saját könyvtárak készítésekor érdemes szem előtt tartani a kulcsszavak újra felhasználhatóságát, törekedni kell a feladatok egységekre bontására.  A Robot Framework elsődleges fejlesztői nyelve a Python vagy a Java.

Webes felületek teszteléséhez létezik már implementált könyvtár a Robot Frameworkben, azonban a weboldalak tesztelése a gyakran nem túl precíz fejlesztés miatt lassú és nehézkes. A webes kulcsszavak felhasználásakor és újak készítésekor gyakran inkább programozói mint tesztelői hozzáállás szükséges a könnyű karbantarthatósághoz.

Az automatizált tesztek futtatásához jó környezetet biztosít a szintén nyílt forráskódú, szerver alapú rendszer, a Jenkins.  A rendszer a konfigurálása során nagyon jól személyre szabható, többek között megadható, hogy mi váltsa ki a futtatást, valamint végrehajthatók benne különböző scriptek és parancsok, ezen kívül a számos plug-in segítségével akár kód lefedettség mérésre is lehetőség van.

A diplomamunka célja egy olyan rendszer felépítése, amely alkalmas kulcsszó alapú automatizált tesztek elkészítésére, futtatására és karbantartására, bemutatva közben a Robot Framework, a Git és a Jenkins előnyeit és korlátait.