Understanding LLM-Driven Test Oracle Generation

📄 arXiv: 2601.05542v1 📥 PDF

作者: Adam Bodicoat, Gunel Jahangirova, Valerio Terragni

分类: cs.SE, cs.AI, cs.LG

发布日期: 2026-01-09

备注: Accepted for presentation at the 2nd ACM/IEEE International Conference on AI-powered Software (AIware 2025)

期刊: Proc. 2nd ACM/IEEE International Conference on AI-powered Software (AIware 2025), 2025


💡 一句话要点

利用大语言模型生成测试预言,解决软件测试中的预言问题

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 测试预言生成 自动化测试 软件质量 提示工程

📋 核心要点

  1. 现有自动化单元测试生成技术主要依赖回归预言,无法有效区分程序的正确与错误行为,即预言问题。
  2. 该论文探索利用大型语言模型(LLM)生成测试预言,通过自然语言提示驱动软件测试,反映预期行为。
  3. 通过实证研究,分析不同提示策略和上下文输入对LLM生成预言质量的影响,揭示其优势与局限性。

📝 摘要(中文)

自动化单元测试生成旨在提高软件质量,同时减少手动创建测试所需的时间和精力。然而,现有的技术主要生成回归预言,这些预言依赖于被测类的已实现行为。它们没有解决预言问题:区分正确和不正确程序行为的挑战。随着基础模型(FMs),特别是大型语言模型(LLMs)的兴起,出现了一个新的机会来生成反映预期行为的测试预言。这使得LLM成为Promptware的推动者,软件创建和测试由自然语言提示驱动。本文对LLM在生成暴露软件故障的测试预言方面的有效性进行了实证研究。我们研究了不同的提示策略和上下文输入级别如何影响LLM生成的预言的质量。我们的发现提供了对基于LLM的预言生成在FM时代的优势和局限性的见解,提高了我们对其能力的理解,并促进了该领域未来的研究。

🔬 方法详解

问题定义:论文旨在解决软件测试中的预言问题,即如何自动生成能够区分正确和错误程序行为的测试预言。现有方法主要依赖于回归测试,只能验证程序是否与之前的版本行为一致,而无法判断程序本身是否正确。这种方法的痛点在于无法发现程序中的潜在错误,尤其是那些在初始版本中就存在的错误。

核心思路:论文的核心思路是利用大型语言模型(LLM)的自然语言理解和生成能力,将测试预言的生成过程转化为一个自然语言处理任务。通过向LLM提供自然语言描述的程序行为规范,让LLM自动生成相应的测试预言。这样生成的预言能够反映程序设计的意图,从而更有效地发现程序中的错误。

技术框架:该研究的技术框架主要包括以下几个步骤:1. 确定被测程序和需要生成的测试用例;2. 设计不同的提示策略,包括提供不同级别的上下文信息;3. 使用LLM生成测试预言;4. 评估生成的测试预言的质量,例如通过人工检查或使用生成的预言来检测程序中的错误。

关键创新:该论文的关键创新在于将LLM引入到测试预言生成领域,并探索了不同的提示策略对预言质量的影响。与传统的回归测试方法相比,该方法能够生成反映程序设计意图的测试预言,从而更有效地发现程序中的错误。

关键设计:论文中涉及的关键设计包括:1. 提示策略的设计:如何向LLM提供有效的上下文信息,例如程序的功能描述、输入输出示例等;2. LLM的选择:选择合适的LLM,并根据具体任务进行微调;3. 预言质量的评估:设计合适的指标来评估生成的测试预言的质量,例如准确率、召回率等。

📊 实验亮点

该论文通过实证研究,评估了不同提示策略对LLM生成测试预言质量的影响。研究结果表明,合适的提示策略能够显著提高LLM生成预言的准确性和有效性。具体性能数据未知,但研究强调了上下文信息在提示工程中的重要性,并为未来研究提供了指导。

🎯 应用场景

该研究成果可应用于软件开发的各个阶段,尤其是在单元测试和集成测试阶段,能够显著提高测试效率和软件质量。通过自动生成高质量的测试预言,可以减少人工编写测试用例的工作量,并更有效地发现程序中的错误。未来,该技术有望应用于更复杂的软件系统,例如嵌入式系统和分布式系统。

📄 摘要(原文)

Automated unit test generation aims to improve software quality while reducing the time and effort required for creating tests manually. However, existing techniques primarily generate regression oracles that predicate on the implemented behavior of the class under test. They do not address the oracle problem: the challenge of distinguishing correct from incorrect program behavior. With the rise of Foundation Models (FMs), particularly Large Language Models (LLMs), there is a new opportunity to generate test oracles that reflect intended behavior. This positions LLMs as enablers of Promptware, where software creation and testing are driven by natural-language prompts. This paper presents an empirical study on the effectiveness of LLMs in generating test oracles that expose software failures. We investigate how different prompting strategies and levels of contextual input impact the quality of LLM-generated oracles. Our findings offer insights into the strengths and limitations of LLM-based oracle generation in the FM era, improving our understanding of their capabilities and fostering future research in this area.