Jointly Learning to Repair Code and Generate Commit Message
Jiaqi Bai, Long Zhou, Ambrosio Blanco, Shujie Liu, Furu Wei, Ming, Zhou, Zhoujun Li

TL;DR
This paper introduces a unified approach for simultaneously repairing buggy code and generating commit messages, leveraging a joint model and enhanced training methods to improve performance in both tasks.
Contribution
It presents the first joint model for code repair and commit message generation, along with a multilingual dataset and enhanced training strategies to address error propagation.
Findings
Joint model outperforms cascaded models in commit message generation.
Enhanced cascaded models with teacher-student and multi-task methods improve code repair accuracy.
The joint model effectively reduces error propagation between tasks.
Abstract
We propose a novel task of jointly repairing program codes and generating commit messages. Code repair and commit message generation are two essential and related tasks for software development. However, existing work usually performs the two tasks independently. We construct a multilingual triple dataset including buggy code, fixed code, and commit messages for this novel task. We provide the cascaded models as baseline, which are enhanced with different training approaches, including the teacher-student method, the multi-task method, and the back-translation method. To deal with the error propagation problem of the cascaded method, the joint model is proposed that can both repair the code and generate the commit message in a unified framework. Experimental results show that the enhanced cascaded model with teacher-student method and multitask-learning method achieves the best score on…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
MethodsRepair
