BugSwarm
收藏OpenDataLab2026-05-24 更新2024-05-09 收录
下载链接:
https://opendatalab.org.cn/OpenDataLab/BugSwarm
下载链接
链接失效反馈官方服务:
资源简介:
BugSwarm 是一个可重现故障和修复数据集,用于对软件质量方法进行实验评估。 BugSwarm 工具包已经用 Java 和 Python 收集了 3,091 个失败通过对,所有这些都打包在完全可重现的容器中。
BugSwarm is a reproducible bug and fix dataset designed for experimental evaluation of software quality methodologies. The BugSwarm toolkit has collected 3,091 fail-pass pairs using Java and Python, all of which are packaged in fully reproducible containers.
提供机构:
OpenDataLab
创建时间:
2022-08-16
搜集汇总
数据集介绍

构建方式
BugSwarm数据集的构建基于对开源软件项目的持续集成(CI)构建日志进行深度分析。研究者通过自动化工具筛选出构建失败的实例,并进一步识别出导致失败的代码变更。这些变更被记录下来,并与修复后的代码进行对比,从而形成一个包含错误代码和修复代码对的数据集。此过程确保了数据集的高质量和实用性,为软件缺陷研究提供了宝贵的资源。
特点
BugSwarm数据集的显著特点在于其真实性和多样性。数据集中的错误代码和修复代码对来自实际的开源项目,反映了真实世界中的软件缺陷。此外,数据集涵盖了多种编程语言和不同类型的缺陷,使得研究者能够进行跨语言和跨缺陷类型的分析。这种多样性不仅增强了数据集的泛化能力,也为多角度研究提供了可能。
使用方法
BugSwarm数据集主要用于软件缺陷检测和修复的研究。研究者可以利用数据集中的错误代码和修复代码对,训练和评估缺陷检测模型,或者开发自动修复工具。此外,数据集还可以用于研究代码变更对软件质量的影响,以及不同编程语言和开发环境下的缺陷模式。通过这些研究,可以提高软件开发的效率和质量,减少缺陷引入的风险。
背景与挑战
背景概述
BugSwarm数据集由德克萨斯大学奥斯汀分校的研究团队于2017年创建,旨在为软件工程领域提供一个大规模的、真实的缺陷修复数据集。该数据集的核心研究问题是如何利用自动化工具和机器学习技术来识别和修复软件中的缺陷,从而提高软件质量和开发效率。BugSwarm通过收集和分析开源项目的提交历史,提取出包含缺陷修复的代码片段,为研究人员提供了一个宝贵的资源,以探索自动化缺陷检测和修复的可能性。该数据集的发布对软件工程领域的研究产生了深远的影响,推动了自动化软件维护和缺陷管理技术的发展。
当前挑战
BugSwarm数据集在构建过程中面临了多个挑战。首先,如何从海量的开源项目提交历史中准确地识别出包含缺陷修复的代码片段,是一个复杂且耗时的任务。其次,数据集的多样性和代表性也是一个重要的挑战,确保数据集能够覆盖不同类型的缺陷和修复模式,以提高研究结果的普适性。此外,数据集的规模和质量也直接影响到研究的有效性,如何保证数据集的完整性和一致性,是构建过程中需要克服的难题。最后,随着软件开发技术的不断进步,如何持续更新和扩展BugSwarm数据集,以反映最新的软件开发实践和缺陷修复模式,也是一个持续的挑战。
发展历史
创建时间与更新
BugSwarm数据集创建于2017年,旨在通过自动化重现软件缺陷来支持软件工程研究。该数据集定期更新,以反映最新的软件开发实践和缺陷模式。
重要里程碑
BugSwarm数据集的一个重要里程碑是其在2018年发布的版本,该版本包含了超过2000个自动化重现的软件缺陷实例,极大地丰富了研究者对软件缺陷的理解和分析能力。此外,2019年,BugSwarm与多个知名软件工程研究机构合作,进一步扩展了数据集的规模和多样性,使其成为软件缺陷研究领域的重要资源。
当前发展情况
当前,BugSwarm数据集已成为软件工程研究中的关键工具,支持了多项关于缺陷检测、修复和预防的研究。通过持续的更新和扩展,BugSwarm不仅提供了丰富的缺陷实例,还促进了跨学科的合作,推动了自动化软件工程技术的发展。该数据集的广泛应用和认可,标志着其在提升软件质量和开发效率方面的巨大潜力。
发展历程
- BugSwarm数据集首次发表,由德克萨斯大学奥斯汀分校的研究团队提出,旨在通过自动化重现和分析软件开发中的错误来提高软件质量。
- BugSwarm数据集首次应用于软件工程研究领域,特别是在自动化缺陷检测和修复方面,展示了其在实际应用中的潜力。
- BugSwarm数据集的规模和多样性得到显著扩展,增加了更多的开源项目和错误实例,进一步提升了其在学术研究和工业应用中的价值。
- BugSwarm数据集被广泛应用于多个国际会议和期刊的论文中,成为评估和比较自动化软件修复工具的标准数据集之一。
- BugSwarm数据集的维护团队发布了新的版本,优化了数据集的结构和内容,增加了对更多编程语言和开发环境的支持。
常用场景
经典使用场景
在软件工程领域,BugSwarm数据集被广泛用于研究自动化缺陷修复和测试用例生成。该数据集通过记录开源项目中的代码变更历史,捕捉了从引入缺陷到修复缺陷的全过程。研究者利用这些数据,可以训练模型以识别代码中的潜在缺陷,并生成相应的修复建议。此外,BugSwarm还支持开发人员通过重现历史缺陷来验证修复策略的有效性,从而提升软件质量。
解决学术问题
BugSwarm数据集解决了软件工程中自动化缺陷检测与修复的关键问题。通过提供详细的缺陷上下文和修复信息,该数据集使得研究者能够深入分析缺陷的成因及其修复机制,从而推动自动化工具的发展。此外,BugSwarm还为研究代码演化、版本控制和软件维护提供了宝贵的数据资源,有助于提升软件工程领域的研究水平和实践效果。
衍生相关工作
基于BugSwarm数据集,研究者们开发了多种自动化缺陷检测与修复工具,如自动生成测试用例的工具和基于机器学习的缺陷预测模型。这些工具不仅提升了软件开发的效率,还显著减少了缺陷的引入。此外,BugSwarm还激发了关于代码演化和版本控制的研究,推动了软件工程领域的发展。相关工作还包括对缺陷修复策略的优化研究,以及对开源项目维护机制的深入探讨。
以上内容由遇见数据集搜集并总结生成



