纵向代码覆盖率与缺陷引入关联数据集
收藏arXiv2026-02-03 更新2026-02-05 收录
下载链接:
https://codeberg.org/l-schulte/waypack-machine
下载链接
链接失效反馈官方服务:
资源简介:
该数据集由帕绍大学团队构建,聚焦JavaScript和TypeScript开源项目中代码覆盖率与缺陷引入的因果关系研究。核心数据涵盖纵向代码覆盖率指标、源代码度量、问题跟踪与代码评审内容,以及缺陷引入变更记录,通过WayPack Machine工具实现npm/yarn依赖环境的时序重建。数据采集严格限定于具备稳定测试套件的成熟项目,要求90%以上的提交可计算行级覆盖率,并整合GitHub Actions的CI日志。其创新性在于首次将因果推理框架应用于软件工程领域,旨在量化代码覆盖率对缺陷预防的实际效用,为开发实践中的测试策略优化提供实证依据。
This dataset was constructed by a research team from the University of Passau, focusing on causal research into the relationship between code coverage and defect introduction in open-source JavaScript and TypeScript projects. The core dataset covers longitudinal code coverage metrics, source code metrics, issue tracking and code review content, as well as change records tied to defect introductions. The temporal reconstruction of npm/yarn dependency environments is achieved via the WayPack Machine tool. Data collection is strictly constrained to mature projects with stable test suites, mandating that line-level coverage can be calculated for over 90% of commits, and integrates CI logs from GitHub Actions. Its innovative contribution lies in the first application of causal inference frameworks to the field of software engineering, aiming to quantify the actual efficacy of code coverage in defect prevention and provide empirical evidence for optimizing testing strategies in development practices.
提供机构:
帕绍大学
创建时间:
2026-02-03
搜集汇总
数据集介绍

构建方式
在软件工程领域,探究代码覆盖率与缺陷引入之间的因果关系,需要构建一个能够反映真实开发过程的数据集。该数据集通过筛选成熟的JavaScript与TypeScript开源项目,依据项目活跃度、贡献者数量及测试套件稳定性等标准,选取了20个符合条件的目标项目。数据收集过程涵盖了纵向代码覆盖率信息、源代码度量指标、问题追踪与代码评审内容,并采用改进的SZZ算法识别缺陷引入提交。为确保数据质量,研究团队利用WayPack Machine工具进行依赖环境的时间重建,并通过自动化脚本与SmartSHARK平台集成多源数据,最终形成了包含特征分支提交与合并提交配对的结构化观测数据。
特点
该数据集的核心特点在于其因果推断导向的设计理念,首次在软件工程研究中系统性地整合了代码覆盖率作为连续暴露变量与缺陷引入作为结果变量的纵向关联数据。数据集不仅包含了传统的代码复杂度、修改历史等度量,还融入了开发者经验、评审深度、持续集成错误等多元混杂因素,通过有向无环图模型刻画了变量间的潜在因果关系。其覆盖范围跨越多个成熟开源项目,时间跨度长达五年,提供了高精度的行级覆盖率测量与经过问题类型预测优化的缺陷标签,为超越相关分析、深入探究剂量反应关系奠定了坚实基础。
使用方法
该数据集适用于基于因果推断的软件质量实证研究,使用者可借助广义倾向得分调整与双重稳健回归模型,估计代码覆盖率对缺陷引入的平均处理效应与剂量反应曲线。具体操作中,需首先基于最小调整集变量计算连续暴露的倾向得分,评估共同支持域并剔除重叠性差的观测,继而通过逆概率加权构建加权回归模型,量化覆盖率变化的因果影响。研究者可进一步比较未调整模型与因果模型的差异,以评估混杂偏倚,并利用剂量反应曲线可视化覆盖率全区间内的缺陷风险变化模式,从而为测试策略优化提供证据支持。
背景与挑战
背景概述
在软件工程领域,代码覆盖率作为衡量测试充分性的关键指标,长期以来被广泛用于软件质量保障。然而,关于其实际效果与最佳应用剂量的讨论,在学术界与工业界均存在显著争议。既往研究多局限于相关性分析,难以排除混杂因素的干扰,导致结论的稳健性不足。在此背景下,帕绍大学的Lukas Schulte、Gordon Fraser与Steffen Herbold等人于2026年构建了纵向代码覆盖率与缺陷引入关联数据集,旨在通过因果推断框架,量化代码覆盖率对缺陷引入的因果效应。该数据集聚焦成熟的JavaScript与TypeScript开源项目,整合了源代码度量、问题追踪与代码审查系统、持续集成等多维度时序数据,为深入理解软件质量保障机制提供了重要的实证基础。
当前挑战
该数据集致力于解决软件工程中一个核心问题:如何准确评估代码覆盖率对缺陷引入的因果影响,而非仅揭示表面关联。其构建面临多重挑战:在领域问题层面,需克服传统相关性分析中混杂变量(如代码复杂度、开发者经验、流程差异)带来的偏误,以识别覆盖率与缺陷风险间的真实因果路径;在数据集构建过程中,挑战包括从历史提交中可靠识别缺陷引入变更(SZZ算法的误差控制)、在动态依赖环境下大规模采集纵向覆盖率数据、确保不同项目间数据采集的一致性,以及基于领域知识构建并验证因果有向无环图以准确表征软件工程过程中的复杂变量关系。
常用场景
经典使用场景
在软件工程领域,代码覆盖率常被视为衡量测试充分性的关键指标,但其与缺陷引入之间的因果关系长期存在争议。纵向代码覆盖率与缺陷引入关联数据集通过构建因果有向无环图,整合源代码、问题追踪和持续集成等多维度变量,为研究者提供了探究覆盖率对缺陷引入因果效应的实证基础。该数据集最经典的使用场景在于支持基于广义倾向得分调整的双重稳健回归分析,从而量化不同覆盖率水平下缺陷引入概率的变化,揭示潜在的阈值效应或收益递减规律。
衍生相关工作
该数据集衍生的经典工作主要集中在因果推理与软件质量分析的交叉领域。例如,基于广义倾向得分的连续暴露处理方法被应用于缺陷定位研究,如NUMFL工具的价值驱动因果模型。同时,该数据集的因果图构建方法启发了对测试充分性准则的因果检验框架,以及元胞测试中的因果图应用。这些工作共同推动了因果方法在软件工程实证研究中的制度化,为后续探究异构处理效应及未观测混杂控制奠定了基础。
数据集最近研究
最新研究方向
在软件质量保障领域,代码覆盖率作为测试充分性的核心指标,其与缺陷引入之间的因果关系一直是学术界与工业界争论的焦点。近期研究通过构建因果有向无环图,整合源代码、问题追踪与持续集成等多维度变量,采用广义倾向得分调整与双重稳健回归方法,首次对成熟JavaScript与TypeScript开源项目中代码覆盖率对缺陷引入的因果效应进行量化。这一前沿探索不仅揭示了覆盖率与缺陷风险之间的剂量反应关系,还深入分析了混杂因素如代码复杂性、开发者经验与评审过程的影响,为软件工程实践中的测试策略优化提供了因果推断层面的实证依据。
相关研究论文
- 1Causal Inference for the Effect of Code Coverage on Bug Introduction帕绍大学 · 2026年
以上内容由遇见数据集搜集并总结生成



