Leveraging Test Driven Development with Large Language Models for Reliable and Verifiable Spreadsheet Code Generation: A Research Framework

📄 arXiv: 2510.15585v2 📥 PDF

作者: Simon Thorne, Advait Sarkar

分类: cs.SE, cs.CL, cs.PL

发布日期: 2025-10-17 (更新: 2025-11-26)

备注: 16 pages

期刊: Proceedings of the EuSpRIG 2025 Conference "Spreadsheet Productivity & Risks" ISBN : 978-1-905404-60-5


💡 一句话要点

提出基于测试驱动开发(TDD)的LLM代码生成框架,提升电子表格代码的可靠性与可验证性

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

关键词: 大型语言模型 代码生成 测试驱动开发 软件工程 电子表格 可靠性 可验证性

📋 核心要点

  1. 大型语言模型在代码生成方面表现出色,但常出现幻觉、逻辑不一致和语法错误,尤其是在金融建模等高风险领域。
  2. 论文提出将测试驱动开发(TDD)融入LLM代码生成流程,通过“测试优先”的方法引导LLM生成更准确、可验证的代码。
  3. 该框架适用于多种编程环境,并通过实验设计、评估指标和TDD提示示例,旨在提升计算思维和用户参与度。

📝 摘要(中文)

本文提出了一种结构化的研究框架,该框架将成熟的软件工程实践——测试驱动开发(TDD)与大型语言模型(LLM)驱动的代码生成相结合,旨在提高生成代码的正确性、可靠性以及用户对生成结果的信心。我们假设“测试优先”的方法论能够提供技术约束和认知支架,引导LLM输出更准确、可验证和易于理解的解决方案。该框架适用于各种编程环境,从电子表格公式生成到Python等脚本语言以及Rust等强类型语言。框架包含明确的实验设计,包括明确定义的参与者群体、评估指标以及基于TDD的提示示例。通过强调测试驱动的思维方式,我们旨在提高计算思维、提示工程技能和用户参与度,尤其是有益于那些缺乏正规编程训练但面临逻辑错误严重后果的电子表格用户。我们邀请合作,以完善和实证评估这种方法,最终旨在在教育和专业发展实践中建立负责任和可靠的LLM集成。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)在生成电子表格代码时存在的可靠性和可验证性问题。现有方法生成的代码容易出现幻觉、逻辑不一致和语法错误,这在高风险领域(如金融建模)是不可接受的。缺乏有效的验证机制导致用户难以信任LLM生成的代码。

核心思路:论文的核心思路是将软件工程中成熟的测试驱动开发(TDD)方法引入LLM的代码生成流程。TDD强调先编写测试用例,然后编写代码以通过这些测试。通过这种“测试优先”的方法,可以为LLM提供明确的目标和约束,引导其生成更准确、可靠的代码。

技术框架:该研究框架包含以下主要阶段:1) 定义明确的测试用例,这些测试用例描述了期望的代码行为。2) 使用LLM生成满足这些测试用例的代码。3) 运行测试用例验证生成的代码。4) 如果代码未能通过测试,则迭代地修改提示或代码,直到所有测试都通过。该框架可以应用于不同的编程环境,包括电子表格公式、Python脚本和Rust等强类型语言。

关键创新:论文的关键创新在于将TDD方法与LLM代码生成相结合。传统的LLM代码生成方法通常依赖于自然语言描述,缺乏明确的验证机制。通过引入TDD,可以为LLM提供更精确的目标,并使用测试用例来验证生成的代码的正确性。这与现有方法形成了鲜明对比,现有方法通常依赖于人工审查或不充分的测试。

关键设计:该框架的关键设计包括:1) 明确的测试用例定义,测试用例需要覆盖代码的各种边界条件和异常情况。2) 精心设计的提示工程,提示需要引导LLM生成满足测试用例的代码。3) 迭代的开发过程,如果代码未能通过测试,则需要迭代地修改提示或代码,直到所有测试都通过。

📊 实验亮点

由于是position paper,目前没有具体的实验结果。论文提出了一个明确的实验设计,包括定义参与者群体、评估指标和基于TDD的提示示例,为后续的实证研究奠定了基础。未来的研究可以关注TDD方法在不同编程环境下的效果,以及不同提示策略对LLM代码生成质量的影响。

🎯 应用场景

该研究成果可应用于金融建模、科学计算等对代码准确性要求极高的领域。通过提高LLM生成代码的可靠性,可以降低错误风险,提升工作效率。此外,该框架还可用于教育领域,帮助学生学习编程和测试驱动开发,培养良好的编程习惯。未来,该方法有望推广到更广泛的代码生成场景,促进人工智能在软件开发领域的应用。

📄 摘要(原文)

Large Language Models (LLMs), such as ChatGPT, are increasingly leveraged for generating both traditional software code and spreadsheet logic. Despite their impressive generative capabilities, these models frequently exhibit critical issues such as hallucinations, subtle logical inconsistencies, and syntactic errors, risks particularly acute in high stakes domains like financial modelling and scientific computations, where accuracy and reliability are paramount. This position paper proposes a structured research framework that integrates the proven software engineering practice of Test-Driven Development (TDD) with Large Language Model (LLM) driven generation to enhance the correctness of, reliability of, and user confidence in generated outputs. We hypothesise that a "test first" methodology provides both technical constraints and cognitive scaffolding, guiding LLM outputs towards more accurate, verifiable, and comprehensible solutions. Our framework, applicable across diverse programming contexts, from spreadsheet formula generation to scripting languages such as Python and strongly typed languages like Rust, includes an explicitly outlined experimental design with clearly defined participant groups, evaluation metrics, and illustrative TDD based prompting examples. By emphasising test driven thinking, we aim to improve computational thinking, prompt engineering skills, and user engagement, particularly benefiting spreadsheet users who often lack formal programming training yet face serious consequences from logical errors. We invite collaboration to refine and empirically evaluate this approach, ultimately aiming to establish responsible and reliable LLM integration in both educational and professional development practices.