Using Model-Based Diagnosis to Improve Software Testing

We propose a combination of AI techniques to improve software testing. When a test fails, a model-based diagnosis (MBD) algorithm is used to propose a set of possible explanations. We call these explanations diagnoses. Then, a planning algorithm is used to suggest further tests to identify the correct diagnosis. A tester preforms these tests and reports their outcome back to the MBD algorithm, which uses this information to prune incorrect diagnoses. This iterative process continues until the correct diagnosis is returned. We call this testing paradigm Test, Diagnose and Plan (TDP). Several test planning algorithms are proposed to minimize the number of TDP iterations, and consequently the number of tests required until the correct diagnosis is found. Experimental results show the benefits of using an MDP-based planning algorithms over greedy test planning in three benchmarks.

[1]  Zhe Dang,et al.  Information gain of black-box testing , 2011, Formal Aspects of Computing.

[2]  Peter Struss,et al.  Fault-Model-Based Test Generation for Embedded Software , 2007, IJCAI.

[3]  Isolating relevant component interactions with JINSI , 2006, WODA '06.

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

[5]  Marcelo d'Amorim,et al.  Entropy-based test generation for improved fault localization , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[6]  Peter Zoeteweij,et al.  Simultaneous debugging of software faults , 2011, J. Syst. Softw..

[7]  Gordon Fraser,et al.  EvoSuite: automatic test suite generation for object-oriented software , 2011, ESEC/FSE '11.

[8]  Meir Kalech,et al.  Exploring the Duality in Conflict-Directed Model-Based Diagnosis , 2012, AAAI.

[9]  A. Zeller Isolating cause-effect chains from computer programs , 2002, SIGSOFT '02/FSE-10.

[10]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[11]  Rui Abreu,et al.  Zoltar: A Toolset for Automatic Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[12]  Franz Wotawa,et al.  Program Debugging Using Constraints -- Is it Feasible? , 2011, 2011 11th International Conference on Quality Software.

[13]  Rongxin Wu,et al.  ReLink: recovering links between bugs and changes , 2011, ESEC/FSE '11.

[14]  Csaba Szepesvári,et al.  Bandit Based Monte-Carlo Planning , 2006, ECML.

[15]  Martin Burger,et al.  Minimizing reproduction of software failures , 2011, ISSTA '11.

[16]  Markus Stumptner,et al.  A model-based approach to software debugging , 1996 .

[17]  Andrew G. Barto,et al.  Learning to Act Using Real-Time Dynamic Programming , 1995, Artif. Intell..

[18]  Yishay Mansour,et al.  A Sparse Sampling Algorithm for Near-Optimal Planning in Large Markov Decision Processes , 1999, Machine Learning.

[19]  Brian C. Williams,et al.  Conflict-directed A* and its role in model-based embedded systems , 2007, Discret. Appl. Math..

[20]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[21]  Tze-Yun Leong,et al.  Bootstrapping Monte Carlo Tree Search with an Imperfect Heuristic , 2012, ECML/PKDD.

[22]  Peter Zoeteweij,et al.  Spectrum-Based Multiple Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[23]  Rui Abreu,et al.  A dynamic code coverage approach to maximize fault localization efficiency , 2014, J. Syst. Softw..

[24]  Josep Silva A survey on algorithmic debugging strategies , 2011, Adv. Eng. Softw..

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

[26]  Rui Abreu,et al.  An empirical study on the usage of testability information to fault localization in software , 2011, SAC '11.

[27]  Jim Blythe,et al.  An Overview of Planning Under Certainty , 1999, Artificial Intelligence Today.