Automatikus tesztelés

Automatikus tesztelés

Vezető kutató: 
Micskei Zoltán Imre

Manapság a szoftverek ellenőrzésének az egyik legáltalánosabban használt módszere a tesztelés. Tesztelés alatt azonban ne az "írjunk kódot, aztán adjuk ki diákoknak, hogy kattintgassák végig a szoftvert" megközelítést értsük, hanem a készülő termékek folyamatos, rendszerezett és automatizált ellenőrzését, ami biztosítja, hogy jó minőségű kódot készítsünk (quality engineering). A teszteléssel kapcsolatos feladatok a teljes szoftverfejlesztési életciklus során megjelennek (a teszteket a követelmények alapján megtervezik, a fejlesztők unit teszteket írnak, tesztmeghajtókat és csonkokat készítenek, integrációs és rendszerteszteket hajtanak végre stb.), a minőség így mindenkinek a felelőssége.

Azonban a tesztek manuális elkészítése és kézi végrehajtása helyett egyre inkább előtérbe kerül az iparban is a tesztesetek automatikus generálása és végrehajtása. Az automatikus végrehajtásra vannak elterjedt keretrendszerek (pl. xUnit, CI kiszolgálók), azonban a tesztesetek automatikus kiválasztása jelenleg is aktív kutatási terület. Az automatikus tesztgenerálás történhet modell vagy kód alapján.

A feladatcsoporthoz kapcsolódó témalabor feladatok:

  • jó minőségű kód és szoftver jellegezetességei
  • tesztelési alapfogalmak és technikák esajátítása
  • gyakran használt tesztelési eszközök megismerése (xUnit, Cucumber, kódfedés, mocking...)
  • konkrét webes, GUI vagy mobil alkalmazásokhoz tesztelés kigondolása és megvalósítása
  • elkészített tesztek automatikus futtatása folytonos integrációs keretrendszerekkel

A feladatcsoporthoz tartozó tipikus önálló labor témák:

  • tesztelési módszerek és eszközök megismerése,
  • tesztgeneráló eszközök alkalmazása ipari vagy kutatási projektekben,
  • új tesztgeneráló módszerek és algoritmusok kidolgozása,
  • innovatív, tesztelést segítő eszközök fejlesztése.

A feladatcsoporthoz kapcsolódó tipikus korábbi TDK és szakdolgozatok, diplomamunkák:

Megismerhető technológiák: 
  • tesztelési módszerek: specifikáció- és struktúra-alapú, pl. pairwise testing (ACTS), kód lefedettség (OpenCover)
  • unit tesztelés, izoláció, mock és stub készítés (JUnit, Mockito, MS Fakes)
  • tesztek és teszteszközök fejlesztése (C / C# / Java / szkript nyelvek)
  • build rendszerek, regressziós tesztelés, folytonos integráció (TravisJenkins, TFS)
  • tesztgeneráló algoritmusok, szimbolikus végrehajtás (Microsoft Pex, KLEE, EvoSuite)