Effective Software Fault Localization by Statistically Testing the Program Behavior Model

  • Azam Peyvandi-Pour
  • Saeed Parsa
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7030)


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.


Statistical Fault Localization Weighted Graph Parametric and Non-parametric Hypothesis testing Normality test 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Zhenyu, Z., Chan, W.K., Tse, T.H., Hu, P., Wang, X.: Is non-parametric hypothesis testing model robust for statistical fault localization? Journal of Information and Software Technology 51(11), 1573–1585 (2009)CrossRefGoogle Scholar
  2. 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. 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. 4.
    Liblit, B.: Cooperative Bug Isolation. PhD thesis, University of California, Berkeley (2004)Google Scholar
  5. 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
  6. 6.
    Fei, L., Lee, K., Li, F., Midkiff, S.P.: Argus: Online Statistical Bug Detection. In: Baresi, L., Heckel, R. (eds.) FASE 2006. LNCS, vol. 3922, pp. 308–323. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 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. 8.
    Freund, J.E., Miller, I., Miller, M.: Mathematical statistics with applications, 7th edn. Prentice Hall (2004)Google Scholar
  9. 9.
    Software-artifact infrastructure repository,
  10. 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. 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. 12.
    Casella, G., Berger, R.: Statistical Inference, 2nd edn., Duxbury (2001)Google Scholar
  13. 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
  14. 14.
    Renieris, M., Reiss, S.P.: Fault localization with nearest neighbor queries. In: Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003), pp. 30–39. IEEE Computer Society Press, Los Alamitos (2003)CrossRefGoogle Scholar
  15. 15.
    Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann, San Francisco (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Azam Peyvandi-Pour
    • 1
  • Saeed Parsa
    • 1
  1. 1.IUSTIran

Personalised recommendations