Bp Neural Network-Based Effective Fault Localization

In program debugging, fault localization identifies the exact locations of program faults. Finding these faults using an ad-hoc approach or based only on programmers' intuitive guesswork can be very time consuming. A better way is to use a well-justified method, supported by case studies for its effectiveness, to automatically identify and prioritize suspicious code for an examination of possible fault locations. To do so, we propose the use of a back-propagation (BP) neural network, a machine learning model which has been successfully applied to software risk analysis, cost prediction, and reliability estimation, to help programmers effectively locate program faults. A BP neural network is suitable for learning the input-output relationship from a set of data, such as the inputs and the corresponding outputs of a program. We first train a BP neural network with the coverage data (statement coverage in our case) and the execution result (success or failure) collected from executing a program, and then we use the trained network to compute the suspiciousness of each executable statement, in terms of its likelihood of containing faults. Suspicious code is ranked in descending order based on its suspiciousness. Programmers will examine such code from the top of the rank to identify faults. Four case studies on different programs (the Siemens suite, the Unix suite, grep and gzip) are conducted. Our results suggest that a BP neural network-based fault localization method is effective in locating program faults.

[1]  Donald E. Neumann An Enhanced Neural Network Technique for Software Risk Analysis , 2002, IEEE Trans. Software Eng..

[2]  Thomas J. Ostrand,et al.  Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria , 1994, Proceedings of 16th International Conference on Software Engineering.

[3]  Andreas Zeller,et al.  Locating causes of program failures , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[4]  Yu Qi,et al.  Smart debugging software architectural design in SDL , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[5]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

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

[7]  Yu Qi,et al.  Effective program debugging based on execution slices and inter-block data dependency , 2006, J. Syst. Softw..

[8]  Klaus-Robert Müller,et al.  Asymptotic statistical theory of overtraining and cross-validation , 1997, IEEE Trans. Neural Networks.

[9]  Lori A. Clarke,et al.  A Formal Evaluation of Data Flow Path Selection Criteria , 1989, IEEE Trans. Software Eng..

[10]  Anneliese Amschler Andrews,et al.  On the use of neural networks to guide software testing activities , 1995, Proceedings of 1995 IEEE International Test Conference (ITC).

[11]  Joseph Robert Horgan,et al.  Effect of Test Set Minimization on Fault Detection Effectiveness , 1995, 1995 17th International Conference on Software Engineering.

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

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

[14]  Joseph Robert Horgan,et al.  Fault localization using execution slices and dataflow tests , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.

[15]  K.S. Narendra,et al.  Intelligent control using neural networks , 1992, IEEE Control Systems.

[16]  David J. C. MacKay,et al.  A Practical Bayesian Framework for Backpropagation Networks , 1992, Neural Computation.

[17]  Nasser Tadayon Neural network approach for software cost estimation , 2005, International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II.

[18]  Laurene V. Fausett,et al.  Fundamentals Of Neural Networks , 1994 .

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

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

[21]  W. Eric Wong,et al.  Effect of test set minimization on fault detection effectiveness , 1998 .

[22]  Gregg Rothermel,et al.  An empirical investigation of the relationship between spectra differences and regression faults , 2000, Softw. Test. Verification Reliab..

[23]  Bin Wang,et al.  Automated support for classifying software failure reports , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[24]  Rahmat Shoureshi,et al.  Neural networks for system identification , 1989, IEEE Control Systems Magazine.

[25]  Lei Zhao,et al.  A Crosstab-based Statistical Method for Effective Fault Localization , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[26]  Robert Hecht-Nielsen,et al.  Theory of the backpropagation neural network , 1989, International 1989 Joint Conference on Neural Networks.

[27]  Eugene H. Spafford,et al.  Debugging with dynamic slicing and backtracking , 1993, Softw. Pract. Exp..

[28]  Rahmat A. Shoureshi,et al.  Neural networks for system identification , 1990 .

[29]  Chin-Yu Huang,et al.  Neural-network-based approaches for software reliability estimation using dynamic weighted combinational models , 2007, J. Syst. Softw..

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

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

[32]  Michael I. Jordan,et al.  Statistical debugging: simultaneous identification of multiple bugs , 2006, ICML '06.

[33]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

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

[35]  Chao Liu,et al.  Failure proximity: a fault localization-based approach , 2006, SIGSOFT '06/FSE-14.

[36]  Snehasis Mukhopadhyay,et al.  Intelligent Control Using Neural Networks , 1991, 1991 American Control Conference.

[37]  Kunihiko Fukushima,et al.  A neural network for visual pattern recognition , 1988, Computer.

[38]  Barry W. Boehm Understanding and Controlling Software Costs , 1988 .

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

[40]  Steven P. Reiss,et al.  Fault localization with nearest neighbor queries , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[41]  David J. C. MacKay,et al.  Bayesian Interpolation , 1992, Neural Computation.

[42]  S. Liong,et al.  GENERALIZATION FOR MULTILAYER NEURAL NETWORK BAYESIAN REGULARIZATION OR EARLY STOPPING , 2004 .