Tesztelhető adatvezérelt alkalmazások fejlesztése

OData támogatás
Konzulens:
Albert István
Automatizálási és Alkalmazott Informatikai Tanszék

Akármilyen terméket készítünk, fontos hogy megbízható, minőségi legyen, ez igaz a szoftverfejlesztésre is. Szoftverünk megbízhatóságát nagyban javítja, ha funkcióit minden lehetséges módon kipróbáljuk, hogy a kiadott program futtatásakor ne forduljanak elő hibák. Ennek egy módja a szoftver minél teljesebb tesztelése. Ezt érdemes automatizáltan végezni, hogy a teszteket bármikor újra futtatni lehessen.

Azonban a program tesztelése nem teljesen egyértelmű, például az éppen tesztelt funkció eredménye függ egy másik működésétől. Ha a tesztelt funkciónak minden lehetséges kimenetét meg szeretnénk vizsgálni, akkor a másikról is szükséges tudnunk, hogy hogyan működik, így bonyolultabbá válik a tesztelés. Egy másik kérdés adatvezérelt alkalmazások tesztelése során merül fel: hogyan kezeljük tesztek közben az adatbázist? Fejlesztés és tesztelések során változhat az adatbázis, a teszteket mindig az aktuális állapothoz szükséges illeszteni. Különböző módszerek léteznek az alkalmazás elkülönített részeinek, illetve a rendszer egészének tesztelésére is.

A szakdolgozatban ismertetem a fenti problémákra létező megoldásokat általánosan, és konkrétan a .NET keretrendszeren belül is. Ezen kívül részletezem azt is, hogy hogyan érdemes egy alkalmazás architektúráját úgy kialakítani, hogy ezeket a megoldásokat minél hatékonyabban és egyszerűbben lehessen alkalmazni. Végezetül bemutatom az általam készített ASP.NET webalkalmazást, amiben alkalmaztam a megismert módszereket, mind a szoftver fejlesztése közben, mind annak tesztelésekor.

Ezen felül ismertetem a Dependency Injection tervezési mintát, aminek használata nagyban segíti az alkalmazás architektúráját felkészíteni a tesztelésre, és ennek egy .NET-es megvalósítását, a Ninjectet. Ennek segítségével könnyen lecserélhetőek az implementációs osztályok a teszteléshez, ezzel az egyes funkciók önmagukban tesztelhetők. A tesztosztályok elkészítéséhez a Mocking megoldást használtam, a Moq könyvtár segítségével. Végül bemutatom a teljes webalkamazás teszten belüli futtatására használt OWIN interfészt.

Letölthető fájlok

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