中文

基于代码模型的单元测试用例生成的领域自适应

软件工程 2024-08-01 v3 人工智能

摘要

近来,基于深度学习的测试用例生成方法被提出用于自动化生成单元测试用例。在本研究中,我们利用基于 Transformer 的代码模型,在项目级别借助领域自适应(Domain Adaptation, DA)来生成单元测试。具体而言,我们使用 CodeT5(一个在源代码数据上训练的较小语言模型),并在测试生成任务上对其进行微调。然后,我们将领域自适应应用于每个目标项目数据,以学习项目特定的知识(项目级 DA)。我们使用 Methods2test 数据集来微调 CodeT5 以完成测试生成任务,并使用 Defects4j 数据集进行项目级领域自适应与评估。我们将我们的方法与(a)未经 DA 仅在测试生成上微调的 CodeT5、(b)A3Test 工具以及(c)GPT-4 在来自 Defects4j 数据集的五个项目上进行比较。结果表明,与使用上述(a)、(b)、(c)基线相比,采用 DA 生成的测试分别将行覆盖率提高了 18.62%、19.88% 和 18.02%,将变异得分提高了 16.45%、16.01% 和 12.99%。总体结果显示,在解析率、编译率、BLEU 和 CodeBLEU 等指标上均有持续改进。此外,我们表明我们的方法可视为现有基于搜索的测试生成工具(如 EvoSuite)的互补方案,可分别使行覆盖率和变异得分平均提高 34.42% 和 6.8%。

关键词

引用

@article{arxiv.2308.08033,
  title  = {Domain Adaptation for Code Model-based Unit Test Case Generation},
  author = {Jiho Shin and Sepehr Hashtroudi and Hadi Hemmati and Song Wang},
  journal= {arXiv preprint arXiv:2308.08033},
  year   = {2024}
}

备注

11 pages + reference. Accepted in ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) 2024