← 最新论文
💻 computer science

Automated Test Suite Enhancement Using Large Language Models with Few-shot Prompting

本文通过实证研究探讨了利用不同来源(人工、传统工具或大模型)的测试示例进行少样本提示对大模型生成单元测试质量的影响,发现基于人工示例并结合问题描述与代码相似度的检索策略能最有效地提升测试用例的覆盖率、正确性及可维护性。

原作者: Alex Chudic, Gül Çalıklı

发布于 2026-02-13
📖 1 分钟阅读☕ 轻松阅读

原作者: Alex Chudic, Gül Çalıklı

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇文章主要研究了一个非常实际的问题:如何利用人工智能(大语言模型)来帮程序员写“单元测试”(代码的体检报告),并且如何让这些 AI 写的报告既准确又好读。

为了让你更容易理解,我们可以把整个软件开发过程想象成开一家餐厅,把“代码”想象成菜谱,把“单元测试”想象成试菜员

1. 背景:为什么需要“试菜员”?

在开餐厅(开发软件)时,厨师(程序员)写好了菜谱(代码)。为了确保这道菜没毒、味道对,必须有人先尝一尝,这就是“单元测试”。

  • 传统做法:让厨师自己写试菜步骤。但这太累了,而且容易漏掉细节。
  • 老式自动化工具:以前有一些机器能自动写试菜步骤,但写出来的步骤像乱码,人类根本看不懂,也不实用。
  • 现在的 AI(大语言模型):像 ChatGPT 这样的 AI 很聪明,能写出像人写的、好读的试菜步骤。但是,AI 有时候会“幻觉”(胡说八道),或者写出的步骤有语法错误,导致试菜失败。

2. 核心问题:怎么让 AI 写得更好?

这就好比你想让一个刚入行的试菜员(AI)写出完美的试菜报告,你该怎么做?

  • 零样本(Zero-shot):直接命令 AI:“你去写个试菜报告。”(AI 可能会写得一般,因为它没看过你的标准)。
  • 少样本(Few-shot):给 AI 看几个优秀的试菜报告作为例子,让它模仿。这就像给实习生看几份满分试卷,告诉他:“照着这个格式和思路写。”

这篇论文的核心就是研究:给 AI 看什么样的“满分试卷”(例子),效果最好?

3. 实验设计:三种“满分试卷”来源

研究人员找了三种不同来源的试菜报告作为例子给 AI 看:

  1. 人类厨师写的:最专业,逻辑清晰,但可能比较贵(人工成本高)。
  2. 老式机器写的(SBST):像以前的自动化工具,覆盖面广(能尝到很多角落),但写得像天书,很难读。
  3. AI 自己写的:用 AI 生成的例子再教 AI。

还有一个关键问题:怎么挑例子?

  • 随机挑:像从题库里随便抓几个例子。
  • 智能检索:像用搜索引擎,找和当前这道菜(代码)最相似的例子。比如,如果现在要测“红烧肉”,就找以前测“红烧肉”或“炖肉”的例子,而不是找“清蒸鱼”的例子。

4. 主要发现(用大白话总结)

A. 例子从哪里来最重要?

  • 人类写的例子是王道:如果你给 AI 看人类写的优秀试菜报告,AI 写出来的报告最准确、覆盖最全面。就像给实习生看大师的手稿,他学得最快。
  • 老式机器写的例子也有奇效:虽然它们写得难懂,但如果你用它们来修补那些覆盖率很低的旧菜谱,效果反而出奇的好。因为它们能覆盖很多人类容易忽略的死角。

B. 怎么挑例子最重要?

  • “看人下菜碟”最有效:单纯随机挑例子效果一般。最好的方法是智能检索,即同时看“这道菜是做什么的(问题描述)”和“这道菜是怎么做的(代码结构)”,找最相似的例子给 AI 看。这就像教人做红烧肉,你给他看“红烧肉”的教程,而不是“炒青菜”的教程。

C. AI 写的报告能直接用吗?

  • 不能直接用,但可以“修”:AI 写的报告经常会有小毛病(比如少个标点、少个引用)。但是,这些毛病都很小,就像试菜报告里少写了一个“盐”字。
  • 自动修补很管用:研究人员写了一套简单的“自动修补规则”(比如自动补全缺少的引用),修补后,AI 写的报告通过率非常高(从不到 1% 提升到 80% 以上)。

5. 结论与启示

给程序员的建议(给餐厅老板):

  • 不要指望 AI 能完全取代人类写测试。
  • 最好的用法是“人机协作”:让 AI 基于人类写的高质量例子,去生成新的测试,专门用来填补那些人类没覆盖到的盲区。
  • 不要怕 AI 犯错:只要有一套简单的自动修补流程,AI 生成的测试不仅好用,而且读起来也很顺畅,不会给团队增加太多维护负担。

给研究者的建议:

  • 以前大家只关注 AI 写的代码“对不对”(能不能跑通),现在发现,“好不好读”、“方不方便维护” 同样重要。
  • 给 AI 提供最相关的例子(通过智能检索),比随便给几个例子要有效得多。

一句话总结

这篇论文告诉我们:教 AI 写代码测试,就像教徒弟做菜。给他看人类大师的菜谱(人类例子)效果最好;如果找不到大师菜谱,用智能搜索找最相似的菜谱(智能检索)也比瞎蒙强。虽然 AI 偶尔会写错字,但只要有个简单的“自动校对”环节,它就能成为帮你完善菜谱的得力助手。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →