Software Fault Localization Using Elastic Net: A New Statistical Approach
Fault localization is an important task in software testing process. The aim is to find latent semantic faults which do not violate program syntactic rules. Statistical debugging techniques are amongst best methods for identifying faults in the program source code. However, they have some drawbacks. They require a large number of executions to identify faults. Furthermore, they do not consider the simultaneous effect of predicates on program termination status. To resolve the problems, in this paper a new approach based on elastic net has been proposed. The proposed approach finds the smallest effective subset of program predicates known as bug predictors. Detecting most effective bug predictors considering fewer amounts of executions as much as possible is highly desirable. The elastic net is advantageous when the number of executions is much smaller than the number of predicates. After selecting bug predictors, the main causes of faults are detected by using existing program slicing technique. The experimental results on two well-known test suites reveal the effectiveness and accuracy of the proposed approach.
KeywordsSoftware Testing Statistical debugging Elastic Net Program Slicing Bug Predictors
Unable to display preview. Download preview PDF.
- 1.Del Mol, C., De Vito, E., Rosasco, L.: Elastic-Net regularization in Learning Theory, technical report, MIT press (2008)Google Scholar
- 2.Liblit, B.: Cooperative Bug Isolation. PhD thesis, University of California, Berkeley (2004)Google Scholar
- 3.Liu, C., Yan, X., Fei, L., Han, J., Midkiff, S.P.: Sober: Statistical model-based bug localization. In: 10th European Software Eng. Conf./13th ACM SIGSOFT Int’l Symposium Foundations of Software Engineering, Lisbon, pp. 286–295 (2005)Google Scholar
- 4.Liblit, B., Naik, M., Zheng, A., Aiken, A., Jordan, M.: Scalable Statistical Bug Isolation. In: Int’l Conference Programming Language Design and Implementation, Chicago, pp. 15–26 (2005)Google Scholar
- 5.Arumuga Nainar, P., Chen, T., Rosin, J., Liblit, B.: Statistical debugging using compound Boolean predicates. In: International Symposium on Software Testing and Analysis, pp. 5–15. ACM Press, London (2007)Google Scholar
- 7.Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann, San Francisco (2006)Google Scholar