测试用例与方法间的栈距离是否与测试有效性相关?
软件工程
2019-03-14 v1
摘要
变异测试是评估测试套件有效性的一种手段,其结果被认为比代码覆盖率指标更有意义。然而,尽管已有若干优化,变异测试仍需可观的计算代价,尚未在工业界广泛采用。因此,我们在本文中研究是否可用更轻量的方法近似测试有效性。我们假设,测试用例更可能检测到调用栈上靠近该测试用例的方法中的故障,而非那些测试用例通过许多其他方法间接访问的方法中的故障。基于该假设,我们提出测试用例与方法间的最小栈距离作为一种新的测试度量,其表达任意测试用例与给定方法的接近程度,并研究其与测试有效性的相关性。我们对21个开源项目进行了实证研究,总计180万行代码,表明栈距离与测试有效性之间存在相关性。相关性强度最高达0.58。我们进一步表明,使用最小栈距离及附加易计算度量的分类器能以92.9%的准确率和93.4%的召回率预测方法的变异测试结果。因此,此类分类器可被考虑作为变异测试的轻量替代方案,或作为其前序的、代价更低的步骤。
引用
@article{arxiv.1903.05432,
title = {Is the Stack Distance Between Test Case and Method Correlated With Test Effectiveness?},
author = {Rainer Niedermayr and Stefan Wagner},
journal= {arXiv preprint arXiv:1903.05432},
year = {2019}
}
备注
EASE 2019