测试之争:基于 SBST、符号执行和 LLM 方法的单元测试生成比较研究
软件工程
2025-01-20 v1
摘要
自动生成测试是软件工程研究中的关键且持续的关注方向。大型语言模型(LLM)的出现开辟了新的机遇, given their ability to perform a wide spectrum of tasks。然而,LLM 方法相对于传统技术如基于搜索的软件测试(SBST)和符号执行仍不明确。本文我们对三种工具进行广泛研究:EvoSuite 用于 SBST,Kex 用于符号执行,TestSpark 用于 LLM 测试生成。我们在 GitBug Java 数据集上评估工具性能,并使用各种基于执行和基于特征的指标进行比较。我们的结果表明,尽管 LLM 测试生成前景光明,但在覆盖率方面落后于传统方法。然而,它在突变得分方面显著优于传统方法,表明 LLM 能够提供代码的更深层语义理解。LLM 方法在故障检测能力方面也逊于 SBST 和符号执行方法。此外,我们的特征分析显示,所有工具主要受受测试类(CUT)的复杂度和内部依赖影响,其中 LLM 方法对 CUT 大小尤其敏感。
引用
@article{arxiv.2501.10200,
title = {Test Wars: A Comparative Study of SBST, Symbolic Execution, and LLM-Based Approaches to Unit Test Generation},
author = {Azat Abdullin and Pouria Derakhshanfar and Annibale Panichella},
journal= {arXiv preprint arXiv:2501.10200},
year = {2025}
}