中文

用运行时信息增强代码差异

软件工程 2023-10-13 v2

摘要

源代码差异(diff)作为代码审查、检查和审计的一部分被日常使用。为便于理解,它们通常伴有描述程序中变更本质的解释。由于手动制作高质量解释是一项繁琐任务,研究者已提出自动生成代码差异解释的技术。现有解释生成方法仅关注静态分析,即未利用运行时信息来解释代码变更。在本文中,我们提出 Collector-Sahab,一种用运行时差异信息增强代码差异的新工具。Collector-Sahab 比较程序的原始(旧)版本与补丁(新)版本的程序状态以寻找唯一的变量值。然后,Collector-Sahab 将此新颖的运行时信息添加到源代码差异中,如代码审查系统所示。作为评估,我们在 Defects4J 缺陷的 584 个代码差异上运行 Collector-Sahab,发现其成功为其中 95%(555/584)增强了代码差异。我们还进行了用户研究,邀请八名参与者对 Collector-Sahab 生成的增强代码差异打分。根据该用户研究,我们得出结论:开发者认为向代码差异添加运行时数据的想法有前景且有用。总体而言,我们的实验展示了 Collector-Sahab 在利用运行时差异信息增强代码差异方面的有效性与有用性。公开可用仓库:https://github.com/ASSERT-KTH/collector-sahab。

关键词

引用

@article{arxiv.2212.11077,
  title  = {Augmenting Diffs With Runtime Information},
  author = {Khashayar Etemadi and Aman Sharma and Fernanda Madeiral and Martin Monperrus},
  journal= {arXiv preprint arXiv:2212.11077},
  year   = {2023}
}