一种检测持续集成中提交行为变更的方法与基准
软件工程
2023-05-05 v3
摘要
当开发者向应用程序代码库推送一处改动时,良好的实践是编写测试用例来明确这一行为变更。得益于持续集成(CI),该测试会在后续提交上运行,以检查这些提交是否引入了针对该行为的回归。本文提出一种检测提交中行为变更的方法。其输入为一个程序、它的测试套件以及一次提交;输出为一组捕获该程序提交前与提交后版本之间行为差异的测试方法。我们将该方法称为 DCI(Detecting behavioral changes in CI,检测 CI 中的行为变更)。它通过(i)断言扩增与(ii)基于搜索的输入空间探索来生成现有测试用例的变体。我们在来自 6 个开源 Java 项目的精心整理的 60 次提交上评估了该方法。据我们所知,这是首个精心整理的真实世界行为变更数据集。我们的评估表明,DCI 能够生成检测行为变更的测试方法。该方法完全自动化,并可集成到当前的开发流程中。主要局限在于其面向单元测试,且仅对相对较小比例的提交有效。更具体地,DCI 仅对拥有已执行被修改代码的单元测试的提交有效。在实践中,从我们的基准项目来看,我们发现 15.29% 的提交满足 DCI 所需的条件。
引用
@article{arxiv.1902.08482,
title = {An Approach and Benchmark to Detect Behavioral Changes of Commits in Continuous Integration},
author = {Benjamin Danglot and Martin Monperrus and Walter Rudametkin and Benoit Baudry},
journal= {arXiv preprint arXiv:1902.08482},
year = {2023}
}