Advertisement

Software fault localization using BP neural network based on function and branch coverage

  • Abha Maru
  • Arpita DuttaEmail author
  • K. Vinod Kumar
  • Durga Prasad Mohapatra
Special Issue
  • 20 Downloads

Abstract

Software failure is inevitable with the increase in scale and complexity of the software. Existing fault localization techniques based on neural networks take statement coverage information and test case execution results into account to train the network. In this paper, we propose an effective approach for fault localization based on back-propagation neural network which utilizes branch and function coverage information along with test case execution results to train the network. We investigated our approach using Siemens suite. Our experimental result shows that our proposed approach performs on average 23.50–44.27% better than existing fault localization techniques.

Keywords

Back-propagation neural network (BPNN) Debugging Fault localization Successful test case Failed test case Predicate Clause 

Notes

References

  1. 1.
    Mall R (2018) Fundamentals of software engineering. PHI Learning Pvt. Ltd., New DelhiGoogle Scholar
  2. 2.
    Wong WE, Gao R, Li Y, Abreu R, Wotawa F (2016) A survey on software fault localization. IEEE Trans Softw Eng 42(8):707–40.  https://doi.org/10.1109/TSE.2016.2521368 CrossRefGoogle Scholar
  3. 3.
    Weiser M (1981) Program slicing. In: Proceedings of the 5th international conference on software engineering (ICSE). IEEE Press, pp 439–449Google Scholar
  4. 4.
    Agrawal H, DeMillo RA, Spafford EH (1993) Debugging with dynamic slicing and backtracking. Softw Pract Exp 23(6):589–616CrossRefGoogle Scholar
  5. 5.
    Lyle R (1987) Automatic program bug location by program slicing. In: Proceedings 2nd international conference on computers and applications, pp 877–883Google Scholar
  6. 6.
    Gupta R, Soffa ML (1995) Hybrid slicing: an approach for refining static slices using dynamic information. ACM SIGSOFT Softw Eng Notes 20(4):29–40CrossRefGoogle Scholar
  7. 7.
    de Souza HA, Chaim ML, Kon F (2016) Spectrum-based software fault localization: a survey of techniques, advances, and challenges. arXiv preprint arXiv:1607.04347
  8. 8.
    Wong WE, Debroy V, Gao R, Li Y (2014) The DStar method for effective software fault localization. IEEE Trans Reliab 63(1):290–308CrossRefGoogle Scholar
  9. 9.
    Jones JA, Harrold MJ (2005) Empirical evaluation of the tarantula automatic fault-localization technique. In: Proceedings of the 20th IEEE/ACM international conference on automated software engineering (ASE). ACM, pp 273–282Google Scholar
  10. 10.
    Jones JA, Harrold MJ, Stasko J (2002) Visualization of test information to assist fault localization. In: Proceedings of the 24th international conference on software engineering, (ICSE). IEEE, pp 467–477Google Scholar
  11. 11.
    Ascari LC, Araki LY, Pozo AR, Vergilio SR (2009) Exploring machine learning techniques for fault localization. In: Proceedings of 10th Latin American test workshop, LATW’09. IEEE, pp 1–6Google Scholar
  12. 12.
    Feng M, Gupta R (2010) Learning universal probabilistic models for fault localization. In: Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on program analysis for software tools and engineering. ACM, pp 81–88Google Scholar
  13. 13.
    Wong WE, Qi Y (2009) BP neural network-based effective fault localization. Int J Softw Eng Knowl Eng 19(04):573–97CrossRefGoogle Scholar
  14. 14.
    Duda RO, Hart PE, Stork DG (2012) Pattern classification. Wiley, HobokenzbMATHGoogle Scholar
  15. 15.
    Hecht-Nielsen R (1989) Theory of the backpropagation neural network. In: Proceedings of 1989 international joint conference on neural networks, Washington, DC, pp 593–605Google Scholar
  16. 16.
    Wong WE, Debroy V, Golden R, Xu X, Thuraisingham B (2012) Effective software fault localization using an RBF neural network. IEEE Trans Reliab 61(1):149–69CrossRefGoogle Scholar
  17. 17.
    Cleve H, Zeller A (2005) Locating causes of program failures. In: Proceedings of IEEE international conference on software engineering, pp 342–351Google Scholar
  18. 18.
    Gupta N, He H, Zhang X, Gupta R (2005) Locating faulty code using failure-inducing chops. In: Proceedings of international conference on automated software engineering, Long Beach, CA, USA, pp 263–272.  https://doi.org/10.1145/1101908.1101948
  19. 19.
    Sumner WN, Zhang X (2010) Memory indexing: canonicalizing addresses across executions. In: Proceedings of the 18th ACM SIGSOFT international symposium on foundations of software engineering, Santa Fe, NM, USA.  https://doi.org/10.1145/1882291.1882324
  20. 20.
    Sumner WN, Zhang X (2009) Algorithms for automatically computing the causal paths of failures. In: Proceedings of international conference on fundamental approaches to software engineering (FASE), U.K., pp 335–369Google Scholar
  21. 21.
    Maru A, Dutta A, Kumar V, Mohapatra DP (2018) Effective software fault localization using a back-propagation neural network. In: Proceedings of 5th international conference on computational intelligence and data mining, Burla, vol 990. Springer, pp 1–10.  https://doi.org/10.1007/978-981-13-8676-3_44 Google Scholar
  22. 22.
  23. 23.
    Roychowdhury S, Khurshid S (2011) Software fault localization using feature selection. In: Proceedings of the international workshop on machine learning technologies in software engineering. ACM, pp 11–18Google Scholar
  24. 24.
    Nath A, Domingos PM (2016) Learning tractable probabilistic models for fault localization. In: Proceedings of AAAI(association for the advancement of artificial intelligence), pp 1294–1301Google Scholar
  25. 25.
    Nessa S, Abedin M, Wong WE, Khan L, Qi Y (2009) Fault localization using N-gram analysis. In: Proceedings of international conference on wireless algorithms, systems, and applications (WASA), pp 548–559CrossRefGoogle Scholar
  26. 26.
    Cellier P, Ducassé M, Ferré S, Ridoux O (2011) Multiple fault localization with data mining. In: Proceedings of international conference on software engineering and knowledge engineering (SEKE), pp 238–243Google Scholar
  27. 27.
    Jordan MI, Mitchell TM (2015) Machine learning: trends, perspectives, and prospects. Science 349(6245):255–260MathSciNetCrossRefGoogle Scholar
  28. 28.
    Neural Network Toolbox (2006) User guide, The MathWorks IncGoogle Scholar
  29. 29.
    Blum A (1992) Neural Networks in C++. Wiley, New YorkGoogle Scholar
  30. 30.
    Berry MJA, Linoff G (1997) Data mining techniques. Wiley, New YorkGoogle Scholar
  31. 31.
    Naish L, Jie Hua, Kotagiri R (2011) A model for spectra-based software diagnosis. ACM TOSEM 20(3):11CrossRefGoogle Scholar
  32. 32.
    Wong WE, Debroy V, Xu D (2012) Towards better fault localization: a crosstab-based statistical approach. IEEE Trans Syst Man Cybern Part C (Appl Rev) 42(3):378–396CrossRefGoogle Scholar
  33. 33.
    Hennessy JL, Patterson DA (2011) Computer architecture: a quantitative approach. Elsevier, AmsterdamzbMATHGoogle Scholar
  34. 34.
    Wong WE, Wei T, Qi Y, Zhao L (2018) A crosstab-based statistical method for effective fault localization. In: Proceedings of 1st international conference on software testing, verification, and validation, Lillehammer, Norway, pp 42–51Google Scholar
  35. 35.
    Renieres M, Reiss SP (2003) Fault localization with nearest neighbor queries. In: Proceedings of 18th international conference on automated software engineering, pp 30–39. IEEEGoogle Scholar
  36. 36.
    Yu X, Jin L, Zijiang Y, Xiao L (2017) The Bayesian network based program dependence graph and its application to fault localization. J Syst Softw 134:44–53CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  1. 1.DOS Lab, Department of Computer Science and EngineeringNational Institute of Technology RourkelaRourkelaIndia
  2. 2.GRL, Department of Computer Science and EngineeringIndian Institute of Technology KharagpurKharagpurIndia
  3. 3.RS Lab, Department of Computer Science and EngineeringNational Institute of Technology RourkelaRourkelaIndia

Personalised recommendations