Skip to main content
Log in

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

  • Special Issue
  • Published:
Evolutionary Intelligence Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

Notes

  1. http://man7.org/linux/man-pages/man1/GCOV.1.html.

  2. https://sir.csc.ncsu.edu/portal/index.php.

  3. http://man7.org/linux/man-pages/man1/GCOV.1.htm.

References

  1. Mall R (2018) Fundamentals of software engineering. PHI Learning Pvt. Ltd., New Delhi

    Google Scholar 

  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

    Article  Google Scholar 

  3. Weiser M (1981) Program slicing. In: Proceedings of the 5th international conference on software engineering (ICSE). IEEE Press, pp 439–449

  4. Agrawal H, DeMillo RA, Spafford EH (1993) Debugging with dynamic slicing and backtracking. Softw Pract Exp 23(6):589–616

    Article  Google Scholar 

  5. Lyle R (1987) Automatic program bug location by program slicing. In: Proceedings 2nd international conference on computers and applications, pp 877–883

  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–40

    Article  Google Scholar 

  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. Wong WE, Debroy V, Gao R, Li Y (2014) The DStar method for effective software fault localization. IEEE Trans Reliab 63(1):290–308

    Article  Google Scholar 

  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–282

  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–477

  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–6

  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–88

  13. Wong WE, Qi Y (2009) BP neural network-based effective fault localization. Int J Softw Eng Knowl Eng 19(04):573–97

    Article  Google Scholar 

  14. Duda RO, Hart PE, Stork DG (2012) Pattern classification. Wiley, Hoboken

    MATH  Google Scholar 

  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–605

  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–69

    Article  Google Scholar 

  17. Cleve H, Zeller A (2005) Locating causes of program failures. In: Proceedings of IEEE international conference on software engineering, pp 342–351

  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. 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. 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–369

  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

  22. https://sourceforge.net/projects/weka/

  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–18

  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–1301

  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–559

  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–243

  27. Jordan MI, Mitchell TM (2015) Machine learning: trends, perspectives, and prospects. Science 349(6245):255–260

    Article  MathSciNet  Google Scholar 

  28. Neural Network Toolbox (2006) User guide, The MathWorks Inc

  29. Blum A (1992) Neural Networks in C++. Wiley, New York

    Google Scholar 

  30. Berry MJA, Linoff G (1997) Data mining techniques. Wiley, New York

    Google Scholar 

  31. Naish L, Jie Hua, Kotagiri R (2011) A model for spectra-based software diagnosis. ACM TOSEM 20(3):11

    Article  Google Scholar 

  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–396

    Article  Google Scholar 

  33. Hennessy JL, Patterson DA (2011) Computer architecture: a quantitative approach. Elsevier, Amsterdam

    MATH  Google Scholar 

  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–51

  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. IEEE

  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–53

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Arpita Dutta.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Maru, A., Dutta, A., Kumar, K.V. et al. Software fault localization using BP neural network based on function and branch coverage. Evol. Intel. 14, 87–104 (2021). https://doi.org/10.1007/s12065-019-00318-2

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12065-019-00318-2

Keywords

Navigation