中文

ATM:基于测试代码相似性与进化搜索的黑盒测试用例最小化

软件工程 2022-12-22 v2

摘要

执行大型测试套件耗时且耗资源,有时甚至不可能,并且此类测试套件通常包含许多冗余测试用例。因此,测试用例最小化被用于移除不太可能检测新故障的冗余测试用例。然而,大多数测试用例(套件)最小化技术依赖于代码覆盖率(白盒)、基于模型的特征或需求规约,而这些并非总能被测试工程师获取。最近,提出了一组称为 FAST-R 的新技术,仅依靠测试用例代码进行测试用例最小化,其效率似乎远高于白盒技术。然而,它在 Java 项目上达到了较低的故障检测能力,使其在实际应用中具有挑战性。本文提出 ATM(基于 AST 的测试用例最小化器),一种基于相似性、基于搜索的测试用例最小化技术,以特定预算为输入,同样仅依赖测试用例的源代码,但试图通过更细粒度的相似性分析和专用搜索算法实现更高的故障检测。ATM 将测试用例代码转换为抽象语法树(AST),并依赖四种基于树的相似性度量来应用进化搜索,特别是遗传算法,以最小化测试用例。我们在包含 16 个 Java 项目和 661 个故障版本的大型数据集上,使用从测试套件的 25% 到 75% 的三种预算评估了 ATM 的有效性和效率。当仅运行 50% 的测试用例时,ATM 达到了显著更高的故障检测率(平均 0.82),相比之下 FAST-R(平均 0.61)和随机最小化(平均 0.52)在实际上可接受的时间内(平均 1.1-4.3 小时)完成,鉴于最小化仅在创建许多新测试用例(主要发布)时偶尔应用。其他预算下取得的结果是一致的。

关键词

引用

@article{arxiv.2210.16269,
  title  = {ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolutionary Search},
  author = {Rongqi Pan and Taher A. Ghaleb and Lionel Briand},
  journal= {arXiv preprint arXiv:2210.16269},
  year   = {2022}
}

备注

Accepted at the 45th IEEE/ACM International Conference on Software Engineering