In the research of automated program repair (APR), benchmark datasets consisting of known defects in combination with test suites that indicate the defects are of high importance. They allow for an evidence-based comparison of different APR approaches. In our own work on APR we found significant challenges when working with widely used defect datasets, which go beyond mere repeatability of defects via test cases. We summarize these identified challenges and related lessons learned to bring them to the attention of the APR community and quantify the potential impact of them. In particular, we investigate the widely used benchmark Defects4J, which has according to Google Scholar over 1,800 citations. It consists of 835 defects from 17 open-source Java projects; a hand-curated collection of defects, test suites that clearly indicate the defect, and human patches where any unrelated changes are removed. We find that, when executing the test suites with strict requirements for reproducibility in APR settings (beyond merely reproducing the defect via test cases), 180 (21.6 %) of the defects are not suitable for evaluation experiments. Further, we find that an additional 59 (7.1 %) defects have test suites that are obviously under-specified, as deleting a single statement from the code base makes all test cases pass, although the human-written patch does not only delete code. Our contributions are: a systematic collection of requirements for defect datasets for APR beyond traditional reproducibility of defects, a description of practical experiences and quantitative analysis of problems with the Defects4J dataset, as well as an implementation of an evaluation framework for APR tools for Java programs. This evaluation framework does stricter checking for indications of inadequate test suites, to avoid otherwise unnoticed problems in the test suite, such as flaky tests.


翻译:在自动化程序修复(APR)研究中,由已知缺陷及其对应测试套件组成的基准数据集至关重要,它们支持对不同APR方法进行基于证据的比较。在我们自身的APR研究中,发现使用广泛采用的缺陷数据集时存在重大挑战,这些挑战超出了通过测试用例实现缺陷可重复性的范畴。我们总结了这些已识别的挑战及相关经验教训,以引起APR社区的关注并量化其潜在影响。具体而言,我们研究了广泛使用的基准数据集Defects4J(据谷歌学术统计,被引次数超过1800次),该数据集包含来自17个开源Java项目的835个缺陷——一个经过人工筛选的缺陷集合,包含明确指示缺陷的测试套件以及移除所有无关变更的人工修复补丁。我们发现,在APR设置中(超越仅通过测试用例复现缺陷)以严格可复现性要求执行测试套件时,其中180个缺陷(占21.6%)不适用于评估实验。此外,另有59个缺陷(占7.1%)的测试套件存在明显的欠定义问题:从代码库中删除单条语句即可使所有测试用例通过,尽管人工编写的补丁并非仅包含代码删除操作。我们的贡献包括:系统性地提出了超越传统缺陷可复现性的APR缺陷数据集需求集合,描述了基于实践经验的Defects4J数据集问题分析与定量研究,以及实现了针对Java程序的APR工具评估框架。该评估框架能更严格地检测测试套件不充分的迹象,以避免测试套件中未被注意的问题(如脆性测试)。

0
下载
关闭预览

相关内容

数据集,又称为资料集、数据集合或资料集合,是一种由数据所组成的集合。
Data set(或dataset)是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一成员的数据集的问题。它列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数。每个数值被称为数据资料。对应于行数,该数据集的数据可能包括一个或多个成员。
大型语言模型自动程序修复的系统文献综述
专知会员服务
43+阅读 · 2024年5月5日
基于深度神经网络的图像缺损修复方法综述
专知会员服务
26+阅读 · 2021年12月18日
专知会员服务
14+阅读 · 2021年9月21日
专知会员服务
10+阅读 · 2021年1月31日
图像修复研究进展综述
专知
20+阅读 · 2021年3月9日
用深度学习揭示数据的因果关系
专知
28+阅读 · 2019年5月18日
基于机器学习的KPI自动化异常检测系统
运维帮
13+阅读 · 2017年8月16日
国家自然科学基金
1+阅读 · 2017年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
VIP会员
最新内容
综述 | 从问答到任务完成:Agent系统与Harness设计
专知会员服务
1+阅读 · 今天16:54
Agentic RL:框架、实践与长程智能体训练
专知会员服务
1+阅读 · 今天16:52
重新思考无人机时代的生存能力
专知会员服务
5+阅读 · 今天7:44
装甲突击旅:现代战争思考、战斗与组织
专知会员服务
4+阅读 · 今天7:28
在人工智能加速决策环境中拓展OODA循环
专知会员服务
4+阅读 · 今天7:18
军事欺骗:供作战战术指挥官使用的工具
专知会员服务
4+阅读 · 今天7:03
综述 | 世界动作模型:少做梦,多行动
专知会员服务
6+阅读 · 6月23日
美以伊冲突:无人机与人工智能的运用
专知会员服务
10+阅读 · 6月23日
《特种部队在透明战场中的生存力》最新报告
专知会员服务
5+阅读 · 6月23日
相关基金
国家自然科学基金
1+阅读 · 2017年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员