Skip to content

AI 写框架用例·场景与阶段

让系统性测试从「太贵没人写」变可落地——但不是所有东西都值得为它买单

速查

  • 是什么:AI 在懂需求/功能/白盒前提下,按五层 + 提示词工作流(plan→评审→TDD→自测报告)写框架测试代码(Vitest/Cypress/Playwright),进 git 当回归门禁
  • 就该用它的场景:系统性覆盖(核心/安全类)、回归网、TDD 新功能、重构保行为、bug fail 用例、CI 长期门禁
  • 适合阶段:开发全程(从 plan 到 CI 都在)
  • 核心观点:AI 让系统性测试从「太贵没人写」变可落地;但不是所有东西都值得为它买单
  • AI 专属陷阱:AI 会写「看着覆盖、实则不验证」的假绿用例 → 反向验证 + 人评审粒度是防线

AI 写用例改变了什么

精确到 case 的五层测试、副作用分支逐个列、安全类 100%、反向验证——这套纪律一直都对,问题从来不是「该不该做」,而是「太贵,没人有时间写」。于是团队长期欠着技术债,覆盖率虚低,回归靠人肉。

AI 把这件事的成本打下来了。在它懂需求、懂功能、能读白盒代码的前提下,按提示词工作流,它能把系统化用例真正写出来:plan 阶段精确到 case,TDD 先 fail 再实现,逐层推进,最后生成自测报告。「系统性测试」从奢侈品变成日用品——这是 AI 写用例真正的价值。

但我要立刻泼一盆冷水:这不意味着所有东西都该让 AI 写成框架用例。 下面先说哪些场景就该用它,再说为什么不能滥用、以及怎么防 AI 写假绿。

就该用 AI 写框架用例的场景

系统性覆盖:核心与安全类

核心业务链路、安全类代码(鉴权/数据权限/token/登录限制),需要的是严谨、不漏分支的覆盖。安全类要 100%/100%,业务核心 ≥85%/≥75%。这种「把每个分支、每个副作用、每个反例都列到」的活,正是 AI + 五层 + 精确到 case 工作流最擅长的——人来写又对又全但太累,AI 来写能做到同样的严谨度。

回归网:每个 bug 的永久守护

所有缺陷的复现用例永久进套件构成回归网。让 AI 把每个修过的 bug 写成 fail-first 用例(先复现 fail,修完转绿),CI 天天跑,同类问题再出现自测阶段就拦掉。回归网的价值是「长期反复跑」,正好是框架 spec 的主场。

TDD 新功能:先 fail 再实现

新功能从零开始,让 AI 走 TDD——每个 case 先写 fail 测试、跑确认 fail、再写实现、再跑确认 pass。提示词里显式写死这个顺序(提示词 2 的铁律),否则 AI 默认会先写实现再补「正好能过」的测试,等于没 TDD。

重构保行为:复用既有用例当安全网

行为不变的代码调整,靠既有各层用例验证「改完行为没变」。让 AI 在重构前确认相关用例齐全、绿着,重构后重跑——一旦变红就说明行为被改动了。plan 里标注新增/调整的 case 数。

bug fail 用例:配合 bug-fail-first

跟回归网配套。修 bug 必须先有复现的 fail 用例,让 AI 选合适的层(优先低层 L1>L2>L4>L5,能 L1 别 L5)写复现用例,确认 fail,再修,再确认 pass。该用例永久保留,禁删禁 skip。

CI 长期门禁:确定、可重复、卡红

CI 需要的是确定、可重复、能一键跑成百上千次的回归网——这是框架 spec 的独占地盘(MCP 做不到,见 MCP 边界)。让 AI 把核心用例写成 spec 进 CI,不达标就卡红,挡住覆盖率回退。

各阶段怎么用

阶段AI 写用例做什么对应提示词
plan精确到 case 写测试计划(五层、副作用分支、反例)提示词 1 + 评审提示词 6
编码TDD 逐层实现(先 fail 再实现)提示词 2
自测跑五层 + 覆盖率 + 反向验证 + 生成报告提示词 3
修 bugfail-first 复现用例提示词 5
CI 门禁spec 进回归网,覆盖率卡红

为什么不是所有东西都值得为它买单

「成本降了」不等于「无脑全上」。框架用例有它的维护成本——spec 要跟着代码改,写多了反而拖累迭代。我的取舍:

  • 值得:长期反复跑的(回归网)、严谨度要求高的(核心/安全类)、稳定可复现的。这些一次写好,CI 天天回本。
  • 不值得:一次性验证(→ 用 MCP 说句话就跑,别写 spec)、靠人判断的(→ 手工,框架断言不出「好不好用」)、还在频繁改的早期功能(spec 写完就过时,纯浪费)。

一句话:框架用例是给「值得长期守」的东西用的。 临时的、主观的、易变的,硬写成 spec 是给自己挖维护坑。这正是三方式平权的意义——AI 写用例有它的最优场景,但它治不了探索性,也不该抢临时验证的活。

AI 专属防线:揪出假绿用例

这是用 AI 写用例最大的陷阱,必须单独拎出来讲:AI 很擅长写「看着覆盖、实则不验证」的假绿用例。

典型假绿长这样:

  • mount 了组件,但根本没断言渲染结果,覆盖率却涨了。
  • 调了接口只 expect(res.status).toBe(200),没验业务语义(数据对不对、副作用生没生效)。
  • expect(true).toBe(true) 式的凑数,或断言写得永远成立。

这些用例覆盖率好看、CI 全绿,实则一个 bug 都拦不住。两道防线缺一不可:

  1. 反向验证(机器防线):故意往被测逻辑打一个 bug → 对应用例必须 fail;故意删一个安全类用例 → 覆盖率必须掉。纹丝不动就是假绿。 自测报告里必须有反向验证记录(安全类建议 ≥2 条)。
  2. 人评审粒度(人的防线):PR review 时人去看「这个用例到底验了什么」——是不是只测了 200 响应、漏了业务语义?改了接口签名测试动没动?这道关 AI 自己把不了,必须人来。

别让 AI 自己验自己

AI 写的用例,反向验证可以让 AI 执行(打 bug → 跑 → 看 fail),但「这个用例够不够、有没有假绿」的最终判断必须是人。让 AI 自己声明「我的用例很全很好」,等于没有防线。准入审查(QA 抽查复现)和 PR review(人看粒度)就是为这道防线存在的。

下一步