中文

基于测试的补丁聚类用于自动生成补丁评估

软件工程 2024-08-28 v2

摘要

已有研究表明,自动化程序修复(APR)技术存在过拟合问题。当某个补丁运行且测试套件未暴露任何错误,但该补丁实际未修复底层缺陷或引入了测试套件未覆盖的新缺陷时,即发生过拟合。因此,APR工具生成的补丁需由人类程序员验证,这可能非常耗时,并阻碍了APR工具在实际中的采用。我们的工作旨在最小化程序员必须审查的似真补丁数量,从而减少找到正确补丁所需时间。我们引入一种名为xTestCluster的新型轻量级基于测试的补丁聚类方法,其根据补丁的动态行为聚类。xTestCluster应用于补丁生成阶段之后,以分析来自一个或多个修复工具的补丁,并提供关于这些补丁的更多信息以辅助补丁评估。xTestCluster的新颖性在于利用新生成测试用例的执行信息来聚类由多种APR方法生成的补丁。一个聚类由在相同生成测试用例上失败的补丁组成。xTestCluster的输出为开发者提供:a) 减少待分析补丁数的途径,因可专注于分析每类中样本补丁;b) 附于每个补丁的额外信息。在分析来自21个Java APR工具的902个似真补丁后,我们的结果显示xTestCluster能以中位数50%的比例减少待审查与分析的补丁数。xTestCluster能为必须审查APR工具所生成大量补丁的开发者节省显著时间,并为其提供暴露生成补丁间行为差异的新测试用例。

关键词

引用

@article{arxiv.2207.11082,
  title  = {Test-based Patch Clustering for Automatically-Generated Patches Assessment},
  author = {Matias Martinez and Maria Kechagia and Anjana Perera and Justyna Petke and Federica Sarro and Aldeida Aleti},
  journal= {arXiv preprint arXiv:2207.11082},
  year   = {2024}
}

备注

Published in Springer Empirical Software Engineering, Volume 29, article number 116 (2024)