Skip to main content

Continuous Defect Prediction in CI/CD Pipelines: A Machine Learning-Based Framework

  • 800 Accesses

Part of the Lecture Notes in Computer Science book series (LNAI,volume 13196)

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Ebert, C., Gallardo, G., Hernantes, J., Serrano, N.: DevOps. IEEE Softw. 33(3), 94–100 (2016)

    CrossRef  Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    CrossRef  Google Scholar 

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

    Google Scholar 

  8. 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)

    Google Scholar 

  9. Madeyski, L., Jureczko, M.: Which process metrics can significantly improve defect prediction models? An empirical study. Softw. Qual. J. 23(3), 393–422 (2015)

    CrossRef  Google Scholar 

  10. Kamei, Y., et al.: A large-scale empirical study of just-in-time quality assurance. TSE 39(6), 757–773 (2013)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    CrossRef  Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. Guyon, I., Weston, J., Barnhill, S., Vapnik, V.: Gene selection for cancer classification using support vector machines. Mach. Learn. 46, 389–422 (2002)

    CrossRef  Google Scholar 

  20. 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)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. 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)

    CrossRef  Google Scholar 

  23. 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)

    CrossRef  Google Scholar 

  24. 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)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. GitHub Homepage. https://github.com/. Accessed 30 Sep 2021

  27. Jira Homepage. https://www.atlassian.com/it/software/jira. Accessed 30 Sep 2021

  28. Google Cloud Platform Homepage. https://cloud.google.com. Accessed 30 Sep 2021

  29. Python Homepage. https://www.python.com. Accessed 30 Sep 2021

  30. Google Cloud Storage Homepage. https://cloud.google.com/storage. Accessed 30 Sep 2021

  31. Google Cloud Functions Homepage. https://cloud.google.com/functions. Accessed 30 Sep 2021

  32. Google Cloud Vertex AI Homepage. https://cloud.google.com/vertex-ai. Accessed 30 Sep 2021

  33. Google Cloud BigQuery Homepage. https://cloud.google.com/bigquery. Accessed 30 Sep 2021

  34. Data Studio Homepage. https://datastudio.google.com/. Accessed 30 Sep 2021

  35. Jenkins Homepage. https://www.jenkins.io/. Accessed 30 Sep 2021

  36. SonarQube Homepage. https://www.sonarqube.org/. Accessed 30 Sep 2021

  37. Ptidej GitHub Repository. https://github.com/ptidejteam/v5.2. Accessed 30 Sep 2021

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lazzarinetti Giorgio .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)