修复代码时该关注何处?神经模型与开发者的注意力比较
软件工程
2023-05-15 v1
摘要
基于神经网络的自动化程序修复技术正变得日益有效。尽管取得了成功,人们对其成败原因以及其推理待修复代码的方式与人类开发者相比如何知之甚少。本文提出首项比较人类与神经程序修复的深入研究。具体而言,我们探究了人类与两种最先进神经修复模型分别关注缺陷代码的哪些部分。这一比较得益于一种新颖的面向人类代码编辑的注意力追踪界面,基于此我们收集了98个缺陷修复会话的数据集,并借助神经修复模型的注意力层实现。结果表明,人类与两种神经模型的注意力常重叠(相关性0.35至0.44)。同时,人类与模型之间的一致性仍有改进空间,这由更高的人类间相关性0.56所证实。两种模型要么主要关注缺陷行要么关注周围上下文,而开发者采用随时间演化的混合方式,其中36.8%的注意力给予缺陷行,其余给予上下文。总体而言,我们发现人类在寻找正确修复方面仍明显更有效,正确预测补丁比例为67.3%对低于3%。本研究的结果与数据是为更深入理解神经程序修复内部过程的第一步,并提供了受人类开发者行为启发的、关于如何进一步改进神经修复模型的见解。
引用
@article{arxiv.2305.07287,
title = {Where to Look When Repairing Code? Comparing the Attention of Neural Models and Developers},
author = {Dominik Huber and Matteo Paltenghi and Michael Pradel},
journal= {arXiv preprint arXiv:2305.07287},
year = {2023}
}