Identifikation von Test-Klonen
- Type:Bachelorarbeit
- Date:01.04.2013
- Supervisor:
Dipl.-Inform.Wirt. Mathias Landhäußer
- Person in Charge:Johann Böhler
- Links:Links_bearbeiten
Präsentation -
Aufgabe:
Am Lehrstuhl wird ein Verfahren zum automatischen Erzeugen von jUnit-Tests entwickelt. Basierend auf bestehenden Testfällen sollen neue Tests für ungetestete Klassen abgeleitet werden. Die Idee hinter dem Verfahren ist die analoge Anwendbarkeit von Testfällen; Testfälle einer Klasse A können dann auf eine andere Klasse B übertragen werden, ohne dass Entwickler die Tests manuell übertragen müssen. Entwickler können so ein Portfolio an bestehenden und bewährten Testfällen ausschöpfen und erreichen ohne nennenswerten Aufwand eine Grundabdeckung neuer Programmteile.
Entwickler neigen dazu, Testfälle (jUnit o.Ä.) für neue Klassen aus bestehenden Testfällen per Copy&Paste zu erzeugen und dann nur noch abzuwandeln – wir sprechen dann von Test-Klonen. Dies ist vor allem dann der Fall, wenn Programmbibliotheken ähnliche Aufgaben für verschiedene Datentypen erledigen können oder wenn verschiedene Algorithmen mit derselben Ein- und Ausgabe programmiert werden (bspw. Sortieralgorithmen).
Sie entwickeln ein Verfahren, das Test-Klone in Programmen entdeckt. Hierbei gehen Sie ähnlich vor, wie bei der Plagiatssuche (z.B. wie bei JPlag), d.h. Sie suchen nicht nach exakten Kopien, sondern lassen kleine Variationen (bspw. Typen von Methodenparametern oder Kommentare) zu. Da Sie nicht auf Quelltext-Ebene sondern auf der AST-Ebene arbeiten, können sie „sehr ähnliche“ Test-Klone direkt markiere – weniger ähnliche Testfälle markieren sie als „Vielleicht-Klon“ zur späteren manuellen Analyse.
Voraussetzungen:
Um für die Anfertigung dieser programmierlastigen Arbeit gerüstet zu sein, verfügen Sie über Programmiererfahrung in Java und kennen sich mit Softwaretests aus. Sie haben keine Angst vor Arbeiten im Team und scheuen sich nicht, neue, Ihnen unbekannte Techniken einzusetzen. Außerdem zögern Sie nicht, eine E-Mail zur Vereinbarung eines ersten Gesprächs zu schreiben, in welchem ich Ihnen unverbindlich Details und einen persönlichen Eindruck unserer Arbeit geben werde.
Arbeitsumgebung:
Informatikerfreundliche Arbeitsumgebung
- Redundante Kaffeemaschinenanbindung
- Klimatisierter Poolraum
- Gut ausgebaute Süßigkeiteninfrastruktur