Precfix: Large-scale patch recommendation by mining defect-patch pairs

11Citations
Citations of this article
29Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Patch recommendation is the process of identifying errors in software systems and suggesting suitable fixes for them. Patch recommendation can significantly improve developer productivity by reducing both the debugging and repairing time. Existing techniques usually rely on complete test suites and detailed debugging reports, which are often absent in practical industrial settings. In this paper, we propose Precfix, a pragmatic approach targeting large-scale industrial codebase and making recommendations based on previously observed debugging activities. Precfix collects defect-patch pairs from development histories, performs clustering, and extracts generic reusable patching patterns as recommendations. We conducted experimental study on an industrial codebase with 10K projects involving diverse defect patterns. We managed to extract 3K templates of defect-patch pairs, which have been successfully applied to the entire codebase. Our approach is able to make recommendations within milliseconds and achieves a false positive rate of 22% confirmed by manual review. The majority (10/12) of the interviewed developers appreciated Precfix, which has been rolled out to Alibaba to support various critical businesses.

Cite

CITATION STYLE

APA

Zhang, X., Zhu, C., Li, Y., Guo, J., Liu, L., & Gu, H. (2020). Precfix: Large-scale patch recommendation by mining defect-patch pairs. In Proceedings - International Conference on Software Engineering (pp. 41–50). IEEE Computer Society. https://doi.org/10.1145/3377813.3381356

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free