Modellvezérelt tesztadat generálás autonóm rendszerekhez

OData támogatás
Konzulens:
Szatmári Zoltán
Méréstechnika és Információs Rendszerek Tanszék

Napjainkban kiemelt feladat, hogy a modern szoftverrendszerek helyességét biztosítsuk, valamint a bennük felmerülő tervezési és implementációs hibákat

felderítsük. Komplex autonóm és elosztott rendszerek vizsgálata sok kihívást rejt magában. Ennek egyik fő oka, hogy ezen rendszerek és környezetük felépítése idővel változik, ami a lehetséges rendszermodellek számának jelentős növekedését idézheti elő. A szoftvertesztelés egy olyan verifikációs módszer, amelyet széles körben alkalmaznak különféle hibák felderítésére, azonban bonyolult rendszerek ellenőrzése esetén nehéz minden számunkra fontos esetet lefedni. A munkámban az autonóm rendszerek tesztelésének támogatását céloztam meg oly módon, hogy absztrakt tesztadatokat állítok elő, amelyek tesztelés alatt lévő rendszerek bemeneteként szolgálhatnak.

A célom egy olyan módszer kidolgozása volt, amely képes tesztadatok generálására modellvezérelt alapon. Az általam készített

algoritmus a tesztadatok egy olyan halmazát állítja elő, ami felhasználható konfigurációs beállításként, illetve tesztelés alatt lévő rendszerek bemeneteként szolgálhat, de akár objektum orientált programok számára is biztosíthat bemenetet robosztusság

teszteléshez vagy modelltranszformációk is ellenőrizhetőek segítségükkel. Az általam javasolt módszer képes koncepcionálisan és strukturálisan különböző

tesztadatokat előállítani, amelyek lefedik a rendszer összes lehetséges felépítését. A tesztadatok előállítása két lépcsőben történik, először egy

absztrakt tesztadatot állítok elő, amelyek annyiban térnek el a hagyományostól, hogy az objektumok attribútumai nem konkrét értékeket tartalmaznak, hanem strukturális viszonyokat fejeznek ki. Az előállt tesztadatok attribútumait ezek után külön lépésben konkretizálom.

A dolgozatomban bemutatok egy tesztgeneráló keretrendszert, ami olyan rendszerek tesztelését támogatja, amelyek metamodellel, példánymodellekkel és

kényszerekkel definiálhatóak. A tesztgenerálási folyamat a következő lépésekből áll: 1) a rendszer definiálása és a tesztadat kiválasztási kritériumok

meghatározása, 2) ``absztrakt'' tesztadat-objektumok generálása, 3) a modell különböző értékeinek konkretizálása. A tesztgenerálás támogatásához

definiáltam egy nyelvet, amellyel a tesztadat generáló algoritmus könnyedén paraméterezhető. A nyelv sok paraméterezési lehetőséget kínál, melyek segítségével az algoritmus finomhangolható.

Az elkészült eszközt Eclipse környezetbe integráltam, ami képes egy Eclipse Modeling Framework (EMF) metamodell segítségével

definiált, OCL (Object Constraint Language) kényszerekkel és egyéb Alloy nyelven megfogalmazott konzisztencia kényszerekkel ellátott rendszermodellt, illetve az opcionális kezdeti konfigurációt logikai problémává transzformálni. A logikai problémát leképezem Alloy, illetve Alloy* nyelvekre amit az Alloy Analyzer képes értelmezni, megoldani és a logikai axiómákat kielégítő modellt generálni. Az eszközöm az előállított modellt visszaalakítja egy olyan példánymodellé, ami megfelel az eredeti metamodellnek és később konkrét tesztekhez rendszermodellként felhasználható. A dolgozatomban a módszer egy alkalmazási lehetőségét egy autonóm robotokkal foglalkozó és egy a Yakindu állapotgépekkel foglalkozó esettanulmányon keresztül mutatom be. A Yakindu esettanulmány során egy redukált állapotgép modell felhasználásával generálok érvényes állapotgépeket. Az autonóm robotokkal foglalkozó esettanulmány az R5-COP Európai Uniós projekthez kapcsolódik, ahol az a cél, hogy robotok teszteléséhez állítsak elő tesztszobákat.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.