From Predicate Testing to Identify Fault Location for Safety-Critical Software

Statistical fault localization is one of the essential tasks of program debugging, and it has shown that the evaluation history of predicates may disclose important clues about the root cause of failures. However, especially for safety-critical software, there exists evaluation bias using same granularity to measure simple predicates and complex compound predicates. Intuitively, we should use fine-grain predicates to evaluate the suspiciousness of complex compound predicates and reduce the evaluation bias. In this paper, we propose a novel predicate fault localization technique from predicate testing to identify fault location. Based on the predicate fault model, we first generate constraint sets for each predicate and then calculate the suspiciousness of predicates by evaluating their constraint sets. Finally, we sort the suspicious predicates by their suspiciousness. Our preliminary results show that our approach can significantly improve fault predicate absolute ranking.

[1]  Gregg Rothermel,et al.  Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact , 2005, Empirical Software Engineering.

[2]  Yong Li,et al.  Spectrum-Based Fault Localization via Enlarging Non-Fault Region to Improve Fault Absolute Ranking , 2018, IEEE Access.

[3]  Ting Chen,et al.  Statistical debugging using compound boolean predicates , 2007, ISSTA '07.

[4]  Yong Li,et al.  Lightweight fault localization combined with fault context to improve fault absolute rank , 2017, Science China Information Sciences.

[5]  Man F. Lau,et al.  An extended fault class hierarchy for specification-based testing , 2005, TSEM.

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

[7]  T. H. Tse,et al.  Fault localization through evaluation sequences , 2010, J. Syst. Softw..

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

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

[10]  Tolga Ayav,et al.  Prioritizing MCDC test cases by spectral analysis of Boolean functions , 2017, Softw. Test. Verification Reliab..

[11]  W. Eric Wong,et al.  The DStar Method for Effective Software Fault Localization , 2014, IEEE Transactions on Reliability.

[12]  Aditya P. Mathur,et al.  Foundations of Software Testing , 2007 .

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

[14]  Michael D. Ernst,et al.  Evaluating and Improving Fault Localization , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[15]  A. Jefferson Offutt,et al.  Better predicate testing , 2011, AST '11.

[16]  Alessandro Orso,et al.  Are automated debugging techniques actually helping programmers? , 2011, ISSTA '11.

[17]  Gregg Rothermel,et al.  An empirical investigation of the relationship between spectra differences and regression faults , 2000 .

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

[19]  A. Jefferson Offutt,et al.  What to expect of predicates: An empirical analysis of predicates in real world programs , 2016, J. Syst. Softw..

[20]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .