Automatikus tesztgenerálás Spec Explorer segítségével

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

A tesztelés a szoftverfejlesztés igen fontos része, mely a jelenlegi gyakorlat szerint a fejlesztésre fordított erőforrások jelentős részét használja fel. A tesztek futtatására sok helyen alkalmaznak már valami automatizmust, azonban a tesztesetek meghatározása, és a teszt specifikációk elkészítése a legtöbb helyen még mindig manuális tevékenység.

Ezen segíthet a modell alapú tesztelés paradigmája, mely a szoftver valamilyen modelljéből állít elő részletes teszteseteket. Dolgozatom bemutatja a tesztelés, azon belül főleg a modell alapú szoftvertesztelés, majd a SpecExplorerrel történő modellezés alapjait. A Microsoft SpecExplorer 2010 a Visual Studio tesztelési lehetőségeit bővíti ki a modell-alapú tesztgenerálás lehetőségével. Az eszközzel C# nyelven leírhatjuk a tesztelni kívánt rendszer modelljét, Cord scriptnyelven pedig meghatározzuk, hogy ezt a modellt miként járja be, és milyen teszteseteket generáljon a program.

Munkám során elvégeztem egy saját fejlesztésű osztálykönyvtár, majd egy ahhoz készült grafikus felület tesztelését a SpecExplorer segítségével. Meghatároztam a tesztelni kívánt függvényeket, majd elkészítettem az implementáció modelljét, definiáltam az egyes szabályokhoz használható paraméterek értékkészletét.

Tesztelésem során olyan paramétereket is használtam, melyek normál használat közben valószínűleg nem fordulnak elő, így igyekeztem megbizonyosodni arról, hogy a program minden körülmények között helyesen működik. Végül a tesztek elvégzéséhez készítettem vágásokat a modellek mentén. A vágásokat tesztkészletekbe rendeztem, majd tesztkódot generáltattam.

A SpecExplorer jelenlegi verziója hosszú- és rövid tesztesetet tud generálni. Mindkét esetre lefuttattam a teszteket, és mindkettőben azonos számú teszt bukott el. A hosszú tesztesetekből generált tesztekre támaszkodva kijavítottam a jelzett hibákat, majd ismét lefuttatva mindkét módban minden teszt sikeres lett.

Végezetül megnéztem, hogyan lehet olyan tesztet generálni, amely a rendszerrel szemben támasztott követelmények fedését ellenőrzi. Megnéztem, hogyan változik egy ilyen fedés, ha új követelményt illesztek a modellbe.

Összességében elmondható, hogy a modell alapú teszteléssel, és az ezen alapuló automatikus tesztgenerálással csökkenthető a teszteléshez szükséges idő. Természetesen egy ilyen egyszerű program esetén a javulás nem szembetűnő, de egy nagy rendszer esetén egészen biztosan.

Letölthető fájlok

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