HaPy-Bug
收藏arXiv2025-04-07 更新2025-04-09 收录
下载链接:
https://doi.org/10.6084/m9.figshare.24448663
下载链接
链接失效反馈官方服务:
资源简介:
HaPy-Bug是一个由Nicolaus Copernicus University等机构创建的、经过人工审订的Python源代码缺陷修复数据集,包含793个与缺陷修复相关的源代码提交。每个提交都由三位领域专家在行级别进行注释,提供了修改文件的用途、行级别修改类型以及审阅者的信心水平等深入见解。该数据集涵盖了从2006年到2022年的代码更改,跨越2,742个文件,共67,963行代码,是研究软件维护和安全领域的宝贵资源。
HaPy-Bug is a manually curated Python source code defect repair dataset created by institutions including Nicolaus Copernicus University, containing 793 defect repair-related source code commits. Each commit was annotated at the line level by three domain experts, providing in-depth insights such as the purpose of modified files, line-level modification types, and the reviewers' confidence levels. This dataset covers code changes spanning from 2006 to 2022, across 2,742 files with a total of 67,963 lines of code, and is a valuable resource for research in software maintenance and security domains.
提供机构:
Nicolaus Copernicus University, University of Wrocław, University of Warsaw, Kyiv Polytechnic Institute
创建时间:
2025-04-07
搜集汇总
数据集介绍

构建方式
HaPy-Bug数据集的构建过程体现了严谨的科学方法论与多源异构数据的融合策略。研究团队通过三个主要渠道收集Python缺陷修复提交:DBIP(扩展自BugsInPy数据集)、DCVE(基于CVE数据库全文检索)和DCRAWL(GitHub热门仓库爬取),最终整合793个经过人工验证的缺陷案例。数据采集阶段严格遵循可复现性原则,排除了配置、构建脚本等非核心代码问题。在预处理环节,团队创新性地采用基于文件路径和Pygments语法分析的自动化标注框架,为后续人工标注提供高质量基线。
特点
该数据集的核心价值在于其精细的多层次标注体系。每个缺陷修复提交均由三位领域专家独立标注,覆盖文件用途、缺陷类型及行级修改意图等维度,并引入重构、文档化等扩展标签。特别值得注意的是,数据集独创性地设计了'纠缠变更'标签(如bug(fix)+refactoring),精准捕捉混合型代码修改行为。统计显示标注者间Fleiss' kappa系数达0.83,全共识标注占比超过81.5%,确保了数据的可靠性。数据集时间跨度达16年(2006-2022),涵盖67,963行代码修改,为软件维护研究提供了时空维度上的丰富样本。
使用方法
研究者可通过Figshare平台获取数据集完整资源包,其中包含差异文件、文件标注、缺陷注解及CVE元数据等结构化文档。使用建议分为三个层级:基础应用可直接利用自动化标注结果进行缺陷定位分析;中级研究可结合人工标注共识数据验证算法效果;高级应用则可挖掘纠缠变更模式或训练LLM代码理解模型。数据集特别适合作为评估基准用于:1)缺陷定位工具的性能测试;2)代码变更分类算法的训练与验证;3)软件维护模式实证研究。为保障研究可复现性,团队同步开源了标注协议和预处理工具链。
背景与挑战
背景概述
HaPy-Bug数据集是由波兰尼古拉·哥白尼大学、弗罗茨瓦夫大学、华沙大学以及乌克兰基辅理工学院的研究团队联合开发的一个专注于Python程序错误修复的标注数据集。该数据集创建于2022年,收录了793个与Python源代码错误修复相关的提交,涵盖了2006年至2022年间的代码变更。数据集的核心研究问题在于提供精确的代码行级标注,以支持软件维护和安全领域的研究。HaPy-Bug通过结合自动化标注与专家手动验证,显著提升了标注的准确性和可用性,为软件工程领域的错误定位、代码审查流程优化以及大型语言模型在代码理解方面的应用提供了重要资源。
当前挑战
HaPy-Bug数据集在解决Python程序错误修复领域问题时面临多重挑战。首先,错误修复的复杂性导致代码行级标注的难度增加,尤其是在处理涉及重构或文档修改的混合变更时。其次,构建过程中需确保三位领域专家对标注的高一致性,这对标注协议的设计和专家间的协调提出了严格要求。此外,数据集来源的多样性(包括BugsInPy扩展、CVE数据库和GitHub仓库爬取)使得数据整合和标准化处理成为另一项挑战。最后,自动化标注虽然提高了效率,但在处理复杂或边缘案例时仍需依赖专家手动修正,这在一定程度上限制了数据集的扩展性。
常用场景
经典使用场景
在软件工程领域,HaPy-Bug数据集为研究者提供了一个高质量、经过专家标注的Python代码缺陷修复集合。该数据集通过详细的文件目的分类和行级修改标注,为缺陷定位、代码审查流程优化以及自动化代码标注工具的开发提供了坚实的基础。其标注协议基于Herbold等人的方法,但通过引入新的联合类别和自动化建议机制,显著提升了标注的效率和准确性。
解决学术问题
HaPy-Bug数据集解决了软件维护和安全研究中的多个关键问题。首先,它通过专家标注的行级修改信息,为缺陷定位研究提供了精确的基准数据。其次,数据集中的复杂标注(如纠缠修改)有助于分析开发者在修复缺陷时的实际行为模式。此外,该数据集支持对自动化代码标注工具的验证和优化,为软件仓库分析工具的改进提供了实证基础。
衍生相关工作
HaPy-Bug数据集已经衍生出多项重要研究工作。基于该数据集开发的PatchScope工具实现了对Git仓库贡献的自动化标注和分析。在缺陷定位领域,研究者利用该数据集验证了灰度数据模型在软件漏洞分析中的应用。此外,该数据集还被用于研究代码修复中的纠缠修改现象,为理解开发者行为提供了新的视角。这些工作显著推进了软件维护和安全领域的研究进展。
以上内容由遇见数据集搜集并总结生成



