中文

交互式补丁过滤作为调试辅助手段

软件工程 2020-04-28 v2

摘要

人们普遍认为,程序修复工具需要具有高精度才能有用,即生成的补丁需要具有高概率是正确的。然而,从根本上确保补丁的正确性是困难的,许多工具为了可接受的精度而牺牲了修复性能的其他方面,例如召回率。本文中我们提出一个问题:低精度的修复工具是否仍然有用?为了探索这个问题,我们提出了一种交互式过滤方法用于补丁审查,该方法通过向开发者提问来过滤掉不正确的补丁。我们的直觉是,不正确的补丁仍然有助于理解错误。在适当的工具支持下,即使存在许多错误的补丁,其收益也超过成本。我们将该方法实现为一个Eclipse插件工具InPaFer,并通过模拟实验和一项有30名开发者参与的用户研究对其进行了评估。结果表明,我们的方法提高了开发者的修复性能,平均成功修复的错误增加了62.5%,调试时间减少了25.3%。特别是,即使生成的补丁全部错误,开发者的性能也不会显著降低,并且当某些补丁提供了有用的修复信息(如错误位置和部分修复)时,性能还能得到提升。

关键词

引用

@article{arxiv.2004.08746,
  title  = {Interactive Patch Filtering as Debugging Aid},
  author = {Jingjing Liang and Ruyi Ji and Jiajun Jiang and Yiling Lou and Yingfei Xiong and Gang Huang},
  journal= {arXiv preprint arXiv:2004.08746},
  year   = {2020}
}