- 简介传统的自动化测试生成工具在生成测试用例和繁琐的漏洞暴露测试输入方面存在困难。大型语言模型(LLMs)可以被提示直接为程序生成测试输入和测试用例,但在复杂场景下测试的精度可能非常低(根据我们的实验仅为6.3%)。为了填补这一空白,本文提出了AID,将LLMs与差分测试相结合,以生成针对可能正确的程序(即已通过所有现有测试的程序)的故障暴露测试输入和测试用例。特别是,AID选择在由LLMs生成的一组程序变体上产生多样输出的测试输入,然后基于这些输出构建测试用例。我们在两个具有繁琐漏洞的大型数据集TrickyBugs和EvalPlus上评估了AID,并将其与三个最先进的基线进行比较。评估结果表明,AID的召回率、精度和F1得分分别比最先进的技术水平高出多达1.80倍、2.65倍和1.66倍。
- 图表
- 解决问题如何结合大语言模型和差分测试生成高精度的测试用例?
- 关键思路将大语言模型和差分测试结合,通过选择多样化输出的测试用例,构建测试用例的Oracle,从而生成高质量的测试用例。
- 其它亮点论文提出了一种新的测试用例生成方法AID,使用两个大型数据集进行了实验,与三个最先进的基线进行了比较,结果显示AID的召回率、精度和F1得分分别提高了1.80倍、2.65倍和1.66倍。
- 与当前领域的相关研究相比,本文的方法结合了大语言模型和差分测试,从而提高了测试用例的质量。相关研究包括Concolic测试、符号执行和模糊测试。
沙发等你来抢
去评论
评论
沙发等你来抢