基于自动感染与传播分析的测试套件改进建议
软件工程
2019-09-12 v1
摘要
极端变换会移除至少被一个测试用例所到达的方法的方法体。若测试套件在原始程序上通过,且在极端变换后仍然通过,则称该变换未被检测,测试套件需要被改进。本文中,我们提出一种技术,用于自动确定下列三个原因中哪一个阻碍了极端变换的检测:测试输入不足以感染程序状态;感染未传播到测试用例;测试用例具有未观测到感染的弱预言。我们开发了 Reneri 工具,该工具观察被测程序与测试套件,以确定在原始方法与变换后方法上测试运行的运行时差异。分析期间收集的观测由 Reneri 处理,以向开发者建议可能的改进。我们在 15 个项目及共计 312 个未被检测的极端变换上评估 Reneri。该工具能为每个未被检测的变换生成一条建议。在 63% 的案例中,现有测试用例可感染程序状态,意味着未被检测的变换主要源于可观测性与弱预言问题。与开发者的访谈证实了所建议改进的相关性,而使用最先进自动测试生成工具的实验表明,没有任何工具能改进现有测试套件以修复所有未被检测的变换。
引用
@article{arxiv.1909.04770,
title = {Suggestions on Test Suite Improvements with Automatic Infection and Propagation Analysis},
author = {Oscar Luis Vera-Pérez and Benjamin Danglot and Martin Monperrus and Benoit Baudry},
journal= {arXiv preprint arXiv:1909.04770},
year = {2019}
}