Exoneration-based fault localization for SQL predicates

Abstract Spectrum-based fault localization (SFL) techniques automatically localize faults in program entities (statements, predicates, SQL clauses, etc.) by analyzing information collected from test executions. One application of SFL techniques is to find faulty SQL statements in database applications. However, prior techniques treated each SQL statement as one program entity, thus they could not find faulty elements inside SQL statements. Since SQL statements can be complex, identifying the faulty element within a faulty SQL statement is still time-consuming. In our previous paper, we developed a novel fault localization method based on row-based dynamic slicing and delta debugging techniques that can localize faults in individual clauses within SQL predicates. We call this technique exoneration-based fault localization because it can exonerate “innocent” elements and precisely identify the faulty element, whereas previous SFL techniques simply ranked all the elements in an SQL statement based on suspiciousness. This paper improves the exoneration-based fault localization technique with a new algorithm that considerably reduces the execution time. We also conducted an empirical study that compared nine existing SFL techniques with the exoneration-based technique in localizing faulty clauses in SQL predicates. Results indicate that the new exoneration-based technique surpasses the other techniques both in terms of effectiveness and efficiency.

[1]  Xiangyu Zhang,et al.  Locating faults through automated predicate switching , 2006, ICSE.

[2]  Amihai Motro,et al.  Localizing Faults in SQL Predicates , 2017, 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[3]  Mangala Gowri Nanda,et al.  Fault localization for data-centric programs , 2011, ESEC/FSE '11.

[4]  Baowen Xu,et al.  A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization , 2013, TSEM.

[5]  Andreas Zeller,et al.  Simplifying and Isolating Failure-Inducing Input , 2002, IEEE Trans. Software Eng..

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

[7]  T. H. Tse,et al.  Non-parametric statistical fault localization , 2011, J. Syst. Softw..

[8]  Friedrich Steimann,et al.  More Debugging in Parallel , 2014, 2014 IEEE 25th International Symposium on Software Reliability Engineering.

[9]  Gregory M. Kapfhammer,et al.  Localizing SQL faults in database applications , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[10]  Rui Abreu,et al.  Constraint-based Debugging of Spreadsheets , 2012, CIbSE.

[11]  David Lo,et al.  Theory and Practice, Do They Match? A Case with Spectrum-Based Fault Localization , 2013, 2013 IEEE International Conference on Software Maintenance.

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

[13]  Hinrich Schütze,et al.  Introduction to information retrieval , 2008 .

[14]  Hung Viet Nguyen,et al.  Database-Aware Fault Localization for Dynamic Web Applications , 2013, 2013 IEEE International Conference on Software Maintenance.

[15]  Rajiv Gupta,et al.  Fault localization using value replacement , 2008, ISSTA '08.

[16]  Mary Jean Harrold,et al.  Empirical evaluation of the tarantula automatic fault-localization technique , 2005, ASE.

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

[18]  Shin Yoo,et al.  Ask the Mutants: Mutating Faulty Programs for Fault Localization , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[19]  Suzanne M. Embury,et al.  Diagnosing faults in embedded queries in database applications , 2012, EDBT-ICDT '12.

[20]  Dianxiang Xu,et al.  Towards Better Fault Localization: A Crosstab-Based Statistical Approach , 2012, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[21]  A.J.C. van Gemund,et al.  On the Accuracy of Spectrum-based Fault Localization , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[22]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[23]  Mary Jean Harrold,et al.  Debugging in Parallel , 2007, ISSTA '07.

[24]  Eunseok Lee,et al.  Empirical evaluation of existing algorithms of spectrum based fault localization , 2014, The International Conference on Information Networking 2014 (ICOIN2014).

[25]  Chao Liu,et al.  SOBER: statistical model-based bug localization , 2005, ESEC/FSE-13.

[26]  Rui Abreu,et al.  A Survey on Software Fault Localization , 2016, IEEE Transactions on Software Engineering.

[27]  Chao Liu,et al.  Statistical Debugging: A Hypothesis Testing-Based Approach , 2006, IEEE Transactions on Software Engineering.

[28]  A. Jefferson Offutt,et al.  A logic mutation approach to selective mutation for programs and queries , 2011, Inf. Softw. Technol..

[29]  Michael I. Jordan,et al.  Scalable statistical bug isolation , 2005, PLDI '05.

[30]  Martin Monperrus,et al.  A critical review of "automatic patch generation learned from human-written patches": essay on the problem statement and the evaluation of automatic software repair , 2014, ICSE.

[31]  Lee Naish,et al.  A model for spectra-based software diagnosis , 2011, TSEM.

[32]  Lee Naish,et al.  Spectral Debugging with Weights and Incremental Ranking , 2009, 2009 16th Asia-Pacific Software Engineering Conference.

[33]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.