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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
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.
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.
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.
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.
Long, F., & Rinard, M. (2016). Automatic patch generation by learning correct code. In POPL’16 (pp. 298–312). New York: ACM.
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.
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.
Pan, K., Kim, S., & Whitehead, E. J, Jr. (2009). Toward an understanding of bug fix patterns. Empirical Software Engineering, 14(3), 286–315.
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.
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.
Zhong, H., & Su, Z. (2015). An empirical study on real bug fixes. In Proceedings of ICSE’15 (pp. 913–923). Piscataway: IEEE Press.
Acknowledgements
This work was partially supported by CAPES, CNPQ and FAPEMIG.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)