Modellbasierte Entwicklung » Experimentelle Auswertung von Unit-Test-Generatoren für Java-Programme
 

Experimentelle Auswertung von Unit-Test-Generatoren für Java-Programme

Bachelorarbeit (abgeschlossen 2024)

Erstbetreuer: Prof. Dr. Malte Lochau

Zweitbetreuer: M. Sc. Robert Müller

Beschreibung

Das umfassende Testen von Java-Anwendungen zur Qualitätssicherung ist ein komplexes Unterfangen, da sie sehr komplex sind und eine umfassende Testabdeckung erforderlich ist. Die manuelle Erstellung hochwertiger, nicht redundanter Unit-Testfälle bei gleichzeitiger effektiver Verwaltung komplizierter Codestrukturen und besondere Szenarien für Java-Code kann arbeitsintensiv und anfällig für menschliche Fehler sein, so dass automatisierte Test-Generatoren als verlockende Lösung auf den Plan traten. Dennoch weisen diese Test-Generatoren unterschiedliche Stärken und Schwächen auf, was eine universelle, unvoreingenommene und faire Methode zur Bewertung und zum Vergleich ihrer Fähigkeiten erforderlich macht. Die JUnit Generation Benchmarking Infrastructure (JUGE) hat es sich zur Aufgabe gemacht, verschiedene Unit-Test-Generatoren unter Verwendung des JUnit-Frameworks hinsichtlich ihrer Effektivität, Effizienz und Fähigkeit, die Herausforderungen bei der Erstellung einer umfassenden Testsuite zu bewältigen, zu bewerten und gleichzeitig einen standardisierten Bewertungsprozess bereitzustellen.

In dieser Arbeit wurden verschiedene Unit-Test-Generatoren analysiert und ihre Algorithmen, Methoden, Eingaben und Ausgaben untersucht, um ihre jeweiligen Stärken und Schwächen zu ermitteln. Durch diese Analyse wurde ein umfassendes Verständnis der zugrundeliegenden Mechanismen der einzelnen Tools gewonnen, das Aufschluss über deren Effektivität und Grenzen gibt. Anschließend wurden diese Instrumente in JUGE integriert. Im Anschluss an diese Integration wurde eine experimentelle Auswertung von vier versprechende Generatoren durchgeführt: Randoop, Evosuite, Evosuite-BBC und AUTCG. Diese Auswertung lieferte Einblicke in ihre Leistungsmetriken, einschließlich Abdeckung, Fehlererkennung, Laufzeiteffizienz und praktischeWirksamkeit unter verschiedenen zeitlichen Einschränkungen.


⇐ Zurück zur Übersicht der Abschlussarbeiten

Aktualisiert um 10:47 am 27. Februar 2024 von Robert