Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2875913.2875922acmotherconferencesArticle/Chapter ViewAbstractPublication PagesinternetwareConference Proceedingsconference-collections
research-article

Enhancing Defect Prediction with Static Defect Analysis

Published: 06 November 2015 Publication History

Abstract

In the software development process, how to develop better software at lower cost has been a major issue of concern. One way that helps is to find more defects as early as possible, on which defect prediction can provide effective guidance. The most popular defect prediction technique is to build defect prediction models based on machine learning. To improve the performance of defect prediction model, selecting appropriate features is critical. On the other hand, static analysis is usually used in defect detection. As static defect analyzers detects defects by matching some well-defined "defect patterns", its result is useful for locating defects. However, defect prediction and static defect analysis are supposed to be two parallel areas due to the differences in research motivation, solution and granularity.
In this paper, we present a possible approach to improve the performance of defect prediction with the help of static analysis techniques. Specifically, we present to extract features based on defect patterns from static defect analyzers to improve the performance of defect prediction models. Based on this approach, we implemented a defect prediction tool and set up experiments to measure the effect of the features.

References

[1]
F. Akiyama. An example of software system debugging. In Proceedings of the International Federation of Information Processing Societies Congress, volume 71, pages 353--359. New York: Springer Science and Business Media, 1971.
[2]
C. Catal. Software fault prediction: A literature review and current trends. Expert systems with applications, 38(4):4626--4636, 2011.
[3]
C. Catal and B. Diri. A systematic review of software fault prediction studies. Expert systems with applications, 36(4):7346--7354, 2009.
[4]
R. Chansler, R. Bryant, R. Bryant, R. Canino-Koening, F. Cesarini, E. Allman, K. Bostic, and T. Brown. The architecture of open source applications. 2011.
[5]
S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476--493, 1994.
[6]
B. Clark and D. Zubrow. How good is the software: a review of defect prediction techniques. Software Engineering Symposium, IEEE Computer Press, 2001.
[7]
P. Cuoq, J. Signoles, P. Baudin, R. Bonichon, G. Canet, L. Correnson, B. Monate, V. Prevosto, and A. Puccetti. Experience report: Ocaml for an industrial-strength static analysis framework. In ACM Sigplan Notices, volume 44, pages 281--286. ACM, 2009.
[8]
M. D'Ambros, M. Lanza, and R. Robbes. An extensive comparison of bug prediction approaches. In 7th IEEE Working Conference on Mining Software Repositories, pages 31--41. IEEE, 2010.
[9]
A. M. Dutko. The Relational Database: A New Static Analysis Tool? PhD thesis, Cleveland State University, 2011.
[10]
N. E. Fenton and N. Ohlsson. Quantitative analysis of faults and failures in a complex software system. IEEE Transactions on Software Engineering, 26(8):797--814, 2000.
[11]
T. L. Graves, A. F. Karr, J. S. Marron, and H. Siy. Predicting fault incidence using software change history. IEEE Transactions on Software Engineering, 26(7):653--661, 2000.
[12]
T. Hall, S. Beecham, D. Bowes, D. Gray, and S. Counsell. A systematic literature review on fault prediction performance in software engineering. IEEE Transactions on Software Engineering, 38(6):1276--1304, 2012.
[13]
M. H. Halstead. Elements of Software Science (Operating and programming systems series). Elsevier Science Inc., 1977.
[14]
R. Harrison, S. J. Counsell, and R. V. Nithi. An evaluation of the mood set of object-oriented software metrics. IEEE Transactions on Software Engineering, 24(6):491--496, 1998.
[15]
D. Hovemeyer and W. Pugh. Finding bugs is easy. ACM Sigplan Notices, 39(12):92--106, 2004.
[16]
Y. Jiang, B. Cukic, and T. Menzies. Fault prediction using early lifecycle data. In The 18th IEEE International Symposium on Software Reliability, pages 237--246. IEEE, 2007.
[17]
M. Jureczko. Significance of different software metrics in defect prediction. Software Engineering: An International Journal, 1(1):86--95, 2011.
[18]
M. Jureczko and L. Madeyski. Towards identifying software project clusters with regard to defect prediction. In Proceedings of the 6th International Conference on Predictive Models in Software Engineering, page 9. ACM, 2010.
[19]
S. Lessmann, B. Baesens, C. Mues, and S. Pietsch. Benchmarking classification models for software defect prediction: A proposed framework and novel findings. IEEE Transactions on Software Engineering, 34(4):485--496, 2008.
[20]
Z. Li and Y. Zhou. Pr-miner: automatically extracting implicit programming rules and detecting violations in large software code. In ACM SIGSOFT Software Engineering Notes, volume 30, pages 306--315. ACM, 2005.
[21]
M. Lipow. Number of faults per line of code. IEEE Transactions on Software Engineering, (4):437--439, 1982.
[22]
T. J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, (4):308--320, 1976.
[23]
H. Mei and X. Liu. Internetware: An emerging software paradigm for internet computing. Journal of computer science and technology, 26(4):588--599, 2011.
[24]
T. Menzies, J. Greenwald, and A. Frank. Data mining static code attributes to learn defect predictors. IEEE Transactions on Software Engineering, 33(1):2--13, 2007.
[25]
R. Moser, W. Pedrycz, and G. Succi. A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction. In Proceedings of the ACM/IEEE 30th International Conference on Software Engineering, pages 181--190. IEEE, 2008.
[26]
N. Nagappan and T. Ball. Use of relative code churn measures to predict system defect density. In Proceedings of the 27th International Conference on Software Engineering, pages 284--292. IEEE, 2005.
[27]
T. Nakamura, L. Hochstein, and V. R. Basili. Identifying domain-specific defect classes using inspections and change history. In Proceedings of the ACM/IEEE 28th international symposium on Empirical software engineering, pages 346--355. ACM, 2006.
[28]
T. J. Ostrand, E. J. Weyuker, and R. M. Bell. Where the bugs are. In ACM SIGSOFT Software Engineering Notes, volume 29, pages 86--96. ACM, 2004.
[29]
F. Rahman and P. Devanbu. How, and why, process metrics are better. In Proceedings of the 2013 International Conference on Software Engineering, pages 432--441. IEEE Press, 2013.
[30]
F. Rahman, S. Khatri, E. T. Barr, and P. Devanbu. Comparing static bug finders and statistical prediction. In Proceedings of the 36th International Conference on Software Engineering, pages 424--434. ACM, 2014.
[31]
F. Rahman, D. Posnett, and P. Devanbu. Recalling the imprecision of cross-project defect prediction. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, page 61. ACM, 2012.
[32]
N. Rutar, C. B. Almazan, and J. S. Foster. A comparison of bug finding tools for java. In In Proceedings of the 15th International Symposium on Software Reliability Engineering, pages 245--256. IEEE, 2004.
[33]
C. Sadowski, J. van Gogh, C. Jaspan, E. Soederberg, and C. Winter. Tricorder: Building a program analysis ecosystem. In Proceedings of the International Conference on Software Engineering, 2015.
[34]
F. Shull, V. Basili, B. Boehm, P. Costa, M. Lindvall, D. Port, I. Rus, R. Tesoriero, M. Zelkowitz, et al. What we have learned about fighting defects. In Proceedings of 8th IEEE Symposium on Software Metrics, pages 249--258. IEEE, 2002.
[35]
M. Takahashi and Y. Kamayachi. An empirical study of a model for program error prediction. In Proceedings of the 8th International Conference on Software Engineering, pages 330--336. IEEE Computer Society Press, 1985.
[36]
A. Tosun, A. B. Bener, and R. Kale. Ai-based software defect predictors: Applications and benefits in a case study. In Proceedings of the 22th Innovative Applications of Artificial Intelligence Conference, pages 1748--1755, 2010.
[37]
C.-P. Wong, Y. Xiong, H. Zhang, D. Hao, L. Zhang, and H. Mei. Boosting bug-report-oriented fault localization with segmentation and stack-trace analysis. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution, pages 181--190, 2014.
[38]
D. Worth, C. Greenough, and L. Chin. A survey of c and c++ software tools for computational science. Science and Technologies Facilities Council, pages 1--38, 2009.
[39]
J. Zhang, X. Wang, D. Hao, B. Xie, L. Zhang, and H. Mei. A survey on bug-report analysis. SCIENCE CHINA Information Sciences, 58(2):1--24, 2015.
[40]
T. Zimmermann, R. Premraj, and A. Zeller. Predicting defects for eclipse. In International Workshop on Predictor Models in Software Engineering, pages 9--9. IEEE, 2007.

Cited By

View all
  • (2024)Studying the impact of risk assessment analytics on risk awareness and code review performanceEmpirical Software Engineering10.1007/s10664-024-10443-x29:2Online publication date: 17-Feb-2024
  • (2021)Warning-Introducing Commits vs Bug-Introducing Commits: A tool, statistical models, and a preliminary user study2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00051(433-443)Online publication date: May-2021
  • (2020)Deep learning based software defect predictionNeurocomputing10.1016/j.neucom.2019.11.067385:C(100-110)Online publication date: 14-Apr-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
Internetware '15: Proceedings of the 7th Asia-Pacific Symposium on Internetware
November 2015
247 pages
ISBN:9781450336413
DOI:10.1145/2875913
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]

In-Cooperation

  • Key Laboratory of High Confidence Software Technologies: Key Laboratory of High Confidence Software Technologies, Ministry of Education

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 November 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Defect
  2. code feature
  3. defect pattern
  4. machine learning
  5. predictive model
  6. static defect analyzer

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

  • the High-Tech Research and Development Program of China
  • the National Natural Science Foundation of China

Conference

Internetware '15

Acceptance Rates

Overall Acceptance Rate 55 of 111 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)2
Reflects downloads up to 28 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Studying the impact of risk assessment analytics on risk awareness and code review performanceEmpirical Software Engineering10.1007/s10664-024-10443-x29:2Online publication date: 17-Feb-2024
  • (2021)Warning-Introducing Commits vs Bug-Introducing Commits: A tool, statistical models, and a preliminary user study2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00051(433-443)Online publication date: May-2021
  • (2020)Deep learning based software defect predictionNeurocomputing10.1016/j.neucom.2019.11.067385:C(100-110)Online publication date: 14-Apr-2020
  • (2018)WarningsGuru: integrating statistical bug models with static analysis to provide timely and specific bug warningsProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3264599(892-895)Online publication date: 26-Oct-2018
  • (2017)Delta-benchProceedings of the 11th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1109/ESEM.2017.24(163-168)Online publication date: 9-Nov-2017

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media