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

Static analysis tools as early indicators of pre-release defect density

Published:15 May 2005Publication History

ABSTRACT

During software development it is helpful to obtain early estimates of the defect density of software components. Such estimates identify fault-prone areas of code requiring further testing. We present an empirical approach for the early prediction of pre-release defect density based on the defects found using static analysis tools. The defects identified by two different static analysis tools are used to fit and predict the actual pre-release defect density for Windows Server 2003. We show that there exists a strong positive correlation between the static analysis defect density and the pre-release defect density determined by testing. Further, the predicted pre-release defect density and the actual pre-release defect density are strongly correlated at a high degree of statistical significance. Discriminant analysis shows that the results of static analysis tools can be used to separate high and low quality components with an overall classification rate of 82.91%.

References

  1. Basili, V., Briand, L., Melo, W., "A Validation of Object Oriented Design Metrics as Quality Indicators," IEEE Transactions on Software Engineering, Vol. 22, No. 10, pp. 751--761, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Brace, N., Kemp, R., Snelgar, R., SPSS for Psychologists: Palgrave Macmillan, 2003.Google ScholarGoogle Scholar
  3. Briand, L. C., Thomas, W.M., Hetmanski, C.J., "Modeling and Managing Risk Early in Software Development," Proceedings of International Conference on Software Engineering, 1993, pp. 55--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Briand, L. C., Wuest, J., Daly, J.W., Porter, D.V., "Exploring the Relationship between Design Measures and Software Quality in Object Oriented Systems," Journal of Systems and Software, Vol. 51, No. 3, pp. 245--273, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Briand, L. C., Wuest, J., Ikonomovski, S., Lounis, H., "Investigating Quality Factors in Object-Oriented Designs : An Industrial Case Study," Proceedings of International Conference on Software Engineering, 1999, pp. 345--354. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bush, W. R., Pincus, J.D., Sielaff, D.J., "A Static Analyzer for Finding Dynamic Programming Errors," Software-Practice and Experience, Vol. 20, No. 7, pp. 775--802, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Chidamber, S. R. and C. F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Transactions on Software Engineering, Vol. 20, No. 6, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Denaro, G., Morasca, S., Pezze, M., "Deriving Models of Software Fault-Proneness," Proceedings of Software Engineering Knowledge Engineering, 2002, pp. 361--368. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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
  10. Engler, D., Chelf, B., Chou, A., Hallem, S., "Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions," Proceedings of OSDI 2000, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Evans, D., Guttag, J., Horning, J., Tan, Y., M., "LCLint: A Tool for Using Cpecifications to Check Code," Proceedings of ACM-SIGSOFT Foundations in Software Engineering, 1994, pp. 87--96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Fenton, N. E., Pfleeger, S.L., Software Metrics. Boston, MA: International Thompson Publishing, 1997.Fenton, N. E., Pfleeger, S.L., Software Metrics. Boston, MA: International Thompson Publishing, 1997.Google ScholarGoogle Scholar
  13. Khoshgoftaar, T. M., Allen, E.B., Deng,J., "Using Regression Trees to Classify Fault-Prone Software Modules," IEEE Transactions on Reliability, Vol. 51, No. 4, pp. 455--462, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  14. 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
  15. Khoshgoftaar, T. M., Allen, E.B., Hudepohl, J.P., Aud, S.J., "Application of neural networks to software quality modeling of a very large telecommunications system," IEEE Transactions on Neural Networks, Vol. 8, No. 4, pp. 902--909, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Khoshgoftaar, T. M., Allen, E.B., Jones,W.D., Hudepohl, J.P., "Classification-Tree Models of Software Quality Over Multiple Releases," IEEE Transactions on Reliability, Vol. 49, No. 1, pp. 4--11, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  17. 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
  18. Khoshgoftaar, T. M., Munson, J.C., Lanning, D.L., "A Comparative Study of Predictive Models for Program Changes During System Testing and Maintenance," Proceedings of International Conference on Software Maintenance, 1993, pp. 72--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Khoshgoftaar, T. M., Seliya, N., "Fault Prediction Modeling for Software Quality Estimation: Comparing Commonly Used Techniques," Empirical Software Engineering, Vol. 8, No. 3, pp. 255--283, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Larus, J. R., Ball, T., Das, M., DeLine, R., Fahndrich, M., Pincus, J., Rajamani, S.K., Venkatapathy, R., "Righting Software," in IEEE Software, vol. 21, 2004, pp. 92--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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
  22. Munson, J. C., Khoshgoftaar,T.M., "Regression Modeling of Software quality : Empirical Investigation," Information and Software Technology, Vol. 32, No. 2, pp. 106--114, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Nagappan, N., Williams, L., Hudepohl, J., Snipes, W., Vouk, M., "Preliminary Results On Using Static Analysis Tools For Software Inspection," Proceedings of Fifteenth IEEE International Symposium on Software Reliability Engineering, St. Malo, France, 2004, pp. 429--439. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Schneidewind, N. F., "Methodology for Validating Software Metrics," IEEE Transactions on Software Engineering, Vol. 18, No., pp. 410--422, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Subramanyam, R., Krishnan, M.S., "Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects," IEEE Transactions on Software Engineering, Vol. 29, No. 4, pp. 297--310, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Tang, M.-H., Kao, M-H., Chen, M-H., "An empirical study on object-oriented metrics," Proceedings of Sixth International Software Metrics Symposium, 1999, pp. 242--249. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static analysis tools as early indicators of pre-release defect density

                      Recommendations

                      Reviews

                      Andrew Brooks

                      Static analysis tools have been used to detect pre-release defects at Microsoft for six years. More than 12 percent of the pre-release defects fixed in Windows Server 2003 were found with the PREfix and PREfast static analysis tools. This paper uses historical data to determine how well statically found defects can predict the pre-release defect density, as measured by defects found by all other pre-release methods. Data was analyzed at the component level for over 199 components of Windows Server 2003 (22 million lines of code). Employing the technique of data splitting, random samples of 132 components were used to build regression models whose predictive ability was assessed on the remaining 67 components. Figure 3 shows how the estimated defect density tracks the actual defect density for three random samples. A discriminant analysis is said to correctly identify 165 of the 199 components (82.91 percent) as fault, or not fault, prone. An omission is the failure to report the false positive rates for PREFix and PREfast. An indication is given that some false positives might have been entered into the defect database. While Figure 3 demonstrates prediction tracking in general, at least three components with much higher defect densities appear that are not tracked by regression modeling. Why were these particular components so much worse__?__ Could other techniques, for example, software metric approaches, have predicted that these components were very fault prone__?__ We do not know. This paper is recommended to those working in software quality assurance. 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