遇见数据集

Empirical Dataset of Incomplete Software Changes

收藏
arXiv2026-09-28 更新2026-10-01 收录
数据链接:
官方服务:

资源简介:

该数据集由东京科学大学构建,名为“经验性不完整软件变更数据集”,旨在提供真实世界中因遗漏相关变更而导致的缺陷修复实例。数据集通过挖掘Apache旗下17个开源项目的Jira问题跟踪系统,利用“is broken by”或“is caused by”链接识别缺陷引入提交(BIC)与修复提交(BFC)对,并提取BFC中未被BIC修改的文件作为遗漏变更,最终获得3430条有效变更对。数据集的构建过程严格过滤了文件存在时间和提交日期异常情况,并区分单次诱导与多次诱导场景。该数据集主要用于评估协同变更规则等变更影响分析工具在实际不完整变更上的性能,弥补了以往依赖人工模拟数据评估的不足。

This dataset, named *Empirically Incomplete Software Change Dataset*, was constructed by Tokyo University of Science. It aims to provide real-world defect repair instances caused by missed related changes. The dataset is developed by mining Jira issue tracking systems of 17 open-source projects under the Apache Software Foundation. It uses the "is broken by" or "is caused by" links to identify defect-introducing commit (BIC) and bug-fixing commit (BFC) pairs, extracts files modified in BFCs but not in their corresponding BICs as missed changes, and finally obtains 3430 valid change pairs. The construction process of the dataset strictly filters out abnormal file existence time and commit date, and distinguishes between single-induction and multiple-induction scenarios. This dataset is mainly used to evaluate the performance of change impact analysis tools (such as collaborative change rules) on real incomplete changes, making up for the shortcomings of previous evaluations that relied on manually simulated data.

提供机构:
东京科学大学
创建时间:
2026-09-28
搜集汇总
数据集介绍
Empirical Dataset of Incomplete Software Changes 数据集图片
构建方式
在软件开发过程中,变更不完整是普遍存在的现象,开发者常遗漏关联文件从而导致后续缺陷。为构建反映真实情况的实证数据集,该研究从Apache开源项目中挖掘缺陷修复问题与缺陷诱发问题之间的关联,借助“is broken by”与“is caused by”链接识别出缺陷修复提交与缺陷诱发提交的配对,进而将缺陷修复提交中修改但缺陷诱发提交未涉及且当时已存在的文件判定为被遗漏文件,形成查询集与预期结果集。
特点
该数据集源自真实开源项目的版本历史与问题跟踪系统,涵盖Accumulo、Hadoop、Spark等17个Apache项目,包含2,428个缺陷修复与缺陷诱发提交配对,其中45.7%存在不完整变更。数据集区分单诱发提交与多诱发提交两种情形,模拟分支开发中变更聚合的场景。其特征分析表明,49.5%的不完整变更仅遗漏单个文件,89.4%遗漏不超过五个文件,且协同变更规则可识别其中69.7%的被遗漏文件。
使用方法
该数据集适用于评估变更影响分析及协同变更规则提取方法的性能。使用时,以缺陷诱发提交中修改的文件作为查询,以缺陷修复提交中额外修改的文件作为预期结果,通过平均精度、Top 20排名、Recall@20及召回率等指标衡量方法能否正确推荐被遗漏文件。同时,可利用数据集中的单诱发与多诱发结构,分别在单提交与聚合提交场景下比较不同兴趣度量排序准则及挖掘提交比例对推荐效果的影响,为协同变更支持工具的设计提供实证依据。
背景与挑战
背景概述
软件演化过程中,开发者对某一组件的修改常因组件间依赖关系而波及系统中其他文件,若未同步修正这些受影响的文件,变更便处于不完整状态,并可能在未来演化为缺陷。既有变更影响分析研究多依赖人工构造的不完整变更来评估共变规则提取方法的性能,此类评估难以反映真实开发场景中遗漏文件的数量分布与可识别性。为弥补这一缺口,东京科学大学的研究人员Savira Ramadhanty、Profir-Petru Pârt,achi、Yoshiya Ishida与Takashi Kobayashi于2026年构建了面向开源项目的不完整软件变更经验数据集。该数据集以Apache项目为对象,通过挖掘缺陷修复议题与其致因议题之间的链接,建立缺陷修复提交与缺陷引入提交的对应关系,进而从二者的文件差异中识别被开发者遗漏的变更文件。数据集包含来自17个项目的2,428个缺陷修复相关提交对,其中789个被判定为含有不完整变更,并进一步区分为单提交诱导与多提交诱导两种情形。该数据集为在真实数据上重新评估共变规则等变更支持方法提供了实证基础,对软件维护与变更影响分析领域具有重要的参考价值。
当前挑战
该数据集所应对的领域问题在于,软件开发中不完整变更的普遍存在对变更影响分析工具提出了严峻考验。共变规则虽能从修订历史中提取文件间的共变关系以推荐应同步修改的文件,但以往评估均建立在人为删减文件所构造的伪不完整变更之上,无法确证其在真实遗漏情形下的有效性。构建过程中亦面临多重挑战:议题跟踪系统中缺陷修复议题与缺陷致因议题之间的链接记录极为稀疏,在Apache项目已关闭的缺陷报告中仅约2.58%具有明确致因链接,致使可用样本规模受限;提交信息中议题编号的引用方式因项目而异且存在非关联性提及,需依赖各项目贡献指南或人工判读来提取匹配模式;缺陷修复提交与缺陷引入提交的时间顺序、文件增删状态均需审慎核验,以排除在缺陷引入提交之后才新增的文件以及创建时间晚于修复提交的致因提交;分支开发场景下合并提交所产生的大规模变更亦须过滤,以避免对共变规则挖掘引入噪声。此外,数据集聚焦于Apache生态,其项目文化与开发实践可能影响结论在其他开源社区中的外推效度。
常用场景
经典使用场景
在软件协同变更分析领域,该数据集最经典的使用场景是作为真实不完整变更的基准,用于评估基于共变规则的变更影响分析方法。既往研究多依赖人工构造的不完整变更,即从单一提交中刻意剔除以模拟遗漏文件,此类评估难以反映实际开发中的遗漏模式。本数据集通过挖掘Bug修复提交与缺陷引入提交之间的文件差异,提供了来自Apache开源项目的真实遗漏文件实例,支持在单次变更与跨提交聚合两种设置下检验共变规则推荐遗漏文件的能力,从而弥补了人工数据与实际场景之间的鸿沟。
实际应用
在实际软件开发与维护中,该数据集可用于构建和验证变更推荐工具,帮助开发者在提交代码前识别可能被遗漏的关联文件,从而减少因不完整变更而引入的缺陷。其应用场景涵盖持续集成环境中的提交前检查、代码审查辅助以及集成开发环境中的实时变更建议。由于数据集明确关联了缺陷修复提交与缺陷引入提交,亦可支撑软件仓库挖掘中的缺陷溯源、开发过程质量分析以及团队协作模式研究,为降低维护成本与提升软件可靠性提供数据支撑。
衍生相关工作
该数据集衍生了一系列围绕共变规则优化与评估的经典工作。研究者基于其真实不完整变更实例重新审视了兴趣度量的排序效果,确认置信度在单次变更与聚合变更场景下均为最优排序准则。同时,该数据集激发了对历史提交时效性的再探讨,发现较旧的提交信息并非噪声,反而有助于提升共变规则的识别性能。此外,其构建方法继承了SZZ算法与InduceBenchmark等缺陷引入提交识别研究的脉络,并推动了将聚合提交设置纳入变更影响分析评估的后续探索,为变更支持方法的持续改进提供了可复用的基准资源。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务