Title
Automatische Erzeugung von Unit Tests für Klassen mit Umgebungs-Abhängigkeiten.
Abstract
Die automatische Erzeugung von Tests fur objektorientierte Software besteht typischerweise aus der Erstellung von Sequenzen von Methodenaufrufen um hohe Codeabdeckung zu erzielen. In der Praxis konnte der Erfolg dieses Prozesses eingeschrankt sein, wenn Klassen mit ihrer Umgebung, wie zum Beispiel dem Dateisystem, dem Netzwerk oder Nutzern interagieren. Das furt zu zwei grosen Problemen. Erstens kann Code, der von der Umgebung abhangt, manchmal nicht voll abgedeckt werden indem einfach nur Sequenzen von Methodenaufrufen generiert werden. Das ist zum Beispiel der Fall, wenn die Ausfuhrung eines Zweigs von dem Inhalt einer Datei abhangt. Zweitens konnen, auch wenn Code, der von der Umgebung abhangt, abgedeckt wird, die generierten Tests unstabil sein, d.h. sie wuden durchlaufen wenn sie generiert werden aber missglucken wenn sie zu einer anderen Zeit ausgefuhrt werden. In dieser Arbeit nutzen wir Bytecodeinstrumentierung um Code automatisch von seinen Umgebungsabhanigkeiten zu trennen, und erweitern das EVOSUITE Javatesterzeugungswerkzeug so, das es als Teil der generierten Aufrufsequenzen explizit den Zustand der Umgebung modifizieren kann. Indem wir eine Prototypimplementierung nutzen, die eine grose Anzahl an Umgebungsinteraktionen handhaben, wie mit dem Dateisystem, Konsoleneingaben und vielen nicht-deterministischen Funktionen der Java Virtual Machine (JVM), haben wir Experimente mit 100 zufallig ausgewahlten Java Projekten von SourceForge durchgefuhrt (dem SF100 corpus). Die Ergebnisse zeigen signifikant bessere Codeabdeckung — in manchen Fallen sogar bis zu +80% / +90%. Daruber hinaus hat unsere Methode die Anzahl unstabiler Tests um mehr als 50% reduziert.
Year
Venue
Field
2015
Software Engineering & Management
Humanities,Art,Java virtual machine
DocType
Citations 
PageRank 
Conference
0
0.34
References 
Authors
0
3
Name
Order
Citations
PageRank
Andrea Arcuri1263092.48
Gordon Fraser22625116.22
Juan Pablo Galeotti31479.54