Enhancing Prediction Reliability of Software Failure Using Recurrent Neural Networks
Abstract
The prediction of software failures is done by using the historical failures collected previously when they occur. Software failure is said to occur when the software runs in an operational profile. Controlling failures in software require that one can predict problems early enough to take preventive measure. Predicting defective code in the software development process is a crucial aspect of software analytics. Recently, a number of computational approaches were employed to solve this task, modern software is developed with more sizes and functions, and assessing software defects is a remarkably difficult task. These approaches have significantly facilitated the prediction of software defects; however, their performances e.g., mean square error (MSE) and squared correlation coefficient (R2) requires significant improvements. The recently developed deep learning model such as LSTM has shown to be suitable for good performance. This deep learning model do not only deepens the layer levels but can as well adapt to capture the training characteristics. A comprehensive, in-depth study ultimately shows the model can have suitable performance. Thus, this research work proposed a deep learning approach, specifically the novel deep recurrent neural network (MLP-LSTM) in order to enhance the performance of software defect prediction on five benchmark datasets obtained from NASA project available at PROMISE repository portal. We evaluate the performance of the proposed model against the state-of-the-art approach using mean square error (MSE) and error correlation (R2). Simulation results show that the proposed approach achieved an excellent performance in terms of MSE as against the existing work on the benchmark KC2 and MIS dataset. In addition, the proposed approach outperformed the existing approaches in all cases of the software defect datasets (CM1, JM1, KC1, KC2 and PC1) that were used for evaluating the experiment both in terms of MSE and R2.
Full Text:
PDFReferences
Alhazmi, O. H., & Malaiya, Y. K. (2005). Quantitative vulnerability assessment of systems software. Paper presented at the Annual Reliability and Maintainability Symposium, 2005. Proceedings.
Aljahdali, S., & Sheta, A. F. (2011). Predicting the reliability of software systems using fuzzy logic. Paper presented at the 2011 Eighth International Conference on Information Technology: New Generations.
Ashour, M. A. H., & Abbas, R. A. (2018). Improving Time Series' Forecast Errors by Using Recurrent Neural Networks. Paper presented at the Proceedings of the 2018 7th International Conference on Software and Computer Applications.
Benaddy, M., El Habil, B., El Meslouhi, O., & Krit, S.-D. (2018). Recurrent neural network for software failure prediction. Paper presented at the Proceedings of the Fourth International Conference on Engineering & MIS 2018.
Chung, J., Gulcehre, C., Cho, K., & Bengio, Y. (2014). Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint arXiv:1412.3555.
Cui, Z., Henrickson, K., Ke, R., & Wang, Y. (2019). Traffic graph convolutional recurrent neural network: A deep learning framework for network-scale traffic learning and forecasting. IEEE Transactions on Intelligent Transportation Systems, 21(11), 4883-4894.
Dam, H. K., Pham, T., Ng, S. W., Tran, T., Grundy, J., Ghose, A., . . . Kim, C.-J. (2018). A deep tree-based model for software defect prediction. arXiv preprint arXiv:1802.00921.
Fenton, N., Neil, M., & Marquez, D. (2008). Using Bayesian networks to predict software defects and reliability. Proceedings of the Institution of Mechanical Engineers, Part O: Journal of Risk and Reliability, 222(4), 701-712.
Ferenc, R., Bán, D., Grósz, T., & Gyimóthy, T. (2020). Deep learning in static, metric-based bug prediction. Array, 100021.
Gray, D., Bowes, D., Davey, N., Sun, Y., & Christianson, B. (2011). The misuse of the NASA metrics data program data sets for automated software defect prediction. Paper presented at the 15th Annual Conference on Evaluation & Assessment in Software Engineering (EASE 2011).
Gulcehre, C., Cho, K., Pascanu, R., & Bengio, Y. (2014). Learned-norm pooling for deep feedforward and recurrent neural networks. Paper presented at the Joint European Conference on Machine Learning and Knowledge Discovery in Databases.
Hata, H., Mizuno, O., & Kikuno, T. (2012). Bug prediction based on fine-grained module histories. Paper presented at the 2012 34th international conference on software engineering (ICSE).
Hu, Y.-L., & Chen, L. (2018). A nonlinear hybrid wind speed forecasting model using LSTM network, hysteretic ELM and Differential Evolution algorithm. Energy conversion and management, 173, 123-142.
Kalaivani, N., & Beena, R. (2018). Overview of software defect prediction using machine learning algorithms. International Journal of Pure and Applied Mathematics, 118(20), 3863-3873.
Kamei, Y., Shihab, E., Adams, B., Hassan, A. E., Mockus, A., Sinha, A., & Ubayashi, N. (2012). A large-scale empirical study of just-in-time quality assurance. IEEE Transactions on Software Engineering, 39(6), 757-773.
Karim, S., Warnars, H. L. H. S., Gaol, F. L., Abdurachman, E., & Soewito, B. (2017). Software metrics for fault prediction using machine learning approaches: A literature review with PROMISE repository dataset. Paper presented at the 2017 IEEE International Conference on Cybernetics and Computational Intelligence (CyberneticsCom).
Li, L., Lessmann, S., & Baesens, B. (2019). Evaluating software defect prediction performance: an updated benchmarking study. arXiv preprint arXiv:1901.01726.
Pandey, S. K., Mishra, R. B., & Tripathi, A. K. (2020). BPDET: An effective software bug prediction model using deep representation and ensemble learning techniques. Expert Systems with Applications, 144, 113085.
Pascanu, R., Gulcehre, C., Cho, K., & Bengio, Y. (2013). How to construct deep recurrent neural networks. arXiv preprint arXiv:1312.6026.
Qiao, L., Li, X., Umer, Q., & Guo, P. (2020). Deep learning based software defect prediction. Neurocomputing, 385, 100-110.
Ren, J., Qin, K., Ma, Y., & Luo, G. (2014). On software defect prediction using machine learning. Journal of Applied Mathematics, 2014.
Ruiz, L. G. B., Rueda, R., Cuéllar, M. P., & Pegalajar, M. (2018). Energy consumption forecasting based on Elman neural networks with evolutive optimization. Expert Systems with Applications, 92, 380-389.
Schröter, A., Zimmermann, T., & Zeller, A. (2006). Predicting component failures at design time. Paper presented at the Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering.
Sethi, T. (2016). Improved approach for software defect prediction using artificial neural networks. Paper presented at the 2016 5th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions)(ICRITO).
Soltani, R., & Jiang, H. (2016). Higher order recurrent neural networks. arXiv preprint arXiv:1605.00064.
Sun, Y., Xu, L., Li, Y., Guo, L., Ma, Z., & Wang, Y. (2018). Utilizing Deep Architecture Networks of VAE in Software Fault Prediction. Paper presented at the 2018 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Ubiquitous Computing & Communications, Big Data & Cloud Computing, Social Computing & Networking, Sustainable Computing & Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom).
Tamura, Y., Matsumoto, M., & Yamada, S. (2016). Software reliability model selection based on deep learning. Paper presented at the 2016 International Conference on Industrial Engineering, Management Science and Application (ICIMSA).
Wang, H., Lei, Z., Zhang, X., Zhou, B., & Peng, J. (2019). A review of deep learning for renewable energy forecasting. Energy Conversion and Management, 198, 111799.
Wang, J., & Zhang, C. (2018). Software reliability prediction using a deep learning model based on the RNN encoder–decoder. Reliability Engineering & System Safety, 170, 73-82.
Yan, M., Fang, Y., Lo, D., Xia, X., & Zhang, X. (2017). File-level defect prediction: Unsupervised vs. supervised models. Paper presented at the 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).
Yang, Y., Zhou, Y., Liu, J., Zhao, Y., Lu, H., Xu, L., . . . Leung, H. (2016). Effort-aware just-in-time defect prediction: simple unsupervised models could be better than supervised models. Paper presented at the Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering.
Refbacks
- There are currently no refbacks.