中文

CasModaTest: 一种级联且模型无关的单元测试生成自导向框架

软件工程 2024-06-25 v1

摘要

尽管已经提出了许多基于机器学习(ML)的单元测试生成方法,并且确实取得了显著性能,但它们在有效性和实际使用方面仍然存在一些局限性。更准确地说,现有的基于ML的方法(1)生成单元测试的部分内容,主要集中在测试预言生成上;(2)在语义上不匹配测试前缀和测试预言;(3)与闭源模型高度绑定,最终损害数据安全。我们提出了CasModaTest,一个级联的、模型无关的、端到端的单元测试生成框架,通过两个级联阶段来缓解上述局限性:测试前缀生成和测试预言生成。然后,我们手动构建大规模演示池,为CasModaTest提供高质量的测试前缀和测试预言示例。最后,CasModaTest自动组装生成的测试前缀和测试预言,并编译或执行它们以检查其有效性,可选地附加几次尝试来修复编译和执行阶段出现的错误。为了评估CasModaTest的有效性,我们在广泛使用的数据集(Defects4J)上进行了大规模实验,并通过考虑两个性能指标将其与四种最先进(SOTA)方法进行比较。实验结果表明,CasModaTest在所有SOTA方法上都有显著提升(即,准确率提升60.62%-352.55%,焦点方法覆盖率提升2.83%-87.27%)。此外,我们还在不同的开源LLM上进行了CasModaTest实验,发现CasModaTest在端到端单元测试生成方面也能取得比SOTA方法显著的改进(准确率提升39.82%-293.96%,焦点方法覆盖率提升9.25%-98.95%)。

关键词

引用

@article{arxiv.2406.15743,
  title  = {CasModaTest: A Cascaded and Model-agnostic Self-directed Framework for Unit Test Generation},
  author = {Chao Ni and Xiaoya Wang and Liushan Chen and Dehai Zhao and Zhengong Cai and Shaohua Wang and Xiaohu Yang},
  journal= {arXiv preprint arXiv:2406.15743},
  year   = {2024}
}

备注

14 pages, 7 figures