skip to main content
10.1145/3555228.3555269acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Understanding Thresholds of Software Features for Defect Prediction

Published:05 October 2022Publication History

ABSTRACT

Software defect prediction is a subject of study involving the interplay of the software engineering and machine learning areas. The current literature proposed numerous machine learning models to predict software defects from software data, such as commits and code metrics. However, existing machine learning models are more valuable when we can understand the prediction. Otherwise, software developers cannot reason why a machine learning model made such predictions, generating many questions about the model’s applicability in software projects. As explainable machine learning models for the defect prediction problem remain a recent research topic, it leaves room for exploration. In this paper, we propose a preliminary analysis of an extensive dataset to predict software defects. The dataset includes 47,618 classes from 53 open-source projects and covers 66 software features related to numerous features of the code. Therefore, we offer contributions on explaining how each selected software feature favors the prediction of software defects in Java projects. Our initial results suggest that developers should keep the values of some specific software features small to avoid software defects. We hope our approach can guide more discussions about explainable machine learning for defect prediction and its impact on software development.

References

  1. 1990. IEEE Standard Glossary of Software Engineering Terminology. In IEEE Std 610.12-1990. https://doi.org/10.1109/IEEESTD.1990.101064Google ScholarGoogle ScholarCross RefCross Ref
  2. D. Baehrens, T. Schroeter, S. Harmeling, M. Kawanabe, K. Hansen, and K. Müller. 2010. How to Explain Individual Classification Decisions. In Journal of Machine Learning Research (JMLR).Google ScholarGoogle Scholar
  3. M. D’Ambros, M. Lanza, and R. Robbes. 2010. An extensive comparison of bug prediction approaches. In 7th IEEE Working Conference on Mining Software Repositories (MSR).Google ScholarGoogle Scholar
  4. R. Ferenc, Z. Tóth, G. Ladányi, I. Siket, and T. Gyimóthy. 2018. A Public Unified Bug Dataset for Java. In Proceedings of the 14th International Conference on Predictive Models and Data Analytics in Software Engineering (PROMISE).Google ScholarGoogle Scholar
  5. R. Ferenc, Z. Tóth, G. Ladányi, I. Siket, and T. Gyimóthy. 2020. A public unified bug dataset for java and its assessment regarding metrics and bug prediction. In Software Quality Journal (SQJ).Google ScholarGoogle Scholar
  6. R. Ferenc, Z. Tóth, G. Ladányi, I. Siket, and T. Gyimóthy. 2020. Unified Bug Dataset. https://doi.org/10.5281/zenodo.3693686Google ScholarGoogle ScholarCross RefCross Ref
  7. F. Ferreira, G. Vale, J. P. Diniz, and Figueiredo. E.2021. Evaluating T-wise testing strategies in a community-wide dataset of configurable software systems. In Journal of Systems and Software (JSS).Google ScholarGoogle Scholar
  8. M. Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Fukushima, Y. Kamei, S. McIntosh, K. Yamashita, and N. Ubayashi. 2014. An empirical study of just-in-time defect prediction using cross-project models. In Working Conference on Mining Software Repositories (MSR).Google ScholarGoogle Scholar
  10. B. Ghotra, S. McIntosh, and A. E. Hassan. 2015. Revisiting the Impact of Classification Techniques on the Performance of Defect Prediction Models. In International Conference on Software Engineering (ICSE).Google ScholarGoogle Scholar
  11. T. Hall, M. Zhang, D. Bowes, and Y. Sun. 2014. Some Code Smells Have a Significant but Small Effect on Faults. In Transactions on Software Engineering and Methodology (TOSEM).Google ScholarGoogle Scholar
  12. A. E Hassan. 2009. Predicting faults using the complexity of code changes. In International Conference of Software Engineering (ICSE).Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Herbold. 2015. CrossPare: A Tool for Benchmarking Cross-Project Defect Predictions. In International Conference on Automated Software Engineering Workshop (ASEW).Google ScholarGoogle Scholar
  14. A. Hindle, D. M. German, M. W. Godfrey, and R. C. Holt. 2009. Automatic classification of large changes into maintenance categories. In International Conference on Program Comprehension (ICPC).Google ScholarGoogle Scholar
  15. J. Jiarpakdee, C. Tantithamthavorn, H. K. Dam, and J. Grundy. 2020. An Empirical Study of Model-Agnostic Techniques for Defect Prediction Models. In Transactions on Software Engineering (TSE).Google ScholarGoogle Scholar
  16. X. Jing, S. Ying, Z. Zhang, S. Wu, and J. Liu. 2014. Dictionary learning based software defect prediction. In International Conference of Software Engineering (ICSE).Google ScholarGoogle Scholar
  17. M. Jureczko and Spinellis D. D.2010. Using Object-Oriented Design Metrics to Predict Software Defects. In Models and Methods of System Dependability (MMSD).Google ScholarGoogle Scholar
  18. M. Jureczko and L. Madeyski. 2010. Towards Identifying Software Project Clusters with Regard to Defect Prediction. In Proceedings of the 6th International Conference on Predictive Models in Software Engineering (PROMISE).Google ScholarGoogle Scholar
  19. S. Levin and A. Yehudai. 2017. Boosting Automatic Commit Classification Into Maintenance Activities By Utilizing Source Code Changes. In Proceedings of the 13rd International Conference on Predictor Models in Software Engineering (PROMISE).Google ScholarGoogle Scholar
  20. Z. Lin, G. Ding, M. Hu, and J. Wang. 2014. Multi-Label Classification via Feature-Aware Implicit Label Space Encoding. In International Conference on International Conference on Machine Learning (ICML).Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. M. Lundberg and S. Lee. 2017. A unified approach to interpreting model predictions. In Conference on Neural Information Processing Systems (NIPS).Google ScholarGoogle Scholar
  22. T. Menzies, J. Greenwald, and A. Frank. 2007. Data mining static code attributes to learn defect predictors. In Transactions on Software Engineering (TSE).Google ScholarGoogle Scholar
  23. T. Menzies, Z. Milton, B. Turhan, B. Cukic, Y. Jiang, and A. Bener. 2010. Defect prediction from static code features: current results, limitations, new approaches. In Automated Software Engineering (ASE).Google ScholarGoogle Scholar
  24. T. Mori and N. Uchihira. 2018. Balancing the trade-off between accuracy and interpretability in software defect prediction. In Empirical Software Engineering (EMSE).Google ScholarGoogle Scholar
  25. R. Moser, W. Pedrycz, and Succi. G.2008. A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction. In International Conference on Software Engineering (ICSE).Google ScholarGoogle Scholar
  26. N. Nagappan and T. Ball. 2005. Use of relative code churn measures to predict system defect density. In International Conference on Software Engineering (ICSE).Google ScholarGoogle Scholar
  27. N. Nagappan, T. Ball, and A. Zeller. 2006. Mining Metrics to Predict Component Failures. In International Conference on Software Engineering (ICSE).Google ScholarGoogle Scholar
  28. J. Petrić, D. Bowes, T. Hall, B. Christianson, and N. Baddoo. 2016. The Jinx on the NASA Software Defect Data Sets. In International Conference on Evaluation and Assessment in Software Engineering (EASE).Google ScholarGoogle Scholar
  29. C. Pornprasit, C. Tantithamthavorn, J. Jiarpakdee, M. Fu, and P. Thongtanunam. 2021. PyExplainer: Explaining the Predictions of Just-In-Time Defect Models. In International Conference on Automated Software Engineering (ASE).Google ScholarGoogle Scholar
  30. G. Santos, E. Figueiredo, A. Veloso, M. Viggiato, and N. Ziviani. 2020. Predicting Software Defects with Explainable Machine Learning. In Brazilian Symposium on Software Quality (SBQS).Google ScholarGoogle Scholar
  31. G. Santos, E. Figueiredo, A. Veloso, M. Viggiato, and N. Ziviani. 2020. Understanding machine learning software defect predictions. In Automated Software Engineering Journal (ASEJ).Google ScholarGoogle Scholar
  32. G. Santos, A. Veloso, and E. Figueiredo. 2022. The Subtle Art of Digging for Defects: Analyzing Features for Defect Prediction in Java Projects. In International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE).Google ScholarGoogle Scholar
  33. J. Sayyad S. and T.J. Menzies. 2005. The PROMISE Repository of Software Engineering Databases.http://promise.site.uottawa.ca/SERepositoryGoogle ScholarGoogle Scholar
  34. C. Tantithamthavorn and A. E. Hassan. 2018. An Experience Report on Defect Modelling in Practice: Pitfalls and Challenges. In International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP).Google ScholarGoogle Scholar
  35. C. Tantithamthavorn, A. E. Hassan, and K. Matsumoto. 2019. The Impact of Class Rebalancing Techniques on the Performance and Interpretation of Defect Prediction Models. In Transactions on Software Engineering (TSE).Google ScholarGoogle Scholar
  36. C. Tantithamthavorn, S. McIntosh, A. E. Hassan, A. Ihara, and K. Matsumoto. 2015. The Impact of Mislabelling on the Performance and Interpretation of Defect Prediction Models. In International Conference on Software Engineering (ICSE).Google ScholarGoogle Scholar
  37. C. Tantithamthavorn, S. McIntosh, A. E. Hassan, and K. Matsumoto. 2019. The Impact of Automated Parameter Optimization on Defect Prediction Models. In Transactions on Software Engineering (TSE).Google ScholarGoogle Scholar
  38. Z. Tóth, P. Gyimesi, and R. Ferenc. 2016. A Public Bug Database of GitHub Projects and Its Application in Bug Prediction. In Computational Science and Its Applications (ICCSA).Google ScholarGoogle Scholar
  39. B. Turhan, T. Menzies, A. B Bener, and J. Di Stefano. 2009. On the relative value of cross-company and within-company data for defect prediction. Empirical Software Engineering (EMSE)(2009).Google ScholarGoogle Scholar
  40. G. Vale, C. Hunsen, E. Figueiredo, and S. Apel. 2021. Challenges of Resolving Merge Conflicts: A Mining and Survey Study. In Transactions on Software Engineering (TSE).Google ScholarGoogle Scholar
  41. E. Štrumbelj and I. Kononenko. 2014. Explaining Prediction Models and Individual Predictions with Feature Contributions. In Knowledge and Information Systems (KAIS).Google ScholarGoogle Scholar
  42. S. Wang, T. Liu, and L. Tan. 2016. Automatically learning semantic features for defect prediction. In International Conference of Software Engineering (ICSE).Google ScholarGoogle Scholar
  43. C. Wohlin, P. Runeson, M. Hst, M. C. Ohlsson, B. Regnell, and A. Wessln. 2012. Experimentation in Software Engineering. Springer.Google ScholarGoogle Scholar
  44. Z. Xu, J. Liu, X. Luo, and T. Zhang. 2018. Cross-version defect prediction via hybrid active learning with kernel principal component analysis. In International Conference on Software Analysis, Evolution and Reengineering (SANER).Google ScholarGoogle Scholar
  45. S. Yatish, J. Jiarpakdee, P. Thongtanunam, and C. Tantithamthavorn. 2019. Mining Software Defects: Should We Consider Affected Releases?. In International Conference on Software Engineering (ICSE).Google ScholarGoogle Scholar
  46. T. Zimmermann, R. Premraj, and A. Zeller. 2007. Predicting Defects for Eclipse. In International Workshop on Predictor Models in Software Engineering (PROMISE).Google ScholarGoogle Scholar

Index Terms

  1. Understanding Thresholds of Software Features for Defect Prediction

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        SBES '22: Proceedings of the XXXVI Brazilian Symposium on Software Engineering
        October 2022
        457 pages
        ISBN:9781450397353
        DOI:10.1145/3555228

        Copyright © 2022 ACM

        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 ACM 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: 5 October 2022

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate147of427submissions,34%
      • Article Metrics

        • Downloads (Last 12 months)33
        • Downloads (Last 6 weeks)0

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format