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.
Similar content being viewed by others
References
Mall R (2018) Fundamentals of software engineering. PHI Learning Pvt. Ltd., New Delhi
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
Weiser M (1981) Program slicing. In: Proceedings of the 5th international conference on software engineering (ICSE). IEEE Press, pp 439–449
Agrawal H, DeMillo RA, Spafford EH (1993) Debugging with dynamic slicing and backtracking. Softw Pract Exp 23(6):589–616
Lyle R (1987) Automatic program bug location by program slicing. In: Proceedings 2nd international conference on computers and applications, pp 877–883
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
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
Wong WE, Debroy V, Gao R, Li Y (2014) The DStar method for effective software fault localization. IEEE Trans Reliab 63(1):290–308
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
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
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
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
Wong WE, Qi Y (2009) BP neural network-based effective fault localization. Int J Softw Eng Knowl Eng 19(04):573–97
Duda RO, Hart PE, Stork DG (2012) Pattern classification. Wiley, Hoboken
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
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
Cleve H, Zeller A (2005) Locating causes of program failures. In: Proceedings of IEEE international conference on software engineering, pp 342–351
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
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
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
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
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
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
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
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
Jordan MI, Mitchell TM (2015) Machine learning: trends, perspectives, and prospects. Science 349(6245):255–260
Neural Network Toolbox (2006) User guide, The MathWorks Inc
Blum A (1992) Neural Networks in C++. Wiley, New York
Berry MJA, Linoff G (1997) Data mining techniques. Wiley, New York
Naish L, Jie Hua, Kotagiri R (2011) A model for spectra-based software diagnosis. ACM TOSEM 20(3):11
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
Hennessy JL, Patterson DA (2011) Computer architecture: a quantitative approach. Elsevier, Amsterdam
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
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
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
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12065-019-00318-2