skip to main content
10.1145/3651640.3651644acmotherconferencesArticle/Chapter ViewAbstractPublication PagesesseConference Proceedingsconference-collections
research-article
Open access

A Practical Failure Prediction Model based on Code Smells and Software Development Metrics

Published: 02 July 2024 Publication History

Abstract

Making errors during software development is unavoidable. Developers inevitably make errors that take additional time to fix later. Consequently, efforts for bug fixing compete with implementing new features. Typically, the later bugs are found, the higher the cost for remediation. To address this concern, software testing should start as early as possible in software development lifecycle. For this purpose, static analysis is proposed, but typically shows too many findings and hence do not support development teams appropriately. So, it would be a benefit to premature detect those findings in static analysis that will result in failures to reduce subsequent efforts notably. The purpose of the paper is to analyze failure data from issue tracking systems that are correlated to findings from static analysis. Thereupon an artificial intelligence-based approach is used to train practicable models for business environment that enables effective prediction of software faults. The results from static analysis show that predefined complexity measures encompassed the most defects. While there are commonalities in relevant defect findings in static analysis reports, meaningful prediction models cannot be expected based solely on this data. In addition to the findings of the static analysis, metrics like code changes in a time period or number of authors involved in code changes were considered for building the prediction models. Two of the developed prediction models have a high accuracy and excellent utility rate. These resulting prediction models are currently used at Raiffeisen Software GmbH for a long-term study on failure prediction based on code smells.

References

[1]
Enas A. Alikhashashneh, Rajeev R. Raje, and James H. Hill. 2018. Using Machine Learning Techniques to Classify and Predict Static Code Analysis Tool Warnings. In 15th IEEE/ACS International Conference on Computer Systems and Applications, AICCSA 2018, Aqaba, Jordan, October 28 - Nov. 1, 2018. IEEE Computer Society, 1–8. https://doi.org/10.1109/AICCSA.2018.8612819
[2]
Graham Bath and Judy McKay. 2008. The Software Test Engineer’s Handbook: A Study Guide for the ISTQB Test Analyst and Technical Test Analyst Advanced Level Certificates. Rocky Nook; 1. Edition, San Rafael, CA, United States.
[3]
Cathal Boogerd and Leon Moonen. 2006. Prioritizing Software Inspection Results using Static Profiling. abs/cs/0607063 (2006). arXiv:cs/0607063http://arxiv.org/abs/cs/0607063
[4]
Zadia Codabux and Byron J. Williams. 2016. Technical debt prioritization using predictive analytics. In Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, Austin, TX, USA, May 14-22, 2016 - Companion Volume, Laura K. Dillon, Willem Visser, and Laurie A. Williams (Eds.). ACM, 704–706. https://doi.org/10.1145/2889160.2892643
[5]
Ward Cunningham. 1992. The WyCash portfolio management system. In Addendum to the Proceedings on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA 1992 Addendum, Vancouver, British Columbia, Canada, October 18-22, 1992, Jerry L. Archibald and Mark C. Wilkes (Eds.). ACM, 29–30. https://doi.org/10.1145/157709.157715
[6]
Karim O. Elish and Mahmoud O. Elish. 2008. Predicting defect-prone software modules using support vector machines. 81, 5 (2008), 649–660. https://doi.org/10.1016/j.jss.2007.07.040
[7]
Tracy Hall, Sarah Beecham, David Bowes, David Gray, and Steve Counsell. 2012. A Systematic Literature Review on Fault Prediction Performance in Software Engineering. 38, 6 (2012), 1276–1304. https://doi.org/10.1109/TSE.2011.103
[8]
Quinn Hanam, Lin Tan, Reid Holmes, and Patrick Lam. 2014. Finding patterns in static analysis alerts: improving actionable alert ranking. In 11th Working Conference on Mining Software Repositories, MSR 2014, Proceedings, May 31 - June 1, 2014, Hyderabad, India, Premkumar T. Devanbu, Sung Kim, and Martin Pinzger (Eds.). ACM, 152–161. https://doi.org/10.1145/2597073.2597100
[9]
Sunghun Kim and Michael D. Ernst. 2007. Which warnings should I fix first?. In Proceedings of the 6th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2007, Dubrovnik, Croatia, September 3-7, 2007, Ivica Crnkovic and Antonia Bertolino (Eds.). ACM, 45–54. https://doi.org/10.1145/1287624.1287633
[10]
Wanwangying Ma, Lin Chen, Yuming Zhou, and Baowen Xu. 2016. Do We Have a Chance to Fix Bugs When Refactoring Code Smells?. In International Conference on Software Analysis, Testing and Evolution, SATE 2016, Kunming, China, November 3-4, 2016. IEEE, 24–29. https://doi.org/10.1109/SATE.2016.11
[11]
Ruchika Malhotra and Priya Singh. 2020. Exploiting bad-smells and object-oriented characteristics to prioritize classes for refactoring. 11, 2s (2020), 133–144. https://doi.org/10.1007/s13198-020-01001-x
[12]
Raimund Moser, Witold Pedrycz, and Giancarlo Succi. 2008. A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction. In 30th International Conference on Software Engineering (ICSE 2008), Leipzig, Germany, May 10-18, 2008, Wilhelm Schäfer, Matthew B. Dwyer, and Volker Gruhn (Eds.). ACM, 181–190. https://doi.org/10.1145/1368088.1368114
[13]
Santosh Singh Rathore and Sandeep Kumar. 2019. A study on software fault prediction techniques. 51, 2 (2019), 255–327. https://doi.org/10.1007/s10462-017-9563-5
[14]
RSG. 2023. Raiffeisen Software GmbH. https://www.r-software.at. Accessed: August 22nd, 2023.
[15]
Natthawute Sae-Lim, Shinpei Hayashi, and Motoshi Saeki. 2018. Context-based approach to prioritize code smells for prefactoring. 30, 6 (2018). https://doi.org/10.1002/smr.1886
[16]
Andreas Spillner and Tilo Linz. 2021. Software Testing Foundations: A Study Guide for the Certified Tester Exam. dpunkt.verlag; 5th, revised and updated Edition, Heidelberg, Germany.

Cited By

View all
  • (2025)Optimizing Pre-Trained Code Embeddings With Triplet Loss for Code Smell DetectionIEEE Access10.1109/ACCESS.2025.354256613(31335-31350)Online publication date: 2025
  • (2024)A Methodology for Analysing Code Anomalies in Open-Source Software Using Big Data Analytics2024 IEEE International Conference on Big Data (BigData)10.1109/BigData62323.2024.10825952(8216-8218)Online publication date: 15-Dec-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ESSE '23: Proceedings of the 4th European Symposium on Software Engineering
December 2023
116 pages
ISBN:9798400708817
DOI:10.1145/3651640
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 July 2024

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. change metrics and failure prediction
  2. failure prediction
  3. machine learning for failure prediction
  4. static analysis
  5. technical debt

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ESSE 2023

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)181
  • Downloads (Last 6 weeks)36
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Optimizing Pre-Trained Code Embeddings With Triplet Loss for Code Smell DetectionIEEE Access10.1109/ACCESS.2025.354256613(31335-31350)Online publication date: 2025
  • (2024)A Methodology for Analysing Code Anomalies in Open-Source Software Using Big Data Analytics2024 IEEE International Conference on Big Data (BigData)10.1109/BigData62323.2024.10825952(8216-8218)Online publication date: 15-Dec-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media