直接答案
先给代理行为契约、现有测试约定和明确的测试边界,再要求生成代码。每个新测试都应证明它保护的失败场景,避免绑定私有实现,并能在仓库真实测试命令下独立运行;回归测试还要在未修复版本上先失败。
关键结论
- 根据可观察边界选择测试层级,不追求默认“全覆盖”。
- 回归测试必须先证明能检测旧故障。
- 检查 fixture、mock、时间、随机数和共享状态造成的隐性不稳定。
- 行覆盖率用于定位未执行代码,不能证明断言有意义。
关键事实
这篇内容解决什么问题
建立受控的 AI 单元测试、集成测试和回归测试生成流程。
核验范围与限制
- 证据类型
- 官方文档本地验证
- 核验范围
- 覆盖行为选择、测试层级、生成、失败证明、稳定性检查和测试套件接入。
- 限制与失效条件
- - 流程不能推断缺失的业务规则,预期行为必须由维护者提供。
- - 测试发现、fixture 和隔离规则需按仓库使用的框架版本核对。
选择一个需要保护的可观察行为
从调用者能观察到的输入、状态变化、输出或副作用开始,写清正常情况、边界、非法输入和错误行为。如果预期仍有争议,应先解决契约再生成断言。
要求代理先找到邻近测试并解释其 fixture、命名、辅助函数和目录约定。现有测试结构也是仓库契约的一部分。
选择最小但可信的测试层级
稳定且确定的函数边界优先使用单元测试,组件契约使用集成测试,只有无法在更低层验证的用户路径才使用端到端测试。默认叠加每一层会增加维护成本,却未必增加新信号。
- 优先验证公共接口和外部结果。
- 复用维护中的 fixture,而不是建立平行测试框架。
- mock 外部边界,不要 mock 被测行为本身。
- 测试路径不得依赖生产密钥或真实生产服务。
小批量生成带明确断言的测试
先按行为生成少量测试,审查名称与断言后再扩展。每个测试都应有明确的失败理由;只有序列化结果本身是稳定契约时才使用快照测试。
代理新增的 fixture 或 mock 都需要解释。隐藏的全局 setup 可能绕过测试声称覆盖的真实路径。
证明回归测试确实能够捕获故障
针对 Bug 修复,应在故障版本运行新测试,或临时撤销目标修正,确认断言检测到预期行为;随后恢复实现并验证通过,同时记录两次命令和结果。
如果测试在修改前后都通过,它仍可能有价值,但不能证明它保护了本次回归。
执行隔离性与质量关卡
重复运行聚焦测试,再与相关测试和标准套件分片一起运行。检查顺序、时钟、随机数、临时文件、网络调用与清理,并确认失败信息能够指向目标行为。
- 01聚焦运行用文档规定的 runner 单独执行新测试。
- 02失败证明确认目标行为缺失时断言会失败。
- 03邻近运行在框架允许时改变相关测试顺序。
- 04套件关卡运行变更包必须通过的仓库检查。
像生产代码一样审查生成测试
保持测试意图清晰,合并重复 setup,并通过正常代码审查指定所有权。行为改变时应同步审查契约和测试,不能让代理静默改写预期结果去迎合回归。
官方来源与核验范围
本文以公开官方文档为事实依据;命令和配置可能随客户端版本变化,执行前请同时核对对应来源。
查看技术核验方法