中文

测试用例与方法间的栈距离是否与测试有效性相关?

软件工程 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