Abstract
Recent advances in information technology has led to an increasing number of applications to be developed and maintained daily by product teams. Ensuring that a software application works as expected and that it is absent of bugs requires a lot of time and resources. Thanks to the recent adoption of DevOps methodologies, it is often the case where code commits and application builds are centralized and standardized. Thanks to this new approach, it is now possible to retrieve log and build data to ease the development and management operations of product teams. However, even if such approaches include code control to detect unit or integration errors, they do not check for the presence of logical bugs that can raise after code builds. For such reasons in this work we propose a framework for continuous defect prediction based on machine learning algorithms trained on a publicly available dataset. The framework is composed of a machine learning model for detecting the presence of logical bugs in code on the basis of the available data generated by DevOps tools and a dashboard to monitor the software projects status. We also describe the serverless architecture we designed for hosting the aforementioned framework.
Keywords
- Continuous defect prediction
- Machine learning
- DevOps
- Continuous integration
Activities were partially funded by Italian “Ministero dello Sviluppo Economico”, Fondo per la Crescita Sostenibile, Bando “Agenda Digitale”, D.M. Oct. 15th, 2014 - Project n. F/020012/02/X27 - “Smart District 4.0”.
This is a preview of subscription content, access via your institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Ebert, C., Gallardo, G., Hernantes, J., Serrano, N.: DevOps. IEEE Softw. 33(3), 94–100 (2016)
Virmani, M.: Understanding DevOps & bridging the gap from continuous integration to continuous delivery. In: Fifth International Conference on the Innovative Computing Technology (INTECH 2015), pp. 78–82. IEEE, Galcia (2015)
Madeyski, L., Kawalerowicz, M.: Continuous defect prediction: the idea and a related dataset. In: 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR), pp. 515–518. IEEE, Buenos Aires (2017)
Nogueira, A.F., Ribeiro, J.C., Zenha-Rela, M.A., Craske, A.: Improving la redoute’s CI/CD pipeline and devops processes by applying machine learning techniques. In: 2018 11th International Conference on the Quality of Information and Communications Technology (QUATIC), pp. 282–286. IEEE, Coimbra (2018)
D’Ambros, M., Lanza, M., Robbe, R.: An extensive comparison of bug prediction approaches. In: Proceedings of 7th IEEE Working Conference on Mining Software Repositories, pp. 31–41. IEEE, Cape Town (2010)
Gyimothy, T., Ferenc, R., Siket, I.: Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Trans. Softw. Eng. 31(10), 897–910 (2005)
Hassan, A.: Predicting faults using the complexity of code changes. In: Proceedings of the 31st International Conference on Software Engineering, pp. 78–88. IEEE, Vancouver (2009)
Hassan, A., Holt, R.: The top ten list: dynamic fault prediction. In: Proceedings of the 21st IEEE International Conference on Software Maintenance, pp. 263–272. IEEE, Budapest (2005)
Madeyski, L., Jureczko, M.: Which process metrics can significantly improve defect prediction models? An empirical study. Softw. Qual. J. 23(3), 393–422 (2015)
Kamei, Y., et al.: A large-scale empirical study of just-in-time quality assurance. TSE 39(6), 757–773 (2013)
Alnor, N., Khleel, A., Nehéz, K.: Comprehensive study on machine learning techniques for software bug prediction. Int. J. Adv. Comput. Sci. Appl. 12(8) (2021)
Yang, X., Lo, D., Xia, X., Zhang, Y., Sun, J.: Deep learning for just-in-time defect prediction. In: 2015 IEEE International Conference on Software Quality. Reliability and Security, pp. 17–26. IEEE, Vancouver (2015)
Li, Y., Wang, S., Nguyen, T. N., Nguyen, S. V.: Improving bug detection via context-based code representation learning and attention based neural networks. In: Proceedings of the ACM on Programming Languages, pp. 1–30. Association for Computing Machinery, New York (2019)
Hammouri, A., Hammad, M., Alnabhan, M., Alsarayrah, F.: Software bug prediction using machine learning approach. Int. J. Adv. Comput. Sci. Appl. 9(2), 78–83 (2018)
Pandey, S.K., Mishra, R.B., Triphathi, A.K.: Software bug prediction prototype using Bayesian network classifier: a comprehensive model. Proc. Comput. Sci. 132, 1412–1421 (2018)
Uqaili, I.U.N., Ahsan, S.N.: Machine learning based prediction of complex bugs in source code. Int. Arab J. Inf. Technol. 17(1), 26–37 (2020)
Islam, M.J., Pan, P., Nguyen, G., Rajan, H.: A comprehensive study on deep learning bug characteristics. In: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp. 1–11. Association for Computing Machinery, Tallin (2019)
Lenarduzzi, V., Saarimaki, N., Taibi, D.: The technical debt dataset. In: Proceedings of the Fifteenth International Conference on Predictive Models and Data Analytics in Software Engineering, pp. 1–2. Association for Computing Machinery, New York (2019)
Guyon, I., Weston, J., Barnhill, S., Vapnik, V.: Gene selection for cancer classification using support vector machines. Mach. Learn. 46, 389–422 (2002)
Pellegrini, L., Lenarduzzi, V., Taibi, D.: OpenSZZ: a free, open-source, web-accessible implementation of the SZZ algorithm. In: Proceedings of the 28th International Conference on Program Comprehension, pp. 446–450. Association for Computing Machinery, New York (2020)
Zeller, A., Sliwerski, J., Zimmermann, T.: When do changes induce fixes?. In: Proceedings of the 2005 International Workshop on Mining Software Repositories, pp. 1–5. Association for Computing Machinery, St. lOUSI, mISSURI (2005)
Robles, G., Rodriguez-Perez, G., Gonzalez-Barahona, J.M.: Reproducibility and credibility in empirical software engineering: a case study based on a systematic literature review of the use of the SZZ algorithm. Inf. Softw. Technol. 99, 164–176 (2018)
da Costa, D.A., McIntosh, S., Shang, W., Kulesza, U., Coelho, R., Hassan, A.E.: A framework for evaluating the results of the SZZ approach for identifying bug-introducing changes. IEEE Trans. Softw. Eng. 43(7), 641–657 (2017)
Spadini, D., Aniche, M., Bacchelli, A.: PyDriller: python framework for mining software repositories. In: Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), pp. 908–911. Association for Computing Machinery, New York (2018)
Tsantalis, N., Mansouri, M., Eshkevari, L. M., Mazinanian, D., Dig, D.: Accurate and efficient refactoring detection in commit history. In: Proceedings of the 40th International Conference on Software Engineering (ICSE 2018), pp. 483–494. Association of Computing Machinery, New York (2018)
GitHub Homepage. https://github.com/. Accessed 30 Sep 2021
Jira Homepage. https://www.atlassian.com/it/software/jira. Accessed 30 Sep 2021
Google Cloud Platform Homepage. https://cloud.google.com. Accessed 30 Sep 2021
Python Homepage. https://www.python.com. Accessed 30 Sep 2021
Google Cloud Storage Homepage. https://cloud.google.com/storage. Accessed 30 Sep 2021
Google Cloud Functions Homepage. https://cloud.google.com/functions. Accessed 30 Sep 2021
Google Cloud Vertex AI Homepage. https://cloud.google.com/vertex-ai. Accessed 30 Sep 2021
Google Cloud BigQuery Homepage. https://cloud.google.com/bigquery. Accessed 30 Sep 2021
Data Studio Homepage. https://datastudio.google.com/. Accessed 30 Sep 2021
Jenkins Homepage. https://www.jenkins.io/. Accessed 30 Sep 2021
SonarQube Homepage. https://www.sonarqube.org/. Accessed 30 Sep 2021
Ptidej GitHub Repository. https://github.com/ptidejteam/v5.2. Accessed 30 Sep 2021
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Giorgio, L., Nicola, M., Fabio, S., Andrea, S. (2022). Continuous Defect Prediction in CI/CD Pipelines: A Machine Learning-Based Framework. In: Bandini, S., Gasparini, F., Mascardi, V., Palmonari, M., Vizzari, G. (eds) AIxIA 2021 – Advances in Artificial Intelligence. AIxIA 2021. Lecture Notes in Computer Science(), vol 13196. Springer, Cham. https://doi.org/10.1007/978-3-031-08421-8_41
Download citation
DOI: https://doi.org/10.1007/978-3-031-08421-8_41
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-08420-1
Online ISBN: 978-3-031-08421-8
eBook Packages: Computer ScienceComputer Science (R0)