Skip to main content

Mining Historical Information to Study Bug Fixes

  • Conference paper
  • First Online:
Information Technology - New Generations

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 558))

  • 3184 Accesses

Abstract

Software is present in almost all economic activity, and is boosting economic growth from many perspectives. At the same time, like any other man-made artifacts, software suffers from various bugs which lead to incorrect results, deadlocks, or even crashes of the entire system. Several approaches have been proposed to aid debugging. An interesting recent research direction is automatic program repair, which achieves promising results towards the reduction of costs associated with defect repair in software maintenance. The identification of common bug fix patterns is important to generate program patches automatically. In this paper, we conduct an empirical study with more than 4 million bug fixing commits distributed among 101,471 Java projects hosted on GitHub. We used a domain-specific programming language called Boa to analyze ultra-large-scale data efficiently. With Boa’s support, we automatically detect the prevalence of the 5 most common bug fix patterns (identified in the work of Pan et al.) in those bug fixing commits.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover 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

Notes

  1. 1.

    http://boa.cs.iastate.edu/docs/dsl-types.php(verifiedon20/07/2016)

  2. 2.

    http://boa.cs.iastate.edu/docs/dsl-types.php

  3. 3.

    http://boa.cs.iastate.edu/docs/dsl-types.php

  4. 4.

    http://boa.cs.iastate.edu/docs/dsl-types.php#Expression

  5. 5.

    https://github.com/eduardocunha11/BoaPrograms (verified on 15/09/2016)

References

  1. Dyer, R., Nguyen, H. A., Rajan, H., & Nguyen, T. N. (2015). Boa: Ultra-large-scale software repository and source-code mining. ACM Transactions on Software Engineering and Methodology, 25(1), 7:1–7:34.

    Google Scholar 

  2. Kim, D., Nam, J., Song, J., & Kim, S. (2013). Automatic patch generation learned from human-written patches. In Proceedings of the ICSE’13 (pp. 802–811). Piscataway: IEEE Press.

    Google Scholar 

  3. Kim, S., & Whitehead, E. J, Jr. (2006). How long did it take to fix bugs? In Proceedings of MSR’06 (pp. 173–174). New York: ACM.

    Google Scholar 

  4. Le Goues, C., Dewey-Vogt, M., Forrest, S., & Weimer, W. (2012). A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. In Proceedings of ICSE’12 (pp. 3–13). Piscataway: IEEE Press.

    Google Scholar 

  5. Long, F., & Rinard, M. (2016). Automatic patch generation by learning correct code. In POPL’16 (pp. 298–312). New York: ACM.

    Google Scholar 

  6. Martinez, M., & Monperrus, M. (2015). Mining software repair models for reasoning on the search space of automated program fixing. Empirical Software Engineering, 20(1), 176–205.

    Article  Google Scholar 

  7. Monperrus, M. (2014). A critical review of “automatic patch generation learned from human-written patches”: Essay on the problem statement and the evaluation of automatic software repair. In Proceedings of the ICSE’2014 (pp. 234–242). New York: ACM.

    Google Scholar 

  8. Pan, K., Kim, S., & Whitehead, E. J, Jr. (2009). Toward an understanding of bug fix patterns. Empirical Software Engineering, 14(3), 286–315.

    Google Scholar 

  9. Soto, M., Thung, F., Wong, C. -P. Le Goues, C., & Lo, D. (2016). A deeper look into bug fixes: Patterns, replacements, deletions, and additions. In Proceedings of MSR’16 (pp. 512–515). ACM.

    Google Scholar 

  10. Xuan, J., Martinez, M., DeMarco, F., Clément, M., Lamelas, S., Durieux, T., Le Berre, D., & Monperrus, M. (2016). Nopol: Automatic repair of conditional statement bugs in Java programs. IEEE Transactions on Software Engineering.

    Google Scholar 

  11. Zhong, H., & Su, Z. (2015). An empirical study on real bug fixes. In Proceedings of ICSE’15 (pp. 913–923). Piscataway: IEEE Press.

    Google Scholar 

Download references

Acknowledgements

This work was partially supported by CAPES, CNPQ and FAPEMIG.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eduardo C. Campos .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Cite this paper

Campos, E.C., Maia, M.A. (2018). Mining Historical Information to Study Bug Fixes. In: Latifi, S. (eds) Information Technology - New Generations. Advances in Intelligent Systems and Computing, vol 558. Springer, Cham. https://doi.org/10.1007/978-3-319-54978-1_68

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-54978-1_68

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-54977-4

  • Online ISBN: 978-3-319-54978-1

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics