[go: up one dir, main page]

Skip to main content

Supporting Code Review by Automatic Detection of Potentially Buggy Changes

  • Conference paper
Beyond Databases, Architectures and Structures (BDAS 2015)

Abstract

Code reviews constitute an important activity in software quality assurance. Although they are essentially based on human expertise and scrupulosity, they can also be supported by automated tools. In this paper we present such a solution integrated with code review tools. It is based on a SVM classifier that indicates potentially buggy changes. We train such a classifier on the history of a project. In order to construct a training set, we assume that a change/commit is buggy if its modifications has been later altered by a bug-fix commit. We evaluated our approach on 77 selected projects taken from GitHub and achieved promising results. We also assessed the quality of the resulting classifier depending on the size of a project and the fraction of the history of a project that have been used to build the training set.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Arisholm, E., Briand, L.C., Johannessen, E.B.: A systematic and comprehensive investigation of methods to build and evaluate fault prediction models. Journal of Systems and Software 83(1), 2–17 (2010), http://dx.doi.org/10.1016/j.jss.2009.06.055

    Article  Google Scholar 

  2. Bird, C., Rigby, P.C., Barr, E.T., Hamilton, D.J., Germán, D.M., Devanbu, P.T.: The promises and perils of mining git. In: Proceedings of the 6th International Working Conference on Mining Software Repositories, MSR 2009 (Co-located with ICSE), Vancouver, BC, Canada,, May 16-17, pp. 1–10 (2009), http://dx.doi.org/10.1109/MSR.2009.5069475

  3. Catal, C., Diri, B.: A systematic review of software fault prediction studies. Expert Systems with Applications 36(4), 7346–7354 (2009)

    Article  Google Scholar 

  4. D’Ambros, M., Lanza, M., Robbes, R.: An extensive comparison of bug prediction approaches. In: Proceedings of the 7th International Working Conference on Mining Software Repositories, MSR 2010 (Co-located with ICSE), Cape Town, South Africa, May 2-3, pp. 31–41 (2010), http://dx.doi.org/10.1109/MSR.2010.5463279

  5. D’Ambros, M., Lanza, M., Robbes, R.: An extensive comparison of bug prediction approaches. In: Proceedings of the 7th International Working Conference on Mining Software Repositories, MSR 2010 (Co-located with ICSE), Cape Town, South Africa, May 2-3, 2010, Proceedings. pp. 31–41 (2010), http://dx.doi.org/10.1109/MSR.2010.5463279

  6. Fejzer, M.: Commit classification application. Project on Github code repository (2014), https://github.com/mfejzer/CommitClassification

  7. Hall, M.A., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., Witten, I.H.: The WEKA data mining software: an update. SIGKDD Explorations 11(1), 10–18 (2009), http://doi.acm.org/10.1145/1656274.1656278

    Article  Google Scholar 

  8. Jeong, G., Kim, S., Zimmermann, T., Yi, K.: Improving code review by predicting reviewers and acceptance of patches. Research on Software Analysis for Error-free Computing Center Tech-Memo (ROSAEC MEMO 2009-006) (2009)

    Google Scholar 

  9. Joachims, T.: Text categorization with support vector machines. In: Nédellec, C., Rouveirol, C. (eds.) ECML 1998. LNCS, vol. 1398, pp. 137–142. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  10. Kim, S.: Adaptive bug prediction by analyzing project history. University of California, Santa Cruz (2006)

    Google Scholar 

  11. Kim, S., Whitehead Jr., E.J., Zhang, Y.: Classifying software changes: Clean or buggy? IEEE Trans. Software Eng. 34(2), 181–196 (2008), http://doi.ieeecomputersociety.org/10.1109/TSE.2007.70773

    Article  Google Scholar 

  12. Moors, A., Piessens, F., Odersky, M.: Parser combinators in scala. CW Reports (2008)

    Google Scholar 

  13. Nelson, S.D., Schumann, J.: What makes a code review trustworthy? In: 37th Hawaii International Conference on System Sciences (HICSS-37 2004), CD-ROM / Abstracts Proceedings, Big Island, HI, USA, January 5-8 (2004), http://dx.doi.org/10.1109/HICSS.2004.1265711

  14. Ostrand, T.J., Weyuker, E.J., Bell, R.M.: Programmer-based fault prediction. In: Proceedings of the 6th International Conference on Predictive Models in Software Engineering, PROMISE 2010, Timisoara, Romania, September 12-13, p. 19 (2010), http://doi.acm.org/10.1145/1868328.1868357

  15. Radjenovic, D., Hericko, M., Torkar, R., Zivkovic, A.: Software fault prediction metrics: A systematic literature review. Information & Software Technology 55(8), 1397–1418 (2013), http://dx.doi.org/10.1016/j.infsof.2013.02.009

    Article  Google Scholar 

  16. Ray, B., Posnett, D., Filkov, V., Devanbu, P.T.: A large scale study of programming languages and code quality in github. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE-22), Hong Kong, China, November 16 - 22, pp. 155–165 (2014), http://doi.acm.org/10.1145/2635868.2635922

  17. Shivaji, S., Whitehead Jr., E.J., Akella, R., Kim, S.: Reducing features to improve code change-based bug prediction. IEEE Trans. Software Eng. 39(4), 552–569 (2013), http://doi.ieeecomputersociety.org/10.1109/TSE.2012.43

    Article  Google Scholar 

  18. Sliwerski, J., Zimmermann, T., Zeller, A.: When do changes induce fixes? In: Proceedings of the 2005 International Workshop on Mining Software Repositories, MSR 2005, Saint Louis, Missouri, USA, May 17 (2005), http://doi.acm.org/10.1145/1083142.1083147

  19. Tian, Y., Lawall, J.L., Lo, D.: Identifying linux bug fixing patches. In: 34th International Conference on Software Engineering, ICSE 2012, Zurich, Switzerland, June 2-9, pp. 386–396 (2012), http://dx.doi.org/10.1109/ICSE.2012.6227176

  20. Treude, C., Storey, M.A.D.: Work item tagging: Communicating concerns in collaborative software development. IEEE Trans. Software Eng. 38(1), 19–34 (2012), http://doi.ieeecomputersociety.org/10.1109/TSE.2010.91

    Article  Google Scholar 

  21. Vapnik, V.: Estimation of Dependences Based on Empirical Data: Springer Series in Statistics (Springer Series in Statistics). Springer-Verlag New York, Inc., Secaucus (1982)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mikołaj Fejzer .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Fejzer, M., Wojtyna, M., Burzańska, M., Wiśniewski, P., Stencel, K. (2015). Supporting Code Review by Automatic Detection of Potentially Buggy Changes. In: Kozielski, S., Mrozek, D., Kasprowski, P., Małysiak-Mrozek, B., Kostrzewa, D. (eds) Beyond Databases, Architectures and Structures. BDAS 2015. Communications in Computer and Information Science, vol 521. Springer, Cham. https://doi.org/10.1007/978-3-319-18422-7_42

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-18422-7_42

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-18421-0

  • Online ISBN: 978-3-319-18422-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics