跳转到主要内容

实践指南

用 AI 补测试:从「生成一堆用例」到「守住关键路径」

说明 AI 辅助写测试的正确目标、用例分层、不稳定测试防范,以及如何把测试要求写进 Skill。

RuleHub 编辑组3 分钟阅读
测试单元测试AI 编程质量

测试不是覆盖率游戏

让 AI「给这个文件补满测试」常得到:大量断言实现细节、脆弱快照、以及并不验证业务规则的用例。更好的目标是:为关键路径打桩锚点,让后续 AI 改动有自动刹车。

先定锚点,再谈数量

每个模块先回答:

  • 若这段逻辑错了,谁会受伤?(用户、资金、数据、权限)
  • 最小可自动验证的行为是什么?

优先写这些,而不是先追求 90% 行覆盖率。

推荐分层

纯函数 / 工具

适合单测,输入输出清晰,AI 表现最好。

API / 鉴权

测授权失败、校验失败、成功路径;可结合 安全清单

UI

优先测可访问名、关键交互;少测 class 名字符串。组件脚手架约定见 前端 Skill 模板

与 AI 协作的提示要点

明确告诉模型:

  • 使用项目既有测试框架与目录约定
  • 禁止为了通过而改生产代码逻辑(除非任务是修 bug)
  • 断言行为与契约,不断言临时实现细节
  • 列出未覆盖的风险供人工决定

把以上写成 add-tests Skill 的步骤与反模式,效果远好于临时 Prompt。

防范不稳定测试

AI 常见坑:

  • 依赖真实网络与时间
  • 测试顺序依赖
  • 随机数未固定种子
  • 过长 E2E 充当单元测试

要求:外部依赖可 mock;时间可注入;E2E 只保留冒烟级。

回归策略

当 AI 大范围重构时:

1. 先跑锚点测试

2. 再接受重构 diff

3. 若锚点不足,先补测试再重构(红-绿-重构仍适用)

这与 技术债原则 中的「测试锚点」一致。

小结

AI 写测试的价值,是提高「改得动、回得滚」的信心,不是堆文件数。锚点清晰、分层合理、反模式写进 Skill,测试才会成为加速器而非噪音。

下一步:为你们最怕改坏的一个模块补 2~3 个锚点用例,并登记到团队 Skill。

本文由 RuleHub 编辑组 撰写并发布于 RuleHub 洞察专栏。转载请注明出处并链接至原文。

有建议或纠错?请访问 联系我们