一句话:提出双层深度学习模型 DLFix,从历史修复及上下文学得代码变换,用于自动程序修复。
自动程序修复(APR)能帮助开发者进行软件开发与维护。尽管深度学习(DL)取得进展,现有基于 DL 的 APR 方法在学习缺陷修复代码变更以及这些变更周围源代码上下文方面仍存在局限,从而产生错误的修复位置或修复。本文提出 DLFix,将 APR 视为从历史缺陷修复及其周围代码上下文中学习代码变换。该模型分为两层:第一层是基于树的 RNN,用于学习缺陷修复的上下文,其输出作为额外的加权输入传给第二层;第二层则专门学习缺陷修复的代码变换。摘要未报告具体的评估结果。
Automated Program Repair (APR) is very useful in helping developers in the process of software development and maintenance. Despite recent advances in deep learning (DL), the DL-based APR approaches still have limitations in learning bug-fixing code changes and the context of the surrounding source code of the bug-fixing code changes. These limitations lead to incorrect fixing locations or fixes. In this paper, we introduce DLFix, a two-tier DL model that treats APR as code transformation learning from the prior bug fixes and the surrounding code contexts of the fixes. The first layer is a tree-based RNN model that learns the contexts of bug fixes and its result is used as an additional weighting input for the second layer designed to learn the bug-fixing code transformations.
DOI 原文 ·
@inproceedings{paperbot5663,
title = {DLFix},
author = {Yi Li and Shaohua Wang and Tien N. Nguyen},
booktitle = {ICSE},
year = {2020},
doi = {10.1145/3377811.3380345}
}