面向 Web 测试中异步等待式不稳定测试的时间修复方法
软件工程
2023-05-22 v2
摘要
异步等待是不稳定测试(flaky tests)最常见的原因之一,也是 Web 应用测试中的一个主要耗时因素。为调查 Web 测试中异步等待式不稳定测试及其修复的特征,我们构建了一个包含 49 个可复现的不稳定测试的数据集,这些测试来自 26 个开源项目,由异步等待引起,并附有相应的开发者编写的修复。我们对这些不稳定测试的研究显示,在约 63% 的测试中(49 个中的 31 个),开发者通过调整等待时间来解决异步等待式不稳定测试,即便根因在别处时也是如此。基于这一发现,我们提出 TRaf,一种针对 Web 应用中异步等待式不稳定测试的自动化基于时间的修复方法。TRaf 利用代码相似性和过往变更历史,为 Web 应用中每个异步调用建议合适的等待时间,从而解决不稳定问题。其核心见解是,由于开发者常会多次犯类似错误,高效等待时间的线索存在于当前或过往代码库中。我们的分析表明,与开发者编写的修复相比,TRaf 能建议更短的等待时间以解决测试不稳定性,将测试执行时间减少 11.1%。通过对新等待时间进行额外的动态调优,TRaf 进一步将执行时间减少 20.2%。
引用
@article{arxiv.2305.08592,
title = {Time-based Repair for Asynchronous Wait Flaky Tests in Web Testing},
author = {Yu Pei and Jeongju Sohn and Sarra Habchi and Mike Papadakis},
journal= {arXiv preprint arXiv:2305.08592},
year = {2023}
}