Programhibák stack trace-alapú hasonlóság vizsgálata

OData támogatás
Konzulens:
Marton József Ernő
Távközlési és Médiainformatikai Tanszék

Manapság egyre többen fejlesztenek alkalmazásokat, így több és több hibába ütköznek a fejlesztők a fejlesztés, illetve az alkalmazás futtatása során, mint korábban. A különböző futtatókörnyezetek eltérő módon jelzik a felhasználónak illetve a fejlesztőnek, amennyiben hiba történt.

A Java virtuális gép (Java Virtual Machine, JVM) ún. stack trace segítségével írja le a problémát és annak forrását. A stack trace különböző információkat hordoz, megtalálható benne a kivétel típusa, a kivételhez tartozó üzenet, illetve a hívási lánc.

A szakdolgozatomban arra kerestem a megoldást, hogy miképp lehet okozatuk szerint a stack trace-ket csoportosítani. Ezáltal a fejlesztők sokkal egyszerűbben tudnák a hibákat megoldani, hiszen egy specifikus tudásbázisban való kereséstől relevánsabb találatokat várok, mint az általános célú webes keresőktől.

Három különböző lehetőséget vizsgáltam meg, amelyből kettő nem felügyelt gépi tanuláson alapult, míg a harmadik általam megadott szabályokon alapult. Mindkét gépi tanuláson alapuló osztályozás a K-közép alapú klaszterezést használta, a különbség a kettő között a klaszterezéshez használt vektorok létrehozásában volt. A harmadik, szabály alapú csoportosítás a hívási láncok előtag alapú csoportosításán alapult.

Az eredmények alapján elmondható, hogy a nem felügyelt, gépi tanuláson alapuló csoportosítás mindössze 25%-os pontosságot tudott elérni a validációs mintahalmazon, míg a szabály alapú csoportosítás 75%-os pontosságot ért el. Az eredmények elemzése során megállapítottam, hogy a szabályokon alapuló csoportosítás azért teljesített jobban, mivel stack trace-k hasonlóság vizsgálata során sikerült egy olyan szabályrendszert felállítanom, amely képes volt a hívásiláncok közötti hasonlóságokat hatékonyabban kimutatni.

Összességében elmondható, hogy a stack trace alapú hasonlóság vizsgálathoz a szabály alapú osztályozás hatékonyabban alkalmazható, viszont ez az osztályozás csupán egy prototípus, mely számtalan további fejlesztési lehetőségeket hordoz magában, amiről a továbbiakban érdemes elgondolkozni.

Letölthető fájlok

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