GitBug-Java
收藏arXiv2024-02-06 更新2024-06-21 收录
下载链接:
https://github.com/gitbugactions/gitbug-java
下载链接
链接失效反馈官方服务:
资源简介:
GitBug-Java是由瑞典皇家理工学院和里斯本大学创建的一个可重现的Java缺陷基准数据集,包含199个从2023年55个著名开源仓库的提交历史中提取的缺陷。该数据集通过GitBug-Actions框架构建,确保缺陷修复在完全可重现的环境中得以保留。数据集不仅解决了现有基准中缺陷不及时和不可重现的问题,还通过提供离线执行环境来保证长期的可重现性。GitBug-Java适用于自动程序修复和故障定位等研究领域,旨在评估和改进软件工程中的自动化修复技术。
GitBug-Java is a reproducible Java defect benchmark dataset developed by the KTH Royal Institute of Technology and the University of Lisbon. It contains 199 defects extracted from the commit histories of 55 prominent open-source repositories in 2023. Constructed via the GitBug-Actions framework, this dataset ensures that defect fixes are preserved in fully reproducible environments. It addresses the issues of outdated and non-reproducible defects in existing benchmarks, while guaranteeing long-term reproducibility by providing offline execution environments. GitBug-Java is suitable for research fields such as automated program repair and fault localization, aiming to evaluate and improve automated repair technologies in software engineering.
提供机构:
瑞典皇家理工学院
创建时间:
2024-02-05
搜集汇总
数据集介绍

构建方式
在软件工程领域,构建高质量的缺陷修复基准对于推动自动程序修复与故障定位研究至关重要。GitBug-Java的构建过程采用系统化方法,首先通过GitHub搜索筛选出55个符合特定标准的Java开源仓库,包括至少20星标、小于200MB存储空间及活跃维护状态。随后利用GitBug-Actions框架,在2023年1月至10月的提交历史中,依据测试执行模式识别候选缺陷修复,并通过Docker容器构建离线可重现环境。最终经过手动审核与去重,从初始的51,276次提交中精选出199个高质量缺陷修复,确保每个案例均具备完整的测试套件与可复现性。
特点
GitBug-Java的核心特点体现在其时效性与可复现性双重优势。该数据集专注于2023年的近期Java缺陷,有效规避了大型语言模型训练数据泄露风险,增强了评估的当代相关性。所有缺陷均来源于真实开源项目,覆盖库与应用两种类型,确保了数据的多样性与代表性。每个缺陷修复均配备离线可执行环境,通过容器化技术封装全部依赖,实现了长期稳定的复现能力。此外,数据集中缺陷的测试套件规模中位数为497,且多数修复仅涉及少量代码变更,为精细化研究提供了理想基础。
使用方法
研究人员可通过GitHub公开仓库获取GitBug-Java数据集,利用其命令行接口便捷地执行缺陷复现与验证。该数据集支持离线环境运行,确保实验过程不受网络依赖影响。用户可基于预置的测试套件,对缺陷版本与修复版本进行对比分析,适用于自动程序修复、故障定位及软件测试等研究方向。数据集提供的元数据与可视化工具,有助于深入分析缺陷模式与修复特征。通过遵循文档中的操作指南,研究者能够高效地集成该基准至现有实验流程,推动软件工程实证研究的可重复性与可比性。
背景与挑战
背景概述
在软件工程领域,自动程序修复与故障定位等研究方向的发展,高度依赖于高质量的缺陷修复基准数据集。GitBug-Java数据集由瑞典皇家理工学院与里斯本大学的研究团队于2024年共同创建,旨在应对现有基准如Defects4J中缺陷陈旧且可复现性不足的挑战。该数据集从55个知名开源仓库的2023年提交历史中,精心筛选出199个Java缺陷修复案例,其构建过程严格遵循科学可复现原则,通过封装完整的依赖环境确保每个缺陷的长期可执行性。GitBug-Java不仅为评估大型语言模型在代码修复任务中的表现提供了无数据泄漏风险的测试基准,也推动了软件缺陷研究向更贴近现代开发实践的方向演进。
当前挑战
GitBug-Java数据集致力于解决自动程序修复与故障定位领域的两大核心挑战:一是现有基准数据陈旧导致的评估偏差问题,特别是大型语言模型训练数据与测试数据重叠引发的数据泄漏风险;二是缺陷修复案例长期可复现性不足,制约了研究的可重复性与比较有效性。在数据集构建过程中,研究团队面临诸多技术难题,包括从海量提交历史中精准识别真实缺陷修复、确保第三方依赖的离线可用性以保障长期可复现,以及通过多次执行排除测试用例的随机性干扰。此外,手动审核机制需消除重构或新功能提交等非缺陷变更,确保数据集的纯净性与代表性。
常用场景
经典使用场景
在软件工程领域,自动程序修复和故障定位等研究方向亟需高质量的缺陷修复基准来支撑实验验证。GitBug-Java作为一款专注于Java语言的缺陷修复基准,其经典使用场景在于为研究人员提供一套包含199个近期真实缺陷的标准化测试集。该数据集通过精心筛选2023年来自55个活跃开源仓库的提交记录,确保了缺陷的时效性与代表性,使得基于该基准的评估能够准确反映现代开发实践中的典型问题。
衍生相关工作
围绕GitBug-Java衍生的经典工作主要体现在软件质量保障领域的创新研究上。例如,基于其可复现环境架构,后续研究可深入探索依赖管理与长期软件维护的自动化方法。该数据集也为比较不同自动程序修复技术在新缺陷上的表现提供了统一平台,促进了如基于学习的修复模型与符号执行等方法的融合创新。此外,其构建框架GitBug-Actions已被扩展用于其他编程语言基准的创建,推动了可复现基准构建方法论的发展。
数据集最近研究
最新研究方向
在软件工程领域,特别是自动程序修复和故障定位研究中,高质量的缺陷修复基准数据集对于推动方法学评估至关重要。GitBug-Java作为近期推出的Java缺陷基准,其前沿研究方向聚焦于解决现有基准中缺陷陈旧与可复现性不足的双重挑战。该数据集通过从2023年提交历史中提取199个真实缺陷,确保了与当前开发实践及软件栈的紧密对齐,有效规避了大型语言模型评估中的数据泄露风险。同时,其采用GitHub Actions框架构建的离线可复现环境,为长期科学研究提供了稳定可靠的实验基础,显著提升了缺陷修复研究的严谨性与可比较性。这一进展不仅促进了自动程序修复技术的迭代优化,也为软件测试与分析领域注入了新的活力,标志着缺陷基准向更高时效性与可复现性迈出了关键一步。
相关研究论文
- 1GitBug-Java: A Reproducible Benchmark of Recent Java Bugs瑞典皇家理工学院 · 2024年
以上内容由遇见数据集搜集并总结生成



