Abstract
Code review is one of the most time-consuming and costly activities in modern software development. For the code submissions that can not be accepted by reviewers, developers need to re-modify the code again. Developers desire to minimize the time-cost that spends in the code review process. In some cases, a submission might be submitted many times and still not be accepted. The number of review times has serious implications for defect repairs and the progress of development. Therefore, a few recent studies focused on discussing factors that effect submission acceptance, while these prior studies did not try to predict submission acceptance or the number of review times. In this paper, we propose a novel method to predict the time-cost in code review before a submission is accepted. Our approach uses a number of features, including review meta-features, code modifying features and code coupling features, to better reflect code changes and review process. To examine the benefits of our method, we perform experiments on two large open source projects, namely Eclipse and OpenDaylight. Our results show that the proposed approach in the problem of predicting submission acceptance achieves an accuracy of 79.72%, 80.03% for Eclipse and OpenDaylight, respectively. For the prediction of review times ranges, our method achieves an accuracy of 66.42% and 60.42% for Eclipse and OpenDaylight, respectively.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
References
McIntosh, S., Kamei, Y., Adams, B., Hassan, A.E.: An empirical study of the impact of modern code review practices on software quality. Empirical Softw. Eng. 21(5), 2146–2189 (2016)
Huang, Y., Zheng, Q., Chen, X., Xiong, Y., Liu, Z., Luo, X.: Mining version control system for automatically generating commit comment. In: 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), pp. 414–423, November 2017
Huang, Y., Chen, X., Liu, Z., Luo, X., Zheng, Z.: Using discriminative feature in software entities for relevance identification of code changes. J. Softw.: Evol. Process 29(7), e1859 (2017). e1859 smr.1859
Fagan, M.: Design and code inspections to reduce errors in program development. In: Broy, M., Denert, E. (eds.) Software Pioneers, pp. 575–607. Springer, Heidelberg (2002). https://doi.org/10.1007/978-3-642-59412-0_35
McIntosh, S., Kamei, Y., Adams, B., Hassan, A.E.: The impact of code review coverage and code review participation on software quality: a case study of the QT, VTK, and ITK projects. In: Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 192–201. ACM (2014)
Huang, Y., Chen, X., Zou, Q., Luo, X.: A probabilistic neural network-based approach for related software changes detection. In: 2014 21st Asia-Pacific Software Engineering Conference, vol. 1, pp. 279–286, December 2014
Huang, Y., Jia, N., Chen, X., Hong, K., Zheng, Z.: Salient-class location: help developers understand code change in code review. In: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ser. ESEC/FSE 2018, pp. 770–774. ACM, New York (2018)
Baysal, O., Kononenko, O., Holmes, R., Godfrey, M.W.: The influence of non-technical factors on code review. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 122–131. IEEE (2013)
Chen, H., Huang, Y., Liu, Z., Chen, X., Zhou, F., Luo, X.: Automatically detecting the scopes of source code comments. J. Syst. Softw. 153, 45–63 (2019)
Huang, Y., Kong, Q., Jia, N., Chen, X., Zheng, Z.: Recommending differentiated code to support smart contract update. In: 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC), pp. 260–270, May 2019
Huang, Y., Hu, X., Jia, N., Chen, X., Xiong, Y., Zheng, Z.: Learning code context information to predict comment locations. IEEE Trans. Reliab. 1–18 (2019)
Thongtanunam, P., Tantithamthavorn, C., Kula, R.G., Yoshida, N., Iida, H., Matsumoto, K.-I.: Who should review my code? A file location-based code-reviewer recommendation approach for modern code review. In: 2015 IEEE 22nd International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 141–150. IEEE (2015)
Eyolfson, J., Tan, L., Lam, P.: Do time of day and developer experience affect commit bugginess? In: Proceedings of the 8th Working Conference on Mining Software Repositories, ser. MSR 2011, pp. 153–162. ACM, New York (2011)
Huang, Y., Jia, N., Zhou, Q., Chen, X., Yingfei, X., Luo, X.: Poster: guiding developers to make informative commenting decisions in source code. In: 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion), pp. 260–261, May 2018
Hassan, A.E., Holt, R.C.: Predicting change propagation in software systems. In: Proceedings of the 20th IEEE International Conference on Software Maintenance, pp. 284–293. IEEE (2004)
Malik, H., Hassan, A.E.: Supporting software evolution using adaptive change propagation heuristics. In: IEEE International Conference on Software Maintenance, ICSM 2008, pp. 177–186. IEEE 2008 (2008)
Ying, A.T., Murphy, G.C., Ng, R., Chu-Carroll, M.C.: Predicting source code changes by mining change history. IEEE Trans. Softw. Eng. 30(9), 574–586 (2004)
Chen, T., Guestrin, C.: XGBoost: a scalable tree boosting system. In: Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 785–794. ACM (2016)
Chawla, N.V., Bowyer, K.W., Hall, L.O., Kegelmeyer, W.P.: SMOTE: synthetic minority over-sampling technique. J. Artif. Intell. Res. 16, 321–357 (2002)
Kononenko, O., Baysal, O., Guerrouj, L., Cao, Y., Godfrey, M.W.: Investigating code review quality: do people and participation matter? In: 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 111–120. IEEE (2015)
Thongtanunam, P., McIntosh, S., Hassan, A.E., Iida, H.: Review participation in modern code review. Empirical Softw. Eng. 22(2), 768–817 (2017)
Weißgerber, P., Neu, D., Diehl, S.: Small patches get in! In: Proceedings of the 2008 International Working Conference on Mining Software Repositories, pp. 67–76. ACM (2008)
Rigby, P.C., Bird, C.: Convergent contemporary software peer review practices. In: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pp. 202–212. ACM (2013)
Bosu, A., Carver, J.C., Bird, C., Orbeck, J., Chockley, C.: Process aspects and social dynamics of contemporary code review: insights from open source development and industrial practice at microsoft. IEEE Trans. Softw. Eng. 43(1), 56–75 (2017)
Kononenko, O., Baysal, O., Godfrey, M.W.: Code review quality: how developers see it. In: 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE), pp. 1028–1038. IEEE (2016)
Balachandran, V.: Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation. In: Proceedings of the 2013 International Conference on Software Engineering, pp. 931–940. IEEE Press (2013)
Tsotsis, A.: Meet Phabricator, the Witty Code Review Tool Built Inside Facebook (2006)
Acknowledgments
This research is supported by the National Natural Science Foundation of China (61902441, 61902105), China Postdoctoral Science Foundation (2018M640855).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Huang, Y., Jia, N., Zhou, X., Hong, K., Chen, X. (2020). Would the Patch Be Quickly Merged?. In: Zheng, Z., Dai, HN., Tang, M., Chen, X. (eds) Blockchain and Trustworthy Systems. BlockSys 2019. Communications in Computer and Information Science, vol 1156. Springer, Singapore. https://doi.org/10.1007/978-981-15-2777-7_37
Download citation
DOI: https://doi.org/10.1007/978-981-15-2777-7_37
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-15-2776-0
Online ISBN: 978-981-15-2777-7
eBook Packages: Computer ScienceComputer Science (R0)