Tesztelés támogatása a KLEE tesztgenerátorral

OData támogatás
Konzulens:
Dr. Micskei Zoltán Imre
Méréstechnika és Információs Rendszerek Tanszék

A mai világban szinte lehetetlen úgy élni, hogy ne kerüljünk nap mint nap kapcsolatba szoftverekkel. Ráadásul ezen szoftverek egy része az életünkre is hatással lehet, akár veszélyeztetheti is azt, ha nem működik megfelelően. Így a szoftverek az adott területnek és követelményeknek megfelelő működése az egyik legfontoabb elvárás a szoftverfejlesztés során. De hogyan tudjuk eldönteni, hogy a fejlesztett szoftver megfelel-e ezeknek a követelményeknek? A legalapvetőbb metodológia, ami választ keres a kérdésre a szoftvertesztelés.

Manuális szoftvertesztelés során gyakran használják az ekvivalencia partíciók meghatározását a megfelelő számú és minőségű tesztbemenet meghatározásához. Ennek a teknikának az a lényege, hogy az egyes bemeneti változókat olyan csoportokra bontják, melyek a specifikáció szerint azonosan kezelendőek. Így nem szükséges az összes lehetséges bementet kipróbálni, hanem elég csak az egyes partíciókból néhány megfelelőt elemet kiválasztani.

A manuális munka mellet egyre nagyobb az igény az automatikus megoldásokra, mivel a szoftverek egyre komplexebbek és komplexebbek lesznek, miközben a teljesítések határideje egyre csökken. Ezen tesztelést támogató automatikus megoldások egyike a teszt generátorok családja. Szakdolgozatomban be fogom mutatni a szoftvertesztelés alapjait, majd a fő hangsúly a teszt generátorokon lesz, egészen pontosan egy olyan teszt generátoron, ami szimbolikus végrehajtást használ a tesztek generálásához.

A szimbolikus végrehajtás egy olyan technika, ahol a bemeneti változók értékét nem konkretizáljuk, hanem a végrehajtás során az értéktartományukat finomítjuk. Manapság egyre több ilyen eszköz érheto el ingyenesen. Az egyik ilyen ingyenesen elérhető eszköz a KLEE, ami egy teszt generátor C nyelvű programokhoz. Szakdolgozatomban ennek az eszköznek a működését mutatom be részletesen az előnyeivel és hátrányaival együtt.

A fő feladatom a szakdolgozat során az volt, hogy kiegészítsem a KLEE funkcionalitását egy olyan eszközzel, ami segíti az ipari alkalmazásban való könnyebben használhatóságát. Ennek mentén fejlesztettem egy kiegészítést, ami jobb betekintést nyújt a KLEE által felfedezett végrehajtási utak sajátosságaiba. Teszi ezt úgy, hogy a KLEE kimenetét felhasználva legenerálja a legfőbb ekvivalencia partíciókat a tesztelt komponensben. A legenerált partíciók segítségével a tesztelők ellenőrizhetik és kiegészíthetik a saját teszt-készleteiket, vagy akár már a tesztek tervezése során felhasználható a kinyert információ.

Különböző teszt programokon futtattam az elkészült alkalmazást, hogy megmutassam, hogy képes az alapvető C nyelvi elemek támogatására. Támogatja az egyszerű típusokat, a különböző döntési kifejezéseket, ciklusokat, függvényhívásokat és a struktúrákat és a tömböket is. Továbbá egy, a repülőgépes ütközések elkerülését célzó rendszerben használt kódon is futtatva lett.

Letölthető fájlok

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