The Java2CSP Debugging Tool Utilizing Constraint Solving and Model-Based Diagnosis Principles
Franz Wotawa, Vlad Andrei Dumitru
Abstract: Localizing faults in programs and repairing them is considered a difficult, time-consuming, but necessary activity of software engineering to assure programs fulfilling their expected behavior during operation. In this paper, we introduce the Java2CSP debugging tool implementing the principles of model-based diagnosis for fault localization, which can be accessed over the internet using an ordinary web browser. Java2CSP makes use of a constraint representation of a program together with a failing test case for reporting debugging candidates. The tool supports a non-object-oriented subset of the programming language Java. Java2CSP is not supposed to be used in any production environment. Instead, the tool has been developed for providing a prototypical implementation of a debugger using constraints. We present the underlying foundations behind Java2CSP, discuss some preliminary results, and show how the tool can also be used for test case generation and other applications.