中文EN
← Deep Research
深度研究 · 易读版

AI 找 bug 靠不靠谱?先看裁判是谁(易读版)

本文是易读版 · 查看深入版(完整论证与出处)→
TL;DR
AI 找 bug 的成绩单,取决于它在验证流水线里坐哪把椅子:当干活的(生成测试输入)、起草的(提议规则交独立机制筛)、还是当裁判的(直接判对错)。前两把椅子有真金白银——26 个漏洞、二十年 CVE、Meta 73% 采纳;第三把椅子几乎每次独立复查都缩水——0.38%、3%、20/20 全是误报。评估任何「AI 找 bug」方案,第一个问题永远是:裁判是谁?
证明完成率 88→90%Argus 消融:证明器 0/20 → GPT-5 裁判 20/20curl 真报率 <5% → 反超 15-16%AI 断言 99% 锚旧行为

本文是同名深入版的精简版。所有关键数字都经过独立核查,想看完整论证和出处请读深入版。

一个四十年的老问题,突然人人都在碰

软件测试有个老大难:程序跑出一个结果,谁来判定这个结果对不对?判定对错的那个东西,行话叫 oracle——裁判。写测试难,难的从来不是让程序跑起来,是写出"跑成什么样才算对"。2015 年一篇权威综述盘点了三十多年的研究,结论是:裁判的自动化是整个测试自动化里最没解决好的一环。

然后 AI 来了。AI 能写测试、写规则、写断言、报漏洞——看起来裁判问题要被大力出奇迹了。本文把软件世界的裁判摊成一张地图,一格一格对账:每格的裁判是谁?它会不会被忽悠?AI 进场后,成绩是真的吗?

先给结论的形状:AI 的成绩单严格取决于它在验证流水线里坐哪把椅子。它可以当干活的(生成测试输入)、当起草的(提议规则和规约,交给独立机制筛选)、或者当裁判(直接判对错)。前两把椅子,成绩有真金白银;第三把椅子,几乎每次独立复查都会缩水。

同一个 AI,三把椅子,三种成色 干活的(生成器)产测试输入 / fuzz 探针,判决全在机器闸挖出 26 个真漏洞 · 采纳率 73%增益有硬数字起草的(提议者)起草规则 / 规约,先过独立筛再上岗证明器把关后:误报 0/20真增益,筛完人工不省当裁判的直接判对错 / 分诊 / 打分独立复测:精度 0.38% · F1 3%复测后系统性缩水
示意:判据不是「用没用 AI」,是裁决权在谁手里——判决全在独立机制(左)到判决就是 AI 本身(右);数字详见正文

裁判最铁面的地方,AI 成绩最硬

数学证明。证明检查器不会被说服,错就是错。AI 证明器的成绩一年内冲到 88-90%(每道题允许多次尝试的口径),而且有个漂亮的细节:让它看着检查器的报错自己改,成绩从 88.1% 涨到 90.4%——裁判越铁面,AI 越能放开了试错。

崩溃探测。Google 让 AI 给开源项目写模糊测试的"探针",判定权完全在崩溃检测器手里:272 个项目覆盖率自动提升,并在被测了几十万小时的老项目里发现 26 个新漏洞——其中 OpenSSL 的一个漏洞按 Google 的判断可能已经藏了二十年,人写的探针就是够不着它。

大厂的测试工厂。Meta 让 AI 批量生成单元测试,但设了一路机器闸门:编译不过的扔掉、跑五次不稳定的扔掉、不增加覆盖的扔掉,最后 73% 的改进建议被工程师采纳进生产。后来更狠:先让 AI 往代码里注入人造 bug,再让 AI 写能抓住这些 bug 的测试——用"能不能杀死人造 bug"给试卷打分,这个闸门也是机器。

注意共同点:这些战绩里,AI 全程没当过裁判。判决来自证明检查器、崩溃、编译器、执行结果。AI 只是产能。

AI 一坐上裁判席,数字就开始缩水

反面同样清楚,而且不止一例:

还有一个机制性的坏消息:AI 写测试断言时,对齐的往往不是你眼前这份代码,而是它训练时见过的"这类代码通常怎么写"。一项研究改了代码再让 AI 现场生成测试,失败的测试里 99% 其实在验证旧行为。所以 AI 测试适合当回归闸(锁住现状别被改坏),不适合当正确性裁判(判断现状本来对不对)。

LLM 坐裁判席:声称 vs 独立复测 声称 / 旧口径 独立复测 漏洞检测 F1:旧基准 BigVul → 去污染 PrimeVul68.26%3.09%Semgrep 分诊一致率:头条 → 误报侧96%41%LLM 测试覆盖率:旧基准 → 未污染 ULT92.18%45.10%AI 断言工具 TOGA:原评测 → 修正评测漏洞后的精度声称 30 个独家 bug0.38%
示意:四组各自口径不同、不可互比,只看各组内的缩水方向(条长为示意;PrimeVul/ULT/TOGA 为独立学术复测,Semgrep 为同一博客的头条 vs 细则)

同一种 AI 产出,两种裁判,两种下场

2024-2026 年开源安全圈上演了一场天然对照实验。

同样是"AI 找到的安全问题":接到崩溃检测器上,产出是 26 个真漏洞和一个藏了二十年的 CVE;直接扔给人类维护者分诊,产出是灾难——curl 项目 2025 年收到的安全报告约 20% 是 AI 垃圾,真漏洞不到 5%,每份报告消耗七人团队里三四个人各半小时到三小时,2026 年初干脆关掉了运行七年的漏洞赏金。Linux 内核安全列表同期从每周两三份涨到每周十份,增量"全是 AI 垃圾"。

但故事有第二幕。2026 年,curl 恢复接收报告后确认率不降反升,回到并反超历史水平(15-16%),而且几乎每份报告都用了 AI;内核报告涨到每天 5-10 份、大多数是对的,新问题变成了海量重复,逼得 Torvalds 改了规矩:AI 发现的 bug 一律按公开处理,必须附上能跑的复现用例,最好带补丁——把举证责任推回提交方,要求交出机器能验证的东西。

这两幕合起来是全文的缩影:裁判是否铁面,决定同一种 AI 产出是资产还是负担;而人类裁判被淹不淹,取决于激励怎么设、工具哪一代。

curl 安全报告确认率:人类裁判格的两幕剧 2019-2024 · 赏金时代>15%2025 · AI slop 洪水(约 20% 是 slop)<5%2026-01 · 关闭七年赏金2026-04 · 重返后反超(几乎全用 AI)15-16%
示意:同一项目、同一人类裁判、同一确认率口径(真漏洞/全部安全提交,Stenberg 一手时间序列)——洪水受赏金激励与工具代际调制,不是恒久定律

也别把"铁面裁判"神化

三个诚实的限定,防止把结论用过头:

第一,裁判铁面,考题可以是错的。证明检查器只保证"证明推得出题目",不保证"题目写的是你想要的"。最流行的形式数学考卷被查出超过一半的题目题面和原意对不上;人类专家手写的形式规约也有 16-38% 含语义错误;让 LLM 把自然语言需求翻译成规约语言 TLA+,语义正确率只有 8.6%。还有模型学会在规约里塞一句"假设假为真",让任何实现都能通过验证——AI 时代的验证风险,正从"证明写错"上移到"题目出错"。

第二,AI 的增益要和强基线比,不能和空白比。一个不用 AI 的傻瓜变异工具,同台复测时反超了明星 AI 模糊测试工具;一个不用 AI 的数据库测试框架,自己就找了 196 个 bug。好几项已发表的"AI 增益",输给了"对照组太弱"。

第三,机器闸门是必要条件,不是充分条件。Uber 用 AI 修数据竞争,过了"重跑一千次不复现"闸门的修复,仍有一部分被人审拦下来判定不对。层层机器闸之上,人的终审暂时省不掉。

这篇文章的判断,怎么检验

十一个可检验主张,按证据从硬到软:

  1. 裁判铁面的格子,AI 增益有硬数字——26 个漏洞、二十年 CVE、证明完成率 88→90、Meta 73% 采纳,这些判决全部来自机器或维护者,不是 AI 自评。
  2. AI 坐裁判席,数字在独立复查中缩水——0.38%、3%、16.9%、20/20 误报,五组独立证据同一个方向。
  3. 风险上移到"出题层":验证器保证不了题目本身对——形式考卷半数错位、人写规约也错 16-38%、AI 写 TLA+ 语义只对 8.6%。
  4. AI 增益必须和强的非 AI 基线比——傻瓜工具反超明星 AI 工具的事已经发生。
  5. "多个 AI 互相检查"的独立性前提被实验拒绝(共同犯错是独立假设的 3.7 倍)——但三版本投票仍能把失效降到约三分之一,衰减不是归零。
  6. "杀人造 bug"闸门便宜好用且已工业化,但它的分数也会被数据污染抬高(约 10 个百分点),只是不像覆盖率那么容易刷满。
  7. AI 断言 99% 锚定的是训练里的旧行为;主动抓未知 bug 的成功率上限目前只有 16-30%。
  8. AI 当"起草者"增益真实,但筛完剩下的人工负担不消失——起草变便宜了,裁决一分没省。
  9. 人类裁判被 AI 报告淹没是真的,但不均匀、可逆转——curl 关赏金后又反超,内核从"全是垃圾"到"大多正确但重复"。
  10. 并发 bug 这一格 AI 至今缺席,原因是结构性的:最大的 AI 模糊测试管线压根没接上竞争检测器。
  11. "AI 代码搞坏生产环境"两个方向的说法都还没过独立复查——负面叙事(代码翻炒率上升)同样被复测撞了。

值得盯什么:AI 模糊测试管线接上并发检测器后能不能复制战绩;内核"必须附补丁"新规能不能驯服重复洪水;下一个宣称"AI 当裁判"的产品,敢不敢公布误报侧的独立复测数字。

最要紧的几件事

  1. 评估任何"AI 找 bug/AI 审核"方案,第一个问题永远是:裁判是谁?判决来自编译器、测试执行、崩溃、证明器,数字可信;判决来自 AI 自己或它的近亲,先打两折再看。
  2. 给 AI 产能配独立闸门,而不是配另一个 AI。编译、执行、覆盖、杀人造 bug、重跑一千次——这些闸门便宜、机械、不可说服,是 AI 时代真正的杠杆。
  3. AI 写的测试当回归保险用,别当正确性证书用。它锁得住现状,判不了现状对不对。
  4. 警惕拿"覆盖率"和"一致率"当卖点的评测:覆盖率易刷满,一致率的大头可能来自容易的那一半任务。要看误报侧、看杀伤力、看独立复测。
  5. 如果你在被 AI 报告淹没的那一侧(维护者、评审、安全团队),学内核的解法:把举证责任推回去,要求机器可验证的产物——能跑的复现、能过测试的补丁。
  6. 软件是幸运的:它有一整柜不可说服的机械裁判。把 AI 的产能接到它们身上,而不是让 AI 顶替它们。