C programok automatikus vizsgálata tesztgenerálással

A programok működésének egyik legelterjedtebb módja a tesztelés, azonban egy nem triviális méretű program esetén a megfelelő tesztbemenetek kiválasztása időigényes feladat. Az utóbbi években megjelentek az olyan eszközök, amik a forráskód elemzésével és futtatásával képesek automatikusan fontos bemeneteket kiválasztani, amik a program nagy részét lefedik. Az önálló labor keretében ilyen eszközök elméleti alapját kell megismerni, majd fokozatosan egyre bonyolultabb alkalmazásokon a gyakorlatban ki is próbálni őket. A távlati cél az, hogy később az azonosított hiányosságok alapján kiegészítsük vagy továbbfejlesszük az eszközöket.

A tanszéken jelenleg is foglalkoznak hallgatók hasonló .NET-es és Javás eszközökkel (Microsoft Pex és NASA SPF), jelen feladatban a C/C++ eszközökkel kellene elkezdeni foglalkozni. A C/C++ a beágyazott rendszerek esetén meghatározó, így ezért is érdemes ezzel a nyelvvel is foglalkozni. A meglévő C-s tesztbemenet-generáló eszközök közül érdemes a KLEE-vel kezdeni, hisz ez az egyik legkifortottab. Mivel a KLEE az LLVM fordítóra épül, így a téma kapcsán meg lehet ismerkedni a fordítóprogramokkal, Linux-szal.

Jelleg: 
Elméleti és gyakorlati
Advisor: 
Zoltán Micskei
Advisor: 
András Vörös
TDK lehetőség: 
TDK lehetőség
Megismerhető technológiák: 
automatikus tesztelés, forráskód-elemzés, LLVM
Előismeretek: 
C/C++
Állapot: 
Folyamatban