Data-Augmented Software Diagnosis

Software fault prediction algorithms predict which software components is likely to contain faults using machine learning techniques. Software diagnosis algorithm identify the faulty software components that caused a failure using model-based or spectrum based approaches. We show how software fault prediction algorithms can be used to improve software diagnosis. The resulting data-augmented diagnosis algorithm overcomes key problems in software diagnosis algorithms: ranking diagnoses and distinguishing between diagnoses with high probability and low probability. We demonstrate the efficiency of the proposed approach empirically on three open sources domains, showing significant increase in accuracy of diagnosis and efficiency of troubleshooting. These encouraging results suggests broader use of data-driven methods to complement and improve existing model-based methods.

[1]  Rui Abreu,et al.  On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets , 2013, FASE.

[2]  Franz Wotawa,et al.  Avoiding, finding and fixing spreadsheet errors - A survey of automated approaches for spreadsheet QA , 2014, J. Syst. Softw..

[3]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

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

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

[6]  Richard Torkar,et al.  Software fault prediction metrics: A systematic literature review , 2013, Inf. Softw. Technol..

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

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

[9]  P. Pandurang Nayak,et al.  A Model-Based Approach to Reactive Self-Configuring Systems , 1996, AAAI/IAAI, Vol. 2.

[10]  Alexander Feldman,et al.  Model-Based Diagnostic decision-support system for satellites , 2013, 2013 IEEE Aerospace Conference.

[11]  Rui Abreu,et al.  A Low-Cost Approximate Minimal Hitting Set Algorithm and its Application to Model-Based Diagnosis , 2009, SARA.

[12]  Franz Wotawa,et al.  Spectrum Enhanced Dynamic Slicing for better Fault Localization , 2012, ECAI.

[13]  Andreas Zeller,et al.  When do changes induce fixes? , 2005, ACM SIGSOFT Softw. Eng. Notes.

[14]  Dietmar Jannach,et al.  Model-based diagnosis of spreadsheet programs: a constraint-based debugging approach , 2016, Automated Software Engineering.

[15]  Meir Kalech,et al.  Using Model-Based Diagnosis to Improve Software Testing , 2014, AAAI.

[16]  Peter Struss,et al.  Model-Based Systems in the Automotive Industry , 2004, AI Mag..

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

[18]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[19]  Rui Abreu,et al.  AI for the win , 2012, ACM SIGSOFT Softw. Eng. Notes.

[20]  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).

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

[22]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[23]  Rui Abreu,et al.  Using constraints to diagnose faulty spreadsheets , 2014, Software Quality Journal.

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

[25]  Birgit Hofer On the Usage of Dependency-based Models for Spreadsheet Debugging , 2014 .

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

[27]  Franz Wotawa,et al.  Fault Localization Based on Dynamic Slicing and Hitting-Set Computation , 2010, 2010 10th International Conference on Quality Software.

[28]  Thomas G. Dietterich What is machine learning? , 2020, Archives of Disease in Childhood.