@inproceedings{c83a097c5d044a80aed37e20e6dc0afc,
title = "Precfix: Large-scale patch recommendation by mining defect-patch pairs",
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.",
keywords = "Defect detection, Patch generation, Patch recommendation",
author = "Xindong Zhang and Chenguang Zhu and Yi Li and Jianmei Guo and Lihua Liu and Haobo Gu",
note = "Publisher Copyright: {\textcopyright} 2020 IEEE Computer Society. All rights reserved.; 42nd ACM/IEEE International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2020 ; Conference date: 27-06-2020 Through 19-07-2020",
year = "2020",
month = jun,
day = "27",
doi = "10.1145/3377813.3381356",
language = "英语",
series = "Proceedings - International Conference on Software Engineering",
publisher = "IEEE Computer Society",
pages = "41--50",
booktitle = "Proceedings - 2020 ACM/IEEE 42nd International Conference on Software Engineering",
address = "美国",
}