Automatizált tesztadatbázis-generálás JPA alapokon
A sokrétű felhasználói igényeket kielégítő szolgáltatásokat megvalósító informatikai rendszerek az összetett követelmények és integrációs lehetőségek száma miatt komplex, függőségekkel teli architektúrával rendelkeznek. Ilyen körülmények között mind a hagyományos, mind pedig az agilis szoftverfejlesztési módszertanok nagy hangsúlyt fektetnek a tesztelésre. Az on-line tartalmat előállító szerver oldali alkalmazások jelentős része valamilyen relációs adatbázist használ, ennek ellenére az objektum-relációs leképzésre alapuló adatintenzív alkalmazások működésének tesztelésére csak korlátozott eszközök állnak rendelkezésre, melyek nem képesek hatékonyan kiszolgálni a felmerült igényeket.
A fejlesztés és a tesztelés során használt adatok általában nagyban különböznek az éles rendszerben használtaktól, mivel sokszor adatvédelmi okokból nem is lehetséges az éles rendszer adatainak tesztjellegű használata. Másfelől - a korlátozott erőforrások miatt - értelemszerűen nem megvalósítható az összes lehetséges bemenet előállítása. Gondos tervezéssel előállítható olyan adatstruktúra, amely képes lefedni a szoftver használata során előforduló helyzeteket. A tesztadat generálás problémájának azonban csak egy részlete a tényleges adatbázismezők kitöltése, mivel az egyes objektumok közötti kapcsolatok kialakítása nagyban befolyásolhatja egy alkalmazás működését.
A Java platform szabványosított objektum-relációs leképzését, a Java Persistence API-t használva mutatunk be platform független megoldást a problémára. A fejlesztés korai fázisában megtervezett entitás osztályok alapján lehetővé tesszük a tesztadatok generálását és az ezek közötti kapcsolatok olyan formában történő kialakítását, hogy az így előálló adatkészlet minél hatékonyabban le tudja fedni a rendszer működését, beleértve mind az üzemszerű, mind a kivételes helyzeteket. Nagy hangsúlyt fektettünk az adatok minőségére. Biztosított az egyes adattípusok értéktartományának és eloszlásának finomhangolása. Az általunk javasolt eszköz hasznos lehet nemcsak a tesztelési, hanem a fejlesztési feladatok során is, ezáltal rövidítve a fejlesztési időt és növelve az elkészült termék minőségét.
szerzők
-
Ferencz Endre
mérnökinformatikus
nappali -
Bozóki Szilárd
mérnökinformatikus
nappali
konzulensek
-
Budai Péter
doktorandusz, Irányítástechnika és Informatika Tanszék -
Dr. Goldschmidt Balázs
egyetemi docens, Irányítástechnika és Informatika Tanszék