中文

面向回归测试套件的高效增量代码覆盖率分析

软件工程 2024-10-30 v1

摘要

代码覆盖率分析已被广泛应用于开源和工业软件仓库的持续集成中,以监控回归测试套件的充分性。然而,计算代码覆盖率可能代价高昂,会在测试执行过程中引入显著的额外开销。此外,当只有部分覆盖率数据受到代码变更影响时,通常没有必要为整个测试套件重新收集代码覆盖率。虽然存在回归测试选择(RTS)技术来选择行为可能受代码变更影响的测试子集,但它们与代码覆盖率分析技术不兼容——也就是说,仅执行 RTS 选择的测试会导致错误的代码覆盖率结果。在本文中,我们提出了首个增量代码覆盖率分析技术,该技术通过执行最小测试子集来更新受代码变更影响的覆盖率数据,从而加速代码覆盖率分析。我们在一个名为 iJaCoCo 的工具中实现了该技术,该工具基于 Ekstazi 和 JaCoCo——分别为 Java 领域最先进的 RTS 和代码覆盖率分析工具。我们在 22 个开源代码库的 1,122 个版本上评估了 iJaCoCo,结果表明,与 JaCoCo 相比,iJaCoCo 可以将代码覆盖率分析时间平均加速 1.86 倍,最高可达 8.20 倍。

关键词

引用

@article{arxiv.2410.21798,
  title  = {Efficient Incremental Code Coverage Analysis for Regression Test Suites},
  author = {Jiale Amber Wang and Kaiyuan Wang and Pengyu Nie},
  journal= {arXiv preprint arXiv:2410.21798},
  year   = {2024}
}

备注

Accepted as a conference paper at ASE 2024