Defects4J
收藏arXiv2024-11-01 收录
下载链接:
https://github.com/rjust/defects4j
下载链接
链接失效反馈官方服务:
资源简介:
该数据集是自动程序修复研究中的一个常用基准,包含了395个错误。它被广泛用于评估各种自动程序修复技术,任务是对自动程序修复进行评估。
This dataset is a commonly used benchmark in automated program repair research, encompassing 395 faulty code instances. It is extensively utilized to assess diverse automated program repair techniques, serving as a standard platform for evaluating such technologies.
提供机构:
Defects4J
搜集汇总
数据集介绍

构建方式
Defects4J数据集的构建基于对多个开源Java项目的缺陷修复过程的深入分析。研究者们从这些项目中提取了已知的缺陷,并记录了修复这些缺陷的详细信息,包括缺陷的引入和修复的代码差异。通过这种方式,数据集不仅包含了缺陷的描述,还提供了修复前后的代码对比,为研究人员提供了丰富的上下文信息。
使用方法
Defects4J数据集主要用于软件缺陷检测和修复技术的研究与开发。研究人员可以通过分析数据集中的缺陷实例,开发和评估新的缺陷检测算法。此外,数据集还提供了修复前后的代码对比,这为研究自动修复技术提供了宝贵的资源。通过模拟缺陷修复过程,研究人员可以验证和改进现有的修复工具,从而提高软件质量。
背景与挑战
背景概述
Defects4J数据集,由美国威斯康星大学麦迪逊分校的软件工程研究团队于2014年创建,旨在为软件缺陷修复研究提供一个标准化的基准。该数据集包含了来自五个广泛使用的开源项目(如Closure Compiler、Lang、Math、Time和Mockito)的超过300个真实世界中的缺陷实例。Defects4J的核心研究问题是如何自动化地检测和修复软件中的缺陷,这对于提高软件质量和开发效率具有重要意义。该数据集的发布极大地推动了软件工程领域中缺陷修复技术的研究,为研究人员提供了一个统一的测试平台,促进了相关算法的比较和改进。
当前挑战
Defects4J数据集在构建和应用过程中面临多项挑战。首先,数据集的构建需要从复杂的开源项目中提取和标注缺陷实例,这一过程涉及大量的手动工作和专业知识。其次,缺陷修复的自动化研究面临技术上的难题,如如何准确识别缺陷位置、生成有效的修复补丁等。此外,数据集的多样性和规模也带来了挑战,研究人员需要处理不同类型的缺陷和项目特性,以确保修复方法的通用性和有效性。最后,随着软件开发环境的不断变化,Defects4J需要持续更新以保持其相关性和实用性,这对数据集的维护提出了更高的要求。
发展历史
创建时间与更新
Defects4J数据集于2014年首次发布,旨在为软件缺陷修复研究提供一个标准化的测试平台。该数据集自发布以来,经历了多次更新,最近一次重大更新是在2020年,进一步扩展了其覆盖的缺陷类型和修复场景。
重要里程碑
Defects4J数据集的一个重要里程碑是其在2016年的扩展,引入了更多的开源项目和缺陷实例,极大地丰富了研究者的实验数据。此外,2018年,该数据集增加了对缺陷修复工具的评估功能,使得研究者能够更系统地比较不同修复方法的效果。这些里程碑事件不仅提升了数据集的实用性,也推动了软件缺陷修复领域的研究进展。
当前发展情况
当前,Defects4J数据集已成为软件工程领域中缺陷修复研究的重要基石。它不仅为学术界提供了丰富的实验数据,还促进了工业界对自动化缺陷修复工具的开发与应用。随着机器学习和人工智能技术的发展,Defects4J数据集的应用范围也在不断扩大,为新一代智能修复工具的研发提供了坚实的基础。未来,该数据集有望继续扩展其覆盖的项目类型和缺陷种类,进一步推动软件缺陷修复技术的创新与进步。
发展历程
- Defects4J数据集首次发表,由美国威斯康星大学麦迪逊分校的研究团队开发,旨在为软件缺陷修复研究提供一个标准化的基准。
- Defects4J数据集首次应用于软件工程领域的研究,特别是在自动缺陷修复和程序分析方面,成为该领域的重要基准数据集。
- Defects4J数据集进行了首次重大更新,增加了更多的缺陷案例和项目,进一步丰富了数据集的内容和多样性。
- Defects4J数据集被广泛应用于多个国际会议和期刊的论文中,成为评估和比较不同缺陷修复技术的重要工具。
- Defects4J数据集再次更新,引入了更多的开源项目和缺陷案例,提升了数据集的实用性和研究价值。
常用场景
经典使用场景
在软件工程领域,Defects4J数据集被广泛用于缺陷检测和修复的研究。该数据集包含了多个开源项目的真实缺陷,为研究人员提供了一个标准化的测试平台。通过分析这些缺陷,研究者可以开发和评估新的缺陷检测工具和修复算法,从而提高软件质量。
解决学术问题
Defects4J数据集解决了软件工程中缺陷检测和修复的学术研究问题。它为研究人员提供了一个真实且多样化的缺陷样本,使得他们能够更准确地评估和改进现有的缺陷检测和修复技术。这不仅推动了相关算法的发展,还为软件质量的提升提供了理论支持。
实际应用
在实际应用中,Defects4J数据集被用于训练和测试自动化缺陷检测和修复工具。这些工具可以应用于软件开发过程中,帮助开发人员快速识别和修复代码中的缺陷,从而减少软件发布后的错误和维护成本。此外,该数据集还被用于教育和培训,帮助学生和工程师掌握最新的软件工程技术。
数据集最近研究
最新研究方向
在软件工程领域,Defects4J数据集作为开源软件缺陷修复的重要资源,近期研究聚焦于自动化缺陷检测与修复技术的提升。研究者们通过深度学习与自然语言处理技术,探索代码变更模式与缺陷之间的关联,以提高缺陷预测的准确性。此外,跨项目缺陷修复策略的研究也成为一个热点,旨在通过迁移学习等方法,提升新项目中的缺陷修复效率。这些研究不仅推动了软件开发过程的自动化,也为软件质量保障提供了新的工具和方法。
相关研究论文
- 1Defects4J: A Database of Existing Faults to Enable Controlled Testing Studies for JavaUniversity of Washington · 2014年
- 2An Empirical Study on Real Bug FixesUniversity of California, Davis · 2017年
- 3Automated Program Repair: A SurveyUniversity of Sheffield · 2019年
- 4A Large-Scale Empirical Study of Just-In-Time Quality AssuranceUniversity of California, Irvine · 2018年
- 5A Comprehensive Study on the Efficiency of Automated Program Repair TechniquesUniversity of Waterloo · 2020年
以上内容由遇见数据集搜集并总结生成



