Continuous Defect Prediction Dataset
收藏arXiv2017-06-22 更新2024-08-06 收录
下载链接:
http://arxiv.org/abs/1703.04142v2
下载链接
链接失效反馈官方服务:
资源简介:
Continuous Defect Prediction Dataset是由弗罗茨瓦夫理工大学计算机科学与管理学院创建的大型数据集,包含超过1100万条数据,涵盖1265个软件项目和30022名开发者。数据集通过整合Travis CI服务器和GitHub开源项目的数据,提供软件过程指标,用于预测可能导致构建失败的软件变更。创建过程中,数据集利用TravisTorrent作为CI数据源,并扩展到文件变更级别,计算相关软件过程指标。该数据集主要应用于软件缺陷预测,帮助开发者实时评估代码变更的风险,优化持续集成流程。
The Continuous Defect Prediction Dataset is a large-scale dataset developed by the Faculty of Computer Science and Management, Wrocław University of Science and Technology. It contains over 11 million data entries, covering 1265 software projects and 30022 developers. By integrating data from Travis CI servers and GitHub open-source projects, this dataset provides software process metrics for predicting software changes that may cause build failures. During its construction, the dataset utilized TravisTorrent as the CI data source, extended the analysis to the file change level, and calculated relevant software process metrics. Primarily applied in software defect prediction, this dataset assists developers in evaluating code change risks in real time and optimizing continuous integration workflows.
提供机构:
弗罗茨瓦夫理工大学计算机科学与管理学院创建时间:
2017-03-13
搜集汇总
数据集介绍

构建方式
该数据集由Lech Madeyski与Marcin Kawalerowicz基于持续缺陷预测(CDP)理念构建,旨在识别可能破坏持续集成(CI)构建的风险软件变更。数据采集融合了Travis CI服务器与GitHub开源项目的仓库信息,通过TravisTorrent数据库获取构建结果及触发构建的提交哈希,进而利用Git仓库的本地克隆,基于分支拓扑树精确计算参与构建的每次文件变更。在此基础上,从版本控制系统中提取一系列软件过程度量,如修改行数、提交者数量、文件修订次数及上次构建状态等,最终整合为超过1100万行、涵盖1265个项目的结构化数据集。
使用方法
该数据集以CSV格式(分号分隔、双引号括符)及Microsoft SQL Server 2012转储文件形式公开共享,便于研究者直接加载与分析。使用者可将度量指标作为特征,以构建结果(成功/失败/未知)作为目标变量,训练机器学习模型以预测代码变更的风险性。数据还支持跨项目比较与时间序列分析,适用于缺陷预测、开发者活动模式探索及CI趋势研究。建议研究者结合自身实验环境,利用数据库查询或编程语言(如Python、R)进行数据筛选与建模,并注意开源数据集可能存在的泛化局限性。
背景与挑战
背景概述
在软件工程领域,缺陷预测一直是研究热点,旨在通过识别易出错的模块或变更来提升软件质量。传统的缺陷预测多聚焦于文件或模块级别,然而,随着持续集成(CI)实践的普及,开发者亟需在代码提交前即时获知变更的风险。2017年,Lech Madeyski与Marcin Kawalerowicz于国际软件仓库挖掘会议(MSR)上提出了连续缺陷预测(Continuous Defect Prediction, CDP)的概念,并发布了配套数据集。该数据集由弗罗茨瓦夫理工大学与奥波莱理工大学联合创建,整合了Travis CI构建结果与GitHub仓库数据,涵盖1265个开源项目、逾30,000名提交作者,包含超过1100万条文件级变更记录。其核心研究问题在于:如何基于软件过程度量(如修改行数、提交者数量等)构建预测模型,以识别可能破坏CI构建的风险变更。该数据集为即时质量反馈提供了实证基础,推动了软件缺陷预测从静态分析向动态、持续化方向的演进。
当前挑战
该数据集面临多重挑战。首先,在领域问题层面,CDP旨在解决持续集成环境中风险变更的即时预测问题,但预测模型的准确性受限于特征工程:现有度量(如修订次数、构建时间)虽具一定预测力,却未能充分捕捉代码语义或测试覆盖率等深层属性,导致模型泛化能力不足。其次,构建过程中存在显著挑战:数据来源的异构性(Travis CI与GitHub API的带宽限制)要求研究者本地克隆仓库以避免限流,耗费43GB存储空间;同时,构建结果映射(如Jenkins、Travis与TeamCity的状态差异)需手工归一化,增加了数据清洗复杂度。此外,数据集仅涵盖开源项目,且受限于TravisTorrent的过滤条件(如Ruby或Java非玩具项目),使得结论向商业闭源软件的推广面临外部效度威胁。这些挑战制约了CDP在实际工业环境中的落地效果。
常用场景
经典使用场景
Continuous Defect Prediction Dataset(CDP数据集)在软件工程领域,尤其是持续集成与缺陷预测的交叉研究中,扮演着基石角色。该数据集汇聚了来自1265个开源项目、超过1100万条文件级变更记录,并融合了Travis CI构建结果与Git仓库的版本控制信息。其最经典的使用场景在于构建机器学习模型,以预测代码变更是否会导致持续集成构建失败。研究者通常利用该数据集中的过程度量(如修改行数、提交者数量、修订次数等)作为特征,训练分类器来识别高风险变更,从而在代码提交前提供预警。这一应用场景直接回应了现代软件开发中快速迭代与质量保障之间的核心矛盾。
解决学术问题
该数据集有效解决了软件缺陷预测研究中长期存在的粒度与时效性难题。传统缺陷预测多聚焦于文件或模块级别,而CDP数据集将预测单元下沉至单次代码变更,实现了‘即时’(Just-in-Time)预测。它使得研究者能够探究‘哪些变更更可能破坏构建’这一关键问题,而不再局限于‘哪些文件更易含缺陷’。此外,数据集提供的跨项目、多开发者、长周期数据,为验证预测模型的泛化能力与稳定性提供了大规模实证基础。其发布推动了从静态缺陷预测向动态、持续化质量保障范式的转变,显著提升了预测结果在敏捷开发环境中的实用价值。
实际应用
在实际软件开发中,CDP数据集支撑了一类名为‘持续缺陷预测’(Continuous Defect Prediction)的质量保障实践。开发团队可基于该数据集训练出的模型,将其嵌入CI/CD流水线中,在每次代码推送前自动评估变更风险。若模型判定某次变更有较高概率导致构建失败,系统可即时向开发者发出警告,甚至阻止该变更合入主分支。这种机制在大型商业项目(如论文中提及的银行软件项目)中尤为重要,能有效减少因缺陷代码引入而导致的构建中断,降低修复成本。目前,该数据集已被用于Jenkins、TeamCity等主流CI服务器的插件开发,实现了从学术研究到工业部署的无缝衔接。
数据集最近研究
最新研究方向
在软件工程领域,缺陷预测一直是提升软件质量的核心议题,而Continuous Defect Prediction Dataset的提出标志着研究范式的深刻转变——从传统的文件级或模块级缺陷预测转向更精细的变更级实时预测。该数据集整合了超过1100万条来自1265个开源项目的持续集成构建记录与软件仓库过程度量,如修改行数、提交者数量及构建时间特征,为构建基于机器学习的风险变更预测模型提供了坚实基础。前沿研究方向聚焦于利用该数据集训练即时反馈模型,以在代码提交前预判构建失败风险,从而嵌入开发流程实现持续质量保障。这一方向与DevOps实践中对自动化质量门禁的迫切需求高度契合,尤其在银行业等关键领域,其应用有望显著降低集成故障率,推动软件工程从被动修复向主动预防的进化。
相关研究论文
- 1Continuous Defect Prediction: The Idea and a Related Dataset弗罗茨瓦夫理工大学计算机科学与管理学院 · 2017年
以上内容由遇见数据集搜集并总结生成




