An Empirical Study of Gemini 3 for Detecting Natural Language Test Smells in Manual Test Cases
这项实证研究表明,通过基于提示词的全测试用例分析策略,大型语言模型 Gemini 3-Pro-Preview 在检测和解释手工测试用例中的自然语言测试异味方面,显著优于以往的小型语言模型,从而凸显了在手工测试中对自动化质量支持的迫切需求。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
大局观:名为“食谱”的问题
想象一下,你正试图烤一个蛋糕,但得到的食谱写得非常混乱。它上面写着:“加入一些面粉,”或者“搅拌到感觉合适为止,”或者“做这个,然后做那个,还要检查是否好了。”
如果你和你的朋友都尝试遵循这个食谱,你们可能会做出两个完全不同的蛋糕。一个可能很干,另一个可能烤焦了。在软件世界中,这被称为人工测试(Manual Testing)。人类阅读书面指令(就像食谱一样)来检查计算机程序是否运行正确。
问题在于,这些“食谱”(人工测试用例)通常带有**“测试异味”(Test Smells)**。就像一个有异味的房子可能意味着水管漏水或地毯发霉一样,一个糟糕的测试食谱具有隐藏的质量问题,使其难以遵循、不可靠或令人困惑。
什么是“测试异味”?
研究人员识别出了这些测试食谱中七种特定类型的“坏味道”。把它们想象成常见的烹饪错误:
- 模糊测试(Ambiguous Test): 食谱说:“加入一撮盐。”多少算“一撮”?一个人加了一点,另一个人加了一把。结果是不一致的。
- 条件测试(Conditional Test): 食谱说:“如果烤箱很热,烤10分钟;否则,烤20分钟。”但它没有告诉你要如何检查烤箱是否热。厨师会对该走哪条路径感到困惑。
- 急躁动作(Eager Action): 食谱说:“切洋葱,炒洋葱,然后加入香料。”这是把三个不同的步骤挤在了一个句子中。如果蛋糕失败了,你不知道是哪个步骤出了问题。
- 错位动作(Misplaced Action): 食谱说:“检查蛋糕是否呈金黄色,”但把它写成了一个要“做”的指令,而不是要“观察”的内容。这就像告诉厨师“检查烤箱”,而他们应该是在“检查蛋糕”。
- 错位前提条件(Misplaced Precondition): 食谱说:“确保厨房是干净的,”但把它列为烘焙过程中的一个步骤,而不是在开始之前要遵守的规则。
- 错位验证(Misplaced Verification): 食谱说:“打开炉灶并确保它很热,”但把“确保”部分写成了一个动作步骤。它混淆了“做”与“检查”。
- 未验证动作(Unverified Action): 食谱说:“把蛋糕放入烤箱,”但从未说明之后要观察什么来确认是否成功。厨师只是等待并祈祷。
旧方法 vs 新方法
以前,研究人员尝试使用僵化的规则(比如只查找特定单词的拼写检查器)或小型 AI 模型(比如一个只知道一些规则但会被长篇故事搞糊涂的初级助手)来寻找这些错误。
这些旧方法表现不佳,因为它们看不见“大局”。它们只能逐句查看,却忽略了这一句与前后句之间的联系。
新实验:超级编辑
本文作者希望看看一个大语言模型(LLM)——具体来说是一个非常聪明的 AI,名为 Gemini 3——能否充当一名超级编辑。
与其孤立地看每一句话,他们要求 AI 同时阅读整个测试用例(整份食谱)。这让 AI 能够理解流程:“啊,这一步说‘打开炉灶’,下一步说‘检查是否热’。我明白其中的联系了。”
他们给 AI 提供了一套特定的指令(“提示词”),定义了这七种“异味”,并要求它:
- 阅读整个测试用例。
- 识别哪些步骤存在“异味”。
- 准确解释原因(例如:“这一步很模糊,因为它使用了‘一些’这个词,却没有给出具体的数字”)。
他们的发现是什么?
研究人员在来自 Ubuntu 操作系统(一个流行的 Linux 版本)的 100 个真实世界测试食谱上进行了测试。结果如下:
- 异味无处不在: 他们发现测试异味非常普遍。平均而言,几乎每一个测试步骤都至少带有一种“异味”。这就像是在一本书的几乎每一句话中都能发现错别字。
- AI 胜出: “超级编辑”(Gemini 3)比旧的小型 AI 模型更能有效地发现这些错误。与人类专家相比,它的正确识别率达到了约 91% 到 92%。
- 它会解释其工作原理: 不同于那些只显示“错误”的旧工具,AI 提供了简短、清晰的原因。它指出了导致步骤困惑的具体词汇,这有助于人类快速修复食谱。
- 对比: 与使用严格规则的工具(Manual Test Sensei)或另一个智能 AI(ChatGPT 5.2)相比,Gemini 3 通常最为准确,尽管其他工具也捕捉到了 Gemini 错过的一些独特错误。
核心结论
论文得出结论,使用智能、现代的 AI 来阅读和评判人工测试指令是一个强大的想法。这就像雇佣了一位高水平的编辑,他能读完整个故事,发现困惑之处,并告诉你如何精准修复它们。
这并不意味着人类会失业;相反,这意味着人类可以使用这种 AI 作为助手,使他们的测试指令更加清晰、一致且不易出错。这项研究证明了这些“异味”是软件测试中真实且广泛存在的问题,而 AI 是帮助清理这些问题的有力工具。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。