中文

用于搜索式单元测试生成中多准则组合的覆盖目标选择器

软件工程 2024-01-05 v2

摘要

单元测试对软件开发过程至关重要,它确保程序中基本编程单元(例如方法)的正确性。搜索式软件测试(SBST)是一种自动生成测试用例的方法。SBST 通过指定覆盖准则(例如分支覆盖)利用遗传算法生成测试用例。然而,一个好的测试套件必须具备不同的属性,而这些属性无法通过单一的覆盖准则来刻画。因此,当前最先进的方法组合多个准则来生成测试用例。由于组合多个覆盖准则为优化带来了多个目标,与单一准则相比,它损害了测试套件对某些准则的覆盖率。为应对该问题,我们提出了一种名为 \textbf{smart selection} 的新方法。基于准则间的覆盖相关性和覆盖目标间的包含关系,smart selection 选取覆盖目标的子集,以减少优化目标的数量并避免遗漏所有准则的任何属性。我们在 400400 个 Java 类上以 22 分钟预算结合三种最先进的遗传算法对 smart selection 进行了实验评估。平均而言,smart selection 在 65.1%65.1\% 的两种方法有显著差异的类上优于组合所有目标。其次,我们进行了实验以验证关于覆盖准则关系的假设。此外,我们在 55881010 分钟的不同预算下评估了 smart selection 的覆盖性能,并探究其对缺陷检测的影响,证实了 smart selection 相对于组合所有目标的优势。

关键词

引用

@article{arxiv.2309.07518,
  title  = {Coverage Goal Selector for Combining Multiple Criteria in Search-Based Unit Test Generation},
  author = {Zhichao Zhou and Yuming Zhou and Chunrong Fang and Zhenyu Chen and Xiapu Luo and Jingzhu He and Yutian Tang},
  journal= {arXiv preprint arXiv:2309.07518},
  year   = {2024}
}

备注

arXiv admin note: substantial text overlap with arXiv:2208.04096