Yi Li bio photo

Yi Li

Associate Professor

College of Computing and Data Science (CCDS)
Nanyang Technological University (NTU)

Address: Block N4-02b-63
50 Nanyang Avenue, Singapore 639798
Phone: +65 6790 4287

Email Twitter LinkedIn GitHub Bitbucket Google Scholar ORCID

PRECFIX: Large-Scale Patch Recommendation by Mining Defect-Patch Pairs

Xindong Zhang, Chenguang Zhu, Yi Li, Jianmei Guo, Lihua Liu, and Haobo Gu

In Proceedings of the 42nd International Conference on Software Engineering (ICSE), 2020

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.


  author = {Zhang, Xindong and Zhu, Chenguang and Li, Yi and Guo, Jianmei and Liu, Lihua and Gu, Haobo},
  booktitle = {Proceedings of the 42nd International Conference on Software Engineering (ICSE)},
  month = jun,
  pages = {41--50},
  title = {{PRECFIX}: Large-Scale Patch Recommendation by Mining Defect-Patch Pairs},
  year = {2020}