Effective Software Fault Localization by Statistically Testing the Program Behavior Model
Existing Statistical fault localization approaches locate bugs by testing statistical behavior of each predicate and propose fault relevant predicates as nearest points to faults. In this paper, we present a novel statistical approach employing a weighted graph, elicited from run-time information of a program. The predicates are considered as nodes; an edge is denoting a run-time path between two predicates and its label is the number of simultaneous occurrence of connected predicates in the run. Firstly, a typical graph, representing failed run is contrasted with whole graphs of passed runs to find the two most similar graphs of the passed runs and failed runs and discriminative edges are chosen as suspicious edges. In next phase, we statistically test the distribution of the suspicious edges to find the most fault relevant edges; to this end, we apply a normality test on the suspicious edges and based on the test result, we use a parametric or non-parametric hypothesis testing to discover the most fault relevant edges. We conduct the experimental study based on Siemens test suite and the results show the proposing approach is remarkable.
KeywordsStatistical Fault Localization Weighted Graph Parametric and Non-parametric Hypothesis testing Normality test
Unable to display preview. Download preview PDF.
- 2.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
- 3.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
- 4.Liblit, B.: Cooperative Bug Isolation. PhD thesis, University of California, Berkeley (2004)Google Scholar
- 5.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
- 7.Zheng, A.X., Jordan, M.I., Liblit, B., Naik, M., Aiken, A.: Statistical debugging: simultaneous identification of multiple bugs. In: ICML 2006: Proceedings of the 23rd International Conference on Machine Learning, pp. 1105–1112. ACM Press, NY (2006)Google Scholar
- 8.Freund, J.E., Miller, I., Miller, M.: Mathematical statistics with applications, 7th edn. Prentice Hall (2004)Google Scholar
- 9.Software-artifact infrastructure repository, http://sir.unl.edu/portal
- 10.Liu, C., Lian, Z.: How Bayesian Debug. In: Proceedings of the 6th IEEE International Conference on Data Mining ICDM, Hong Kong, China (2006)Google Scholar
- 11.Chilimbi, T.H.: HOLMES: Effective Statistical Debugging via Efficient Path Profiling. In: Proceedings of the International Conference on Software Engineering ICSE, Canada (2009)Google Scholar
- 12.Casella, G., Berger, R.: Statistical Inference, 2nd edn., Duxbury (2001)Google Scholar
- 13.Jones, J.A., Harrold, M.J.: Empirical evaluation of the Tarantula automatic fault localization technique. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005), pp. 273–282. ACM Press, New York (2005)Google Scholar
- 15.Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann, San Francisco (2006)Google Scholar