This is an archive of the old software engineering chair at Saarland University. It is no longer up-to-date.

Locating Failure-Inducing Code Changes in an Industrial Environment
by Martin Burger

Saarland University, December 2005. Diploma Thesis.

Download as PDF file.

See also

More information is available at http://ddchange.martin-burger.de/.

Abstract

A regression is a common type of failure that occurs while changing source code of a working program: "Yesterday, your program worked. Today, it does not. Why?" Manual debugging of regressions is costly in terms of labour and time, it annoys developers and costs organisations lot of money. This thesis presents a platform that integrates seamlessly automated determination of failure-inducing code changes with common development processes. Automated determination may increase efficiency, improve productivity, while saving time and money. Because established processes need not to be adapted, start-up costs and risks are low. The platform supplies two tools in form of plug-ins. A Eclipse plug-in integrates automated determination of failure-inducing changes with a prominent IDE. As soon as a unit test fails, it can be debugged automatically. A Maven plug-in enriches continuous building and testing with automated debugging. Instead of a simple failure report, we obtain valuable information about failure-inducing changes-without lifting a finger: "The failure cause is the change in line 37 of file StringUtils.java." The plug-ins are instances of a framework that contains all basic functionality in order to build tools that enable automatic determination of failure-inducing changes. Using that framework, implementing new tools that debug other types of failure is quite easy and simple-again saving time and money.

BibTeX Entry

@mastersthesis{burger-thesis-2005,
    title = "Locating Failure-Inducing Code Changes in an Industrial Environment",
    author = "Martin Burger",
    year = "2005",
    month = dec,
    school = "Saarland University",
    type = "Diploma Thesis",
}

Show all publications of the Software Engineering Chair.