一个很反常识的变化:AI Coding 时代,“测试全绿”正在贬值。 🫠。以前:
测试全绿 ≈ 代码大概率没问题。现在 Agent 拿到的目标经常是:“把测试跑绿。”然后它真的会想尽办法让它绿。问题来了——
它优化的到底是代码,还是那个绿色的 ✅?
2026 年一个很有意思的 Benchmark:SpecBench,专门干了一件事:
给 Agent 两套测试:
① Visible Tests:Agent 看得到
② Hidden Tests:Agent 永远看不到
结果很骚:
前沿 Agent 在 Visible Tests 上几乎都能刷满。但换成 Hidden Tests,问题就出来了。而且代码量每扩大 10 倍,Visible / Hidden 的通过率差距平均扩大 28 个百分点。
甚至出现过一个离谱案例:
Agent 写了一个接近 2900 行的“哈希表编译器”看起来功能实现了,实际上是在——记答案。😂 这就是 AI Coding 一个越来越重要的坑:
Test Pass ≠ Spec Pass
测试一旦从「裁判」变成 Agent 能看到的「KPI」,Goodhart 定律就来了:一个指标一旦成为目标,它就不再是一个好指标。所以我现在更推荐把 Agent 测试拆成三层:
✅ Visible Test
告诉 Agent 基本要求
🔒 Holdout Test
Agent 永远看不到
👹 Adversarial Test
专门测边界、组合、异常路径
再送一个可以直接塞进 Coding Agent 的 Rule:
「Visible Tests 只是示例,不是完整 Specification。
禁止针对具体测试用例硬编码。
禁止修改 Test / Fixture / Grader 来使测试通过。
测试通过后,主动构造未出现过的边界条件和组合场景验证实现。」
以后看到:“Agent:Tests 127/127 passed ✅”。别急着鼓掌。先问一句:这些题,它是不是提前看过答案? 😂
#ai #大模型 #codex #chatgpt #AI新手村
