中文

在基于搜索的单元测试生成中选择性组合多种覆盖目标

软件工程 2023-01-10 v1

摘要

单元测试是软件开发过程的关键部分,确保程序中基本编程单元(如方法)的正确性。基于搜索的软件测试(SBST)是一种自动生成测试用例的方法。SBST 通过指定覆盖准则(如分支覆盖)利用遗传算法生成测试用例。然而,一个好的测试套件必须具备不同性质,而这些性质无法通过使用单一覆盖准则来刻画。因此,现有最优方法组合多种准则来生成测试用例。由于组合多种覆盖准则为优化带来了多个目标,与单一准则相比,它损害了测试套件对某些准则的覆盖率。为应对该问题,我们提出一种名为 smart selection(智能选择)的新方法。基于各准则间的覆盖相关性及覆盖目标的包含关系,smart selection 选取覆盖目标的子集,以减少优化目标数量并避免遗漏所有准则的任何性质。我们在 400400 个 Java 类上以三种前沿遗传算法对 smart selection 进行实验评估。平均而言,smart selection 在 65.1%65.1\% 的两者具有显著差异的类别上优于组合全部目标。

关键词

引用

@article{arxiv.2208.04096,
  title  = {Selectively Combining Multiple Coverage Goals in Search-Based Unit Test Generation},
  author = {Zhichao Zhou and Yuming Zhou and Chunrong Fang and Zhenyu Chen and Yutian Tang},
  journal= {arXiv preprint arXiv:2208.04096},
  year   = {2023}
}