Debugging and test case generation using constraints and mutations

The automation of debugging, i.e., fault localization, is an old but still open challenge in computer science. There are a number of at least partial solutions reported in literature. Some of them rely on basic concepts of AI like model-based debugging or debugging based on constraints. In this paper we focus on constraint-based debugging, provide a detailed formal introduction of the basic ideas and concepts, and finally state the automated debugging challenge as a constraint satisfaction problem. Although the proposed solution is general, the approach is more applicable to restricted programs like the one used in control. Furthermore, we introduce an extension of previous work that is based on program mutations and distinguishing test cases and discuss empirical results indicating the applicability of the approach. With the introduced extensions we obtain reductions in the number of diagnosis candidates of more than 50 %.

[1]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[2]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[3]  W. Eric Wong,et al.  Using Mutation to Automatically Suggest Fixes for Faulty Programs , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[4]  Franz Wotawa,et al.  Does Testing Help to Reduce the Number of Potentially Faulty Statements in Debugging? , 2010, TAIC PART.

[5]  Gregg Rothermel,et al.  Empirical Studies of a Safe Regression Test Selection Technique , 1998, IEEE Trans. Software Eng..

[6]  Franz Wotawa,et al.  How to debug sequential code by means of constraint representation , 2008 .

[7]  Ian P. Gent,et al.  Minion: A Fast Scalable Constraint Solver , 2006, ECAI.

[8]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[9]  Rafael M. Gasca,et al.  Diagnosing Errors in DbC Programs Using Constraint Programming , 2005, CAEPIA.

[10]  Hélène Collavizza,et al.  Exploring Different Constraint-Based Modelings for Program Verification , 2007, CP.

[11]  Brian C. Williams,et al.  Diagnosing Multiple Faults , 1987, Artif. Intell..

[12]  Name M. Lastname Automatically Finding Patches Using Genetic Programming , 2013 .

[13]  Daniele Theseider Dupré,et al.  Model-Based Diagnosis Meets Error Diagnosis in Logic Programs , 1993, IJCAI.

[14]  W. Mayer,et al.  Prioritising Model-Based Debugging Diagnostic Reports , 2008 .