FlakiMe:实验室可控的测试波动性影响评估——以变异测试与程序修复为例
软件工程
2019-12-09 v1
摘要
许多软件测试研究隐含假设测试失败是确定性的,从而总能揭示相同缺陷的存在。然而,该假设并非总是成立,因为某些测试失败源于所谓的波动性测试(flaky tests),即结果非确定性的测试。遗憾的是,波动性测试对测试和依赖测试的活动(如变异测试和自动化程序修复)有重大影响。为应对此问题,我们引入一个名为 FlakiMe 的测试波动性评估与实验平台,支持向给定测试套件的行为中注入(可控的)一定程度的波动性。由此,FlakiMe 为研究者在实验室可控条件下调查测试波动性对其技术的影响提供了手段。我们使用 FlakiME 报告了评估波动性对变异测试和程序修复影响的案例研究结果与见解。这些结果表明,5% 的波动性失败足以影响变异得分,但效应量较小(2%–4%),而其完全摧毁了程序修复修补 50% 被测程序的能力。我们还观察到波动性具有案例特异性影响,主要干扰由大量测试覆盖的缺陷的修复。此外,我们发现极少量用户反馈足以缓解波动性的影响。
引用
@article{arxiv.1912.03197,
title = {FlakiMe: Laboratory-Controlled Test Flakiness Impact Assessment. A Case Study on Mutation Testing and Program Repair},
author = {Maxime Cordy and Renaud Rwemalika and Mike Papadakis and Mark Harman},
journal= {arXiv preprint arXiv:1912.03197},
year = {2019}
}