计算资源对不稳定测试的影响
软件工程
2024-10-28 v1
摘要
不稳定测试(flaky tests)是指在代码未改动的情况下非确定性地通过和失败的测试。这些测试会损害开发者的生产力。特别是在测试运行于持续集成环境中时,测试可能竞争有限的算力资源(CPU、内存等)的访问权,我们推测资源的(不可)可用性可能是不稳定测试失败率的一个重要因素。我们首次评估了计算资源对不稳定测试的影响,涵盖了用 Java、JavaScript 和 Python 编写的共 52 个项目,以及 27 种不同的资源配置。采用严格的统计方法,我们确定了哪些测试是 RAFT(资源影响的不稳定测试,Resource-Affected Flaky Tests)。我们发现数据集中 46.5% 的不稳定测试是 RAFT,表明相当大比例的不稳定测试失败可通过调整运行测试时可用资源来避免。我们向开发者报告了 RAFT 及避免它们的配置,并收到兴趣去修复 RAFT 或改进项目规范,使测试仅在不太可能遇到 RAFT 失败的配置下运行。我们的结果对试图检测不稳定测试的研究者也有启示,例如,在运行测试时减少可用资源是一种经济高效的方法来检测更多不稳定失败。
引用
@article{arxiv.2310.12132,
title = {The Effects of Computational Resources on Flaky Tests},
author = {Denini Silva and Martin Gruber and Satyajit Gokhale and Ellen Arteca and Alexi Turcotte and Marcelo d'Amorim and Wing Lam and Stefan Winter and Jonathan Bell},
journal= {arXiv preprint arXiv:2310.12132},
year = {2024}
}
备注
This work has been submitted to the IEEE for possible publication