Defects4J-Trans
收藏github2025-05-22 更新2025-06-07 收录
下载链接:
https://github.com/Feng-Jay/Defects4J_Trans
下载链接
链接失效反馈官方服务:
资源简介:
Defects4J-Trans是从Defects4J转换而来的bug集合,每个bug保留了原始代码的语义但在句法表示上有所不同。包含483个来自多个开源项目的bug,每个bug都有对应的issue跟踪器标识符,通过单一提交修复,且经过最小化处理,确保只修改源代码并存在触发测试。
Defects4J-Trans is a bug collection converted from Defects4J, where each bug retains the semantics of the original code but differs in syntactic representation. It includes 483 bugs from multiple open-source projects, each with a corresponding issue tracker identifier, repaired through a single commit, and processed to minimize changes, ensuring that only the source code is modified and that triggering tests are present.
创建时间:
2025-05-20
原始信息汇总
Defects4J-Trans 数据集概述
数据集简介
Defects4J-Trans是从Defects4J转换而来的缺陷集合,每个缺陷保留原始代码的语义但语法表示不同。
项目与缺陷统计
包含483个缺陷,来自以下开源项目:
| 项目标识符 | 项目名称 | 活跃缺陷数量 | 活跃缺陷ID | 废弃缺陷ID |
|---|---|---|---|---|
| Chart | jfreechart | 16 | 1, 3-13, 17, 20, 24, 26 | others |
| Cli | commons-cli | 23 | 4, 5, 8, 9, 11, 12, 14, 15, 17, 19, 20, 23-29, 32, 35, 37, 38, 40 | others |
| Closure | closure-compiler | 105 | 1, 2, 4, 5, 7, 10-15, 17-25, 29, 31-33, 35, 36, 38-40, 42, 44, 48, 50-53, 55-59, 61, 62, 65-67, 69-71, 73, 77, 78, 81-83, 86-88, 91, 92, 94-97, 99, 101, 102, 104, 105, 107, 109, 111-126, 128-133, 145, 146, 150, 152, 159-161, 164, 166, 168, 172, 176 | others |
| Codec | commons-codec | 11 | 2-7, 9, 10, 15, 17, 18 | others |
| Collections | commons-collections | 1 | 26 | others |
| Compress | commons-compress | 33 | 1, 5, 7, 8, 10-19, 21, 23-28, 30-32, 35-38, 40, 41, 44-46 | others |
| Csv | commons-csv | 11 | 1-6, 9-11, 14, 15 | others |
| Gson | gson | 9 | 5, 6, 11-13, 15-18 | others |
| JacksonCore | jackson-core | 13 | 3-8, 11, 15, 20, 21, 23, 25, 26 | others |
| JacksonDatabind | jackson-databind | 51 | 1, 5-9, 11, 12, 16, 17, 19, 24, 27, 28, 33-35, 37, 39, 42, 44-47, 49, 51, 54, 57, 58, 62, 64, 67, 70, 71, 74, 76, 82, 83, 85, 88, 91, 93, 96-102, 107, 112 | others |
| JacksonXml | jackson-dataformat-xml | 4 | 1, 3-5 | others |
| Jsoup | jsoup | 53 | 1, 2, 5, 6, 10, 13, 15, 19, 20, 24, 26, 27, 32-35, 37-43, 45-51, 53-55, 57, 59, 61, 62, 64, 68, 70, 72, 75-77, 80, 82, 84-86, 88-90, 93 | others |
| JxPath | commons-jxpath | 7 | 5, 6, 8, 10, 12, 21, 22 | others |
| Lang | commons-lang | 42 | 1, 3, 5, 6, 9-12, 14, 16-19, 21, 22, 24, 26-29, 31, 33, 37-40, 42-45, 48, 49, 51-55, 57-59, 61, 65 | others |
| Math | commons-math | 72 | 2, 3, 5, 7-11, 13, 17, 19-21, 23-28, 30-34, 38-45, 48, 50-53, 55-60, 63, 64, 69, 70, 72-75, 78-80, 82, 84-91, 94-97, 101-103, 105, 106 | others |
| Mockito | mockito | 16 | 1, 5, 7, 8, 12, 13, 18, 20, 22, 24, 27-29, 33, 34, 38 | others |
| Time | joda-time | 16 | 4, 5, 7, 8, 14-20, 22-25, 27 | others |
缺陷属性
每个缺陷具有以下属性:
- 在对应的问题跟踪器中提交的问题,并在修复提交消息中提到问题跟踪标识符。
- 在单个提交中修复。
- 最小化:Defects4J-Trans维护者手动修剪提交中无关的更改(如重构或功能添加)。
- 通过修改源代码修复(而非配置文件、文档或测试文件)。
- 存在触发测试,修复前失败,修复后通过——测试失败不是随机的或依赖于测试执行顺序。
缺陷版本标记为<id>b(缺陷版本)和<id>f(修复版本),<id>为整数。
设置要求
- Java 1.8
- Git >= 1.9
- SVN >= 1.8
- Perl >= 5.0.12
搜集汇总
数据集介绍

构建方式
Defects4J-Trans数据集基于著名的Defects4J项目构建,通过语义保持的代码转换技术,将原始缺陷在语法层面进行多样化表征。该数据集精选483个经过人工验证的软件缺陷,覆盖JFreeChart、Commons-CLI等17个主流开源项目。每个缺陷均满足严格筛选标准:需有明确的issue跟踪记录,通过单一提交修复,且修复仅涉及源代码层面的修改。维护团队对每个提交进行了人工最小化处理,剔除无关的代码重构或功能新增,确保缺陷样本的纯净性。
特点
该数据集最显著的特点在于其语法多样性转换能力,在保持原始缺陷语义不变的前提下,生成语法结构各异的变体版本。数据集涵盖Chart、Closure等项目的活跃缺陷共计483个,每个缺陷均配有触发测试用例,能够稳定复现修复前后的行为差异。缺陷版本采用<b>和<f>的标准化标记体系,便于研究者精准定位问题。项目选取具有行业代表性的Java开源系统,其缺陷类型分布广泛,为软件缺陷检测、程序修复等研究提供了丰富的实验素材。
使用方法
使用Defects4J-Trans需预先配置Java 1.8、Git及SVN环境。对于已部署Defects4J的用户,可通过替换framework目录实现无缝迁移。新用户需克隆项目仓库后,按照标准流程初始化环境变量。数据集中的每个缺陷项目均以独立版本库形式管理,研究者可通过<id>b/<id>f标签访问缺陷及修复版本。触发测试用例的失败/通过状态变化可作为验证缺陷修复效果的关键指标,为自动化程序修复、缺陷模式挖掘等研究提供标准化评估基准。
背景与挑战
背景概述
Defects4J-Trans数据集源于软件工程领域对程序缺陷研究的深入需求,由研究团队基于著名的Defects4J数据集构建而成。该数据集聚焦于程序语义保持但语法表达差异的缺陷变体,旨在为程序修复、缺陷检测等研究方向提供更为丰富的实验素材。数据集涵盖了JFreeChart、Commons-CLI等16个知名开源项目的483个缺陷实例,每个实例均经过严格的筛选与验证,确保缺陷的单一性、可复现性以及最小化修改特性。自发布以来,Defects4J-Trans已成为评估程序分析工具鲁棒性和泛化能力的重要基准,推动了软件可靠性研究的范式创新。
当前挑战
在解决程序缺陷检测与修复的领域挑战方面,Defects4J-Trans需应对语法多样性对工具泛化能力的严峻考验。传统静态分析工具往往难以识别语义等效但语法变异的缺陷模式,导致漏报率上升。数据集的构建过程同样面临多重技术难题:原始缺陷的语义保持性验证需要复杂的程序等价性判定,触发测试的精确提取依赖人工干预以保证最小化修改特性,跨项目缺陷的异构性则要求统一的标准化处理流程。这些挑战使得数据集的扩展与维护需要持续投入领域专家资源,以平衡样本规模与质量控制之间的张力。
常用场景
经典使用场景
Defects4J-Trans数据集在软件工程领域具有重要价值,尤其在程序缺陷检测和修复研究中扮演关键角色。该数据集通过对Defects4J中的缺陷进行语义保留的语法转换,为研究者提供了丰富的变异缺陷样本。研究人员可以基于这些变异缺陷,深入分析不同语法表达对缺陷检测工具性能的影响,从而评估工具的鲁棒性和泛化能力。
解决学术问题
Defects4J-Trans有效解决了软件缺陷检测研究中数据单一性的问题。传统缺陷数据集往往只包含原始缺陷,难以评估检测工具对语法变异的适应性。该数据集通过引入语义等价但语法不同的缺陷变体,使研究者能够更全面地评估缺陷检测方法的有效性,推动了程序分析、软件测试和自动修复等领域的研究进展。
衍生相关工作
基于Defects4J-Trans数据集,学术界已衍生出多项重要研究成果。这些工作主要集中在缺陷检测算法改进、程序修复技术增强以及软件测试方法创新等方面。部分研究利用该数据集验证了语法多样性对缺陷检测的影响,另一些工作则探索了跨语法变体的缺陷模式识别,为构建更智能的软件开发辅助工具奠定了基础。
以上内容由遇见数据集搜集并总结生成



