Abstract
Now-a-days, failure of the software is unavoidable due to increasing size and complexity of software. So, fault finding is necessary for removing the software faults. Spectrum-based fault localization is most popular technique to find the faulty statements of a given program. Still, there are some limitations also. In case of large software, it is very hard and time taking to test all possible scenarios via traditional approach. The machine learning model is an interesting approach for solving this. Recently, deep learning is widely used for improving the fault finding techniques. Deep learning models are based on the architecture of neural network. The neural network architectures based on input layer, hidden layer(s) and output layer. Convolution Neural Network (CNN) is a well-known architecture for deep learning. The network is trained with large amounts of data and neural network architectures that learn the features directly from the information. So, there is no need of manual feature extraction. This technique can capable of finding the suspicious score of each program statement. Using this technique, we can collect the large amount of data from the test cases and extract the important features. As pooling layer of CNN model reduces the input size and complexity of the model, so it speeds up the training process. This framework can also be able to calculate the suspicious score of each statement and accordingly assign the rank.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
F. Agostinelli, M. Hoffman, P. Sadowski, P. Baldi, Learning activation functions to improve deep neural networks. ArXiv preprint arXiv:1412.6830 (2014)
D. Britz, Understanding convolutional neural networks for NLP (2015). http://www.wildml.com/2015/11/understanding-convolutional-neuralnetworks-for-nlp/. Visited on 11 July 2015
J. Campos, A. Riboira, A. Perez, R. Abreu, Gzoltar: an eclipse plug-in for testing and debugging. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ACM, 2012), pp. 378–381
S. Chakraborty, Y. Li, M. Irvine, R. Saha, B. Ray, Entropy guided spectrum based bug localization using statistical language model. ArXiv preprint arXiv:1802.06947 (2018)
N. Chauhan, Software Testing: Principles and Practices (Oxford University Press, 2010)
H.A. de Souza, M.L. Chaim, F. Kon, Spectrum-based software fault localization: a survey of techniques, advances, and challenges. ArXiv preprint arXiv:1607.04347 (2016)
H.F. Eniser, S. Gerasimou, A. Sen, Deepfault: fault localization for deep neural networks. ArXiv preprint arXiv:1902.05974 (2019)
P. Fritzson, N. Shahmehri, M. Kamkar, T. Gyimothy, Generalized algorithmic debugging and testing. ACM Lett. Programm. Lang. Syst. (LOPLAS) 1(4), 303–322 (1992)
M.W. Gardner, S. Dorling, Artificial neural networks (the multilayer perceptron) a review of applications in the atmospheric sciences. Atmos. Environ. 32(14–15), 2627–2636 (1998)
X. Glorot, Y. Bengio, Understanding the difficulty of training deep feedforward neural networks, in Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics (2010), pp. 249–256
I. Goodfellow, Y. Bengio, A. Courville, Deep Learning (MIT Press, 2016)
X. Guo, L. Chen, C. Shen, Hierarchical adaptive deep convolution neural network and its application to bearing fault diagnosis. Measurement 93, 490–502 (2016)
R. Hecht-Nielsen, Theory of the backpropagation neural network, in Neural Networks for Perception (Elsevier, 1992), pp. 65–93
G.E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, R.R. Salakhutdinov, Improving neural networks by preventing co-adaptation of feature detectors. ArXiv preprint arXiv:1207.0580 (2012)
S. Hochreiter, The vanishing gradient problem during learning recurrent neural nets and problem solutions. Int. J. Uncertainty Fuzziness Knowl.-Based Syst. 6(02), 107–116 (1998)
A.K. Jain, J. Mao, K. Mohiuddin, Artificial neural networks: a tutorial. Computer 3, 31–44 (1996)
A. Krizhevsky, I. Sutskever, G.E. Hinton, Imagenet classification with deep convolutional neural networks, in Advances in Neural Information Processing Systems (2012), pp. 1097–1105
Y. LeCun, Y. Bengio, G. Hinton, Deep learning. Nature 521(7553), 436 (2015)
B.K. Natarajan, Machine Learning: A Theoretical Approach (Elsevier, 2014)
S.K. Pal, S. Mitra, Multilayer perceptron, fuzzy sets, and classification. IEEE Trans. Neural Netw. 3(5), 683–697 (1992)
H.L. Ribeiro, H.A. de Souza, R.P.A. de Araujo, M.L. Chaim, F. Kon, Jaguar: a spectrum-based fault localization tool for real-world software, in 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST) (IEEE, 2018), pp. 404–409
J. Singh, P.M. Khilar, D.P. Mohapatra, Code refactoring using slice-based cohesion metrics and aspect-oriented programming. Int. J. Bus. Inf. Syst. 27(1), 45–68 (2018)
D.F. Specht, Probabilistic neural networks. Neural Netw. 3(1), 109–118 (1990)
C. Szegedy, A. Toshev, D. Erhan, Deep neural networks for object detection, in Advances in Neural Information Processing Systems (2013), pp. 2553–2561
G.M. Wambugu, K. Mwiti, Automatic debugging approaches: a literature review (2017)
W.E. Wong, V. Debroy, R. Gao, Y. Li, The dstar method for effective software fault localization. IEEE Trans. Reliab. 63(1), 290–308 (2014)
W. Zaremba, I. Sutskever, O. Vinyals, Recurrent neural network regularization. ArXiv preprint arXiv:1409.2329 (2014)
M. Zhang, X. Li, L. Zhang, S. Khurshid, Boosting spectrum-based fault localization using pagerank, in Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ACM, 2017), pp. 261–272
Z. Zhang, Y. Lei, X. Mao, P. Li, in CNN-FL: an effective approach for localizing faults using convolutional neural networks, in 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) (IEEE, 2019), pp. 445–455
Z. Zhang, Y. Lei, Q. Tan, X. Mao, P. Zeng, X. Chang, Deep learning-based fault localization with contextual information. IEICE Trans. Inf. Syst. 100(12), 3027–3031 (2017b)
W. Zheng, D. Hu, J. Wang, Fault localization analysis based on deep neural network, in Mathematical Problems in Engineering (2016)
Y. Zheng, Z. Wang, X. Fan, X. Chen, Z. Yang, Localizing multiple software faults based on evolution algorithm. J. Syst. Softw. 139, 107–123 (2018)
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Ghosh, D., Singh, J. (2020). A Novel Approach of Software Fault Prediction Using Deep Learning Technique. In: Automated Software Engineering: A Deep Learning-Based Approach. Learning and Analytics in Intelligent Systems, vol 8. Springer, Cham. https://doi.org/10.1007/978-3-030-38006-9_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-38006-9_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-38005-2
Online ISBN: 978-3-030-38006-9
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)