你的 AI 测试测的不是代码,而是 AI 的盲区
来源:dev.to — 2026-09-04
📋 概述
作者戳破「AI 也写测试」话术背后的逻辑漏洞:当同一个模型既写实现又写测试,你并没有增加一个独立的第二道检查,而是让一个评审者给自己的作业打分。模型先对函数形成一套隐式假设,再用同一套假设写测试,于是覆盖率的绿色不是验证了行为,而是验证了那套共享的假设。本质问题不是测试,而是穿着绿色勾勾外衣的「相关性错误」——一个评审者检查自己的作业两遍,只会把自己已经漏掉两次的错再漏一遍。
🔑 核心要点
- 盲区循环:模型先推理出对函数的假设(输入形态、时区处理、何为「空」),再用同一套假设写实现和测试——套件全绿,假设照样是错的
- 覆盖率的绿色只是告诉你代码路径被走过,不是被正确的输入走过;命中每行仍可能从未送过 null、空数组、重复 key 或类型边界值
- 修复不是「别用 AI 写测试」,而是把测试的两份工作分开:定义正确行为的断言交给理解规格、独立于实现方式的人类;生成数量与多样性(mock 数据、随机输入、边界组合)恰恰是 AI 擅长且不依赖它写过实现的
- 人类评审最该花时间的边界条件是零、负、空、重复、畸形、并发——无论人类还是 AI 的实现都最先在这里翻车
- 这不是测试问题,而是戴着绿色勾勾的相关性错误问题;两个独立评审者因彼此独立而能抓到不同的错
- 评论区补充了最便宜的一分钟防线:写完保护逻辑后故意弄坏它,看测试有没有变红——一个从没被看着失败的测试,无论是谁写的,都不是证据
💡 金句
一个评审者把自己的作业检查两遍,只会把同一些已经漏掉的错误再漏两遍。
👍 0
👎 0
← 返回 dev.to 首页