超越基于规则的突变测试:使用大语言模型生成测试感知的突变体
Beyond Rule-Based Mutation Testing: Test-Aware Mutant Generation Using Large Language Models
摘要
突变测试通过将合成错误注入程序代码来评估测试套件的充分性。然而,传统的基于规则的工具通常会生成大量琐碎的、冗余的或等效的突变体,这限制了它们在识别测试套件中的差距的实际用途。虽然最近基于大语言模型 (LLM) 的方法会产生更现实的错误,但大多数仍然是测试盲的:模型只能看到源代码,无法推断现有测试已经涵盖的内容。我们提出测试感知突变体生成,其中大语言模型在单个提示中接收问题陈述、规范解决方案和基本测试,并且必须生成通过基本单元测试的非平凡突变体。我们在 HumanEval 和 MBPP 基准测试中跨五个 LLM(Gemini 3.1 Pro、Gemini 3 Flash、GPT 5.1 Codex Mini、GPT 4.1 Mini、Qwen3-32B)评估了这种方法。扩展的 EvalPlus 测试套件充当自动化预言机,以验证幸存的突变体是否代表真正的错误。测试感知提示的验证错误率为 87.7% (HumanEval) 和 79.1% (MBPP),这意味着这些突变体通过了所有基础测试,但被预言机捕获。这大大优于匹配的盲测提示(分别仅产生 12.2% 和 23.0%)和传统的基于规则的工具 mutmut(4.4% 和 5.7%)。虽然故障的微妙性(突变体失败的扩展测试的比例)在所有三种方法中仍然具有可比性,但与测试盲提示相比,测试意识最大限度地减少了每个已验证故障的计算成本。将大语言模型暴露于现有的单元测试中,可以将突变体的生成从无目标的错误注入转向有效发现现有测试套件中的弱点。我们的工作为未来的研究奠定了坚实的基础,将测试感知突变体的生成扩展到生产水平环境。