Software Bug Localization Based on Key Range Invariants

Bug localization is expensive and time-consuming during software debugging. The traditional software bug localization based on range invariants need to monitor all variables in the system, requires a large of runtime overhead. However, this overhead is not necessary. Because only a set of key variables can really affect the results of the system. Therefore, this paper proposes a software bug localization method based on key range invariants. First, add the key variables screening phase in the original method. By combining the dynamic filtering mechanism with the static reduction mechanism, the key variables set of the program are screened. Then, the values of the key variables in all successful test cases are counted to obtain the key range invariants. Finally, bug localization is performed by monitoring the values of the key variables in failure test cases. When we need to minimize the overhead of monitoring variables, we can use this method to ignore variables that are considered unimportant. The experimental results show that, the method can still maintain a good bug localization effect only monitoring the key variable set, which verifies the effectiveness of the method.

[1]  Sudheendra Hangal,et al.  Tracking down software bugs using automatic anomaly detection , 2002, ICSE '02.

[2]  Min Xie,et al.  A Study of the Effect of Imperfect Debugging on Software Development Cost , 2003, IEEE Trans. Software Eng..

[3]  Rui Abreu,et al.  Lightweight Automatic Error Detection by Monitoring Collar Variables , 2012, ICTSS.

[4]  Wes Masri,et al.  Cleansing Test Suites from Coincidental Correctness to Enhance Fault-Localization , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[5]  Peter Zoeteweij,et al.  Using Fault Screeners for Software Error Detection , 2008, ENASE.

[6]  Michael D. Ernst,et al.  Dynamically discovering likely program invariants , 2000 .

[7]  Shubhendu S. Mukherjee,et al.  Perturbation-based Fault Screening , 2007, 2007 IEEE 13th International Symposium on High Performance Computer Architecture.

[8]  Zuohua Ding,et al.  Detecting Bugs of Concurrent Programs With Program Invariants , 2017, IEEE Trans. Reliab..

[9]  Kai Yu,et al.  Advances in Automatic Fault Localization Techniques: Advances in Automatic Fault Localization Techniques , 2011 .

[10]  Noah Treuhaft,et al.  Recovery Oriented Computing (ROC): Motivation, Definition, Techniques, and Case Studies , 2002 .

[11]  Raúl A. Santelices,et al.  Lightweight fault-localization using multiple coverage types , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[12]  Shriram Krishnamurthi,et al.  Automated Fault Localization Using Potential Invariants , 2003, ArXiv.

[13]  Hunan Heng Dynamically Discovering Likely Program Invariants Based on the Contract , 2006 .

[14]  Lars Grunske,et al.  A learning-to-rank based fault localization approach using likely invariants , 2016, ISSTA.

[15]  Tim Menzies,et al.  The Strangest Thing About Software , 2007, Computer.

[16]  Peter Zoeteweij,et al.  Automatic software fault localization using generic program invariants , 2008, SAC '08.

[17]  Vikram S. Adve,et al.  Using likely invariants for automated software fault localization , 2013, ASPLOS '13.