Automated Description Generation for Software Patches
arXiv:2402.03805 · doi:10.1016/j.infsof.2024.107543
Abstract
Software patches are pivotal in refining and evolving codebases, addressing bugs, vulnerabilities, and optimizations. Patch descriptions provide detailed accounts of changes, aiding comprehension and collaboration among developers. However, manual description creation poses challenges in terms of time consumption and variations in quality and detail. In this paper, we propose PATCHEXPLAINER, an approach that addresses these challenges by framing patch description generation as a machine translation task. In PATCHEXPLAINER, we leverage explicit representations of critical elements, historical context, and syntactic conventions. Moreover, the translation model in PATCHEXPLAINER is designed with an awareness of description similarity. Particularly, the model is explicitly trained to recognize and incorporate similarities present in patch descriptions clustered into groups, improving its ability to generate accurate and consistent descriptions across similar patches. The dual objectives maximize similarity and accurately predict affiliating groups. Our experimental results on a large dataset of real-world software patches show that PATCHEXPLAINER consistently outperforms existing methods, with improvements up to 189% in BLEU, 5.7X in Exact Match rate, and 154% in Semantic Similarity, affirming its effectiveness in generating software patch descriptions.
arXiv commentAccepted for publication in Information and Software Technology
References in corpus (8)
- Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation
- LoRA: Low-Rank Adaptation of Large Language Models
- Code Llama: Open Foundation Models for Code
- A Critical Review of "Automatic Patch Generation Learned from Human-Written Patches": Essay on the Problem Statement and the Evaluation of Automatic Software Repair
- CC2Vec: Distributed Representations of Code Changes
- Lost in Translation: A Study of Bugs Introduced by Large Language Models while Translating Code
- Code Structure Guided Transformer for Source Code Summarization
- What Makes a Good Commit Message?