skip to main content
10.1145/1062455.1062514acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Use of relative code churn measures to predict system defect density

Published:15 May 2005Publication History

ABSTRACT

Software systems evolve over time due to changes in requirements, optimization of code, fixes for security and reliability bugs etc. Code churn, which measures the changes made to a component over a period of time, quantifies the extent of this change. We present a technique for early prediction of system defect density using a set of relative code churn measures that relate the amount of churn to other variables such as component size and the temporal extent of churn.Using statistical regression models, we show that while absolute measures of code churn are poor predictors of defect density, our set of relative measures of code churn is highly predictive of defect density. A case study performed on Windows Server 2003 indicates the validity of the relative code churn measures as early indicators of system defect density. Furthermore, our code churn metric suite is able to discriminate between fault and not fault-prone binaries with an accuracy of 89.0 percent.

References

  1. ANSI/IEEE, "IEEE Standard Glossary of Software Engineering Terminology, Standard 729," 1983.Google ScholarGoogle Scholar
  2. Basili, V., Shull, F.,Lanubile, F., "Building Knowledge through Families of Experiments," IEEE Transactions on Software Engineering, Vol. Vol. 25, No.4, No., 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Boehm, B. W., Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Brace, N., Kemp, R., Snelgar, R., SPSS for Psychologists: Palgrave Macmillan, 2003.Google ScholarGoogle Scholar
  5. Brito e Abreu, F., Melo, W., "Evaluating the Impact of Object-Oriented Design on Software Quality," Proceedings of Third International Software Metrics Symposium, 1996, pp. 90--99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Denaro, G., Pezze, M., "An Empirical Evaluation of Fault-Proneness Models," Proceedings of International Conference on Software Engineering, 2002, pp. 241--251. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Fenton, N. E., Ohlsson, N., "Quantitative analysis of faults and failures in a complex software system," IEEE Transactions on Software Engineering, Vol. 26, No. 8, pp. 797--814, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Fenton, N. E., Pfleeger, S.L., Software Metrics. Boston, MA: International Thompson Publishing, 1997.Google ScholarGoogle Scholar
  9. Graves, T. L., Karr, A.F., Marron, J.S., Siy, H., "Predicting Fault Incidence Using Software Change History," IEEE Transactions on Software Engineering, Vol. 26, No. 7, pp. 653--661, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Jackson, E. J., A User's Guide to Principal Components: John Wiley & Sons, Inc., 1991.Google ScholarGoogle ScholarCross RefCross Ref
  11. Kaiser, H. F., "An Index of Factorial Simplicity," Psychometrika, Vol. 39, No., pp. 31--36, 1974.Google ScholarGoogle ScholarCross RefCross Ref
  12. Karunanithi, N., "A Neural Network approach for Software Reliability Growth Modeling in the Presence of Code Churn," Proceedings of International Symposium on Software Reliability Engineering, 1993, pp. 310--317.Google ScholarGoogle Scholar
  13. Khoshgoftaar, T. M., Allen, E.B., Goel, N., Nandi, A., McMullan, J., "Detection of Software Modules with high Debug Code Churn in a very large Legacy System," Proceedings of International Symposium on Software Reliability Engineering, 1996, pp. 364--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Khoshgoftaar, T. M., Allen, E.B., Kalaichelvan, K.S., Goel, N., Hudepohl, J.P., Mayrand, J., "Detection of fault-prone program modules in a very large telecommunications system," Proceedings of International Symposium Software Reliability Engineering, 1995, pp. 24--33.Google ScholarGoogle ScholarCross RefCross Ref
  15. Khoshgoftaar, T. M., Szabo, R.M., "Improving Code Churn Predictions During the System Test and Maintenance Phases," Proceedings of IEEE International Conference on Software Maintainence, 1994, pp. 58--67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Kleinbaum, D. G., Kupper, L.L., Muller, K.E., Applied Regression Analysis and Other Multivariable Methods. Boston: PWS-KENT Publishing Company, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Munson, J. C., Elbaum, S., "Code Churn: A Measure for Estimating the Impact of Code Change," Proceedings of IEEE International Conference on Software Maintenance, 1998, pp. 24--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Munson, J. C., Khoshgoftaar, T.M., "The Detection of Fault-Prone Programs," IEEE Transactions on Software Engineering, Vol. 18, No. 5, pp. 423--433, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ohlsson, M. C., von Mayrhauser, A., McGuire, B., Wohlin, C., "Code Decay Analysis of Legacy Software through Successive Releases," Proceedings of IEEE Aerospace Conference, 1999, pp. 69--81.Google ScholarGoogle Scholar
  20. Ostrand, T. J., Weyuker, E.J, Bell, R.M., "Where the Bugs Are," Proceedings of the 2004 ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), 2004, pp. 86--96. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Use of relative code churn measures to predict system defect density

                Recommendations

                Reviews

                Elliot Jaffe

                New software releases are not defect free, and such defects are expensive to fix once they have been deployed in the field. If a company can predict which components are likely to have more defects, then they can focus their quality assurance (QA) efforts more efficiently, and prepare for a higher incidence of support calls. This paper presents a postmortem case study of the Windows Server 2003 defect rates. The focus is on a predictive model that identifies defect-prone components based on their most recent software development history. The authors looked at a number of software engineering metrics, in an attempt to correlate the defect rate of each binary with the changes made to that binary during the development process. They found a surprisingly high level of correlation between a set of eight relative change measures and the defect rate of the resulting program. The tone of the paper is that of professional statistics. Each argument is stated clearly, along with associated caveats and exceptions. I felt that this approach showed careful analysis, and improved the overall credibility of this paper. This paper's contribution is its argument that "code that changes many times pre-release will likely have more post-release defects than code that changes less over the same period of time." This is a very intuitive notion, and the data and statistics presented in the paper make a strong case. One of my problems with this paper is that it is focused on proving its main thesis, and not on providing direction to developers or organizations. The metrics are shown to have predictive power, but I was left wondering how to deploy them. Due to the proprietary nature of the data, we know that the metrics are predictive, but we have no scale on which to apply them. Does modifying a file 100 times increase the error rate by one percent or 50 percent__?__ How much change is acceptable during a development cycle, and what are the implications__?__ If you are a researcher in this field, then this paper is probably going to be on your citation list. It is a good, careful case study. If you are a practitioner, then there is little to gain from reading this paper. Online Computing Reviews Service

                Access critical reviews of Computing literature here

                Become a reviewer for Computing Reviews.

                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 Conferences
                  ICSE '05: Proceedings of the 27th international conference on Software engineering
                  May 2005
                  754 pages
                  ISBN:1581139632
                  DOI:10.1145/1062455

                  Copyright © 2005 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: 15 May 2005

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  Overall Acceptance Rate276of1,856submissions,15%

                  Upcoming Conference

                  ICSE 2025

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader