跳到主要内容

AI 功能的 Bug Bash:分布采样,而非猎捕缺陷

· 阅读需 12 分钟
Tian Pan
Software Engineer

经典的 Bug Bash 是一种为确定性软件量身定制的确定性仪式。十名工程师挤在一个 Slack 频道里两小时,对照着黄金路径流程清单疯狂测试,然后提交带有清晰复现步骤的工单:“点击 X,看到 Y,预期 Z。” 这套方法之所以奏效,是因为被测系统是可复现的——相同的输入,相同的输出,相同的 Bug,次次如此。

如果针对 AI 功能运行完全相同的仪式,你最终会得到 200 张工单,其中 180 张会因为“符合预期的随机波动”而被关闭,同时还会漏掉那 20 张预示着真正的群体性回归(cohort regression)的工单。这种形式不仅陈旧,而且完全错位了。针对基于 LLM 的功能进行 Bug Bash 并不是一场捕捉缺陷的会议。它是一场针对概率分布的抽样练习,如果团队像运行确定性测试那样运行它,就是在收集噪声并将其视为信号。

这篇文章讨论的是如何为随机系统重新设计 Bug Bash——包括流程形式、参与者、分级准则以及什么才算“完成”等方面需要做出哪些改变。

为什么沿用的模式会失效

传统的 Bug Bash 植入了三个假设,而 AI 功能打破了所有这些假设。

第一个假设是可复现性。在经典的 QA 中,“我点击了按钮,它崩溃了”就是一个完整的报告。但在 AI 功能中,同样的提示词(prompt)在连续五次运行中可能会返回五个不同的答案,其中一个可能错得离谱。单次观察只是统计噪声。没有复现次数的 Bug 报告不是真正的报告——它只是一个轶事。

第二个假设是故障模式是结构性的。按钮不渲染、表单无法提交、API 返回 500 错误。这些都是类别故障:要么存在,要么不存在。而 AI 功能的失效是沿着质量梯度分布的。按钮渲染了,答案只是对特定行业的细分用户来说有细微错误。或者答案是正确的,但其语气不对,以至于损害了信任。二元的“坏了/没坏”标准无法代表这些故障,因此它们要么被归类为“轻微”,要么根本不被记录。

第三个假设是工程师能识别故障。在确定性系统中,500 错误对每个人来说都一样。但在领域专业化的 AI 功能中——例如法律合同审查、医疗摘要生成、针对特定技术栈的代码重构——真正关键的故障是领域准确性故障。阅读临床笔记摘要的工程师无法判断“术后第三天”是否被错误地分类为“术后第二天”。但律师可以。这些故障对于你邀请的人来说是不可见的。

将这三个因素叠加在一起,这种沿用的形式就变得不仅没用,反而有害。它会产生排山倒海般不可复现、分类错误、流于表面的报告,淹没那些真正预示着可利用模式的少数关键信号。更糟糕的是,它给了团队一种虚假的信心:“我们做过 Bug Bash 了,发现了问题,发布吧。”

重塑目标:从发现缺陷到分布映射

必须转变的观念是:AI 功能的 Bug Bash 不是在寻找缺陷,而是在为一个注定会出现故障的系统绘制故障分布图。你不是在问“它坏了吗?”,而是在问“它在哪里失效、频率如何、以及针对哪一类用户?”

这种重塑改变了下游的一切。你不再希望每个参与者都反复测试同一个黄金路径。你希望他们分散在输入空间中——不同的用户群体、不同的任务类型、以及探测模型能力不同维度的不同输入。每一次会话都是一次抽样过程;每一张工单都是一个样本,而不是一个定论。

具体来说,在 Bug Bash 开始之前,组织者应该预先定义群体网格(cohort grid):垂直行业、账户层级、语言、任务类型、新手与高级用户、短输入与长输入。每个参与者负责一个单元格。如果你有 8 个人和 4 个群体,每 2 个人负责一个群体的抽样。如果你有 12 个人和 6 个群体,每个单元格 2 人,并进行刻意的重叠,以便你可以对比同一分片下的独立样本。

这不是微小的重组。它改变了你邀请的对象、你向他们简述的内容、你要求他们提交的内容,以及你随后的分级处理方式。

对抗性输入优于黄金路径输入

另一个转变是对抗性的。传统的 Bug Bash 演练的是理想路径(happy path)——即产品经理希望在周五演示的流程。对于确定性系统,这是合理的;如果理想路径可行,特殊的输入大概率也行,因为底层逻辑是一样的。

对于 AI 来说,理想路径几乎无法提供任何信息。模型在那些看起来像产品演示的输入上进行了过度训练。能够区分功能是鲁棒还是脆弱的,是那些演示中永远不会出现的提示词:拼写错误、混合语言、半截句子、刻意误导的框架、提示词注入尝试、与系统提示词冲突的输入、处于 Token 限制边界的输入,以及用户实际生产环境中混乱的格式,而非评估套件中使用的合成干净格式。

红队测试(Red-teaming)的研究已经印证了这一点。手动对抗性测试擅长发现自动化套件遗漏的细微边缘情况,尤其是故障在多轮中逐渐积累的多轮对话攻击。最近的研究表明,通过角色扮演伪装、甚至在基准数据集中从未出现过的押韵诗行混淆等技术,攻击成功率已攀升至 80% 以上。你的 Bug Bash 需要引导出这种能量。

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates