实战:让 CC 补测试
补测试不是追求覆盖率数字,而是证明本次修改的关键行为不会坏。要先让 CC 找到测试入口、相关用例和最小断言,再补低风险测试。
先让 CC 找测试风格
补测试之前先看项目已有测试。不要上来就让 CC 发明一套新测试框架。
/plan 请先只读分析当前项目的测试方式,不要新增测试。 请告诉我: 1. 项目使用什么测试框架。 2. 现有测试文件放在哪里。 3. 命名风格和断言风格是什么。 4. 本次任务最应该补哪类测试。 5. 如果项目没有测试,建议最小验证方式是什么。
什么时候需要补测试
- 修复了一个曾经出现过的 Bug。
- 改了核心业务逻辑。
- 改了接口输入输出。
- 改了权限、金额、状态流转、数据处理。
- 重构了原有逻辑,但承诺行为不变。
优先补这些测试:
| 修改类型 | 优先测试 |
|---|---|
| Bug 修复 | 回归测试,证明旧问题不会再出现 |
| 接口逻辑 | 正常输入、异常输入、兼容性 |
| 权限判断 | 有权限、无权限、边界角色 |
| 数据处理 | 空值、重复值、极端值 |
| 重构 | 行为不变测试 |
补测试前先判断测试价值:
| 问题 | 如果答案是“是” |
|---|---|
| 这个行为以后容易被改坏吗 | 值得补测试 |
| 这个 Bug 可能复发吗 | 值得补回归测试 |
| 这个逻辑影响数据、权限或金额吗 | 优先补测试 |
| 这个测试只是在测实现细节吗 | 先不要补 |
| 项目完全没有测试基础吗 | 先做人工验收或 smoke check |
什么时候不强求测试
- 只是文案修改。
- 只是 README 或教程内容修改。
- 项目本身没有测试基础,强行引入成本很高。
- 一次低风险样式微调,截图和人工验收更合适。
确认后补测试
可以按现有测试风格补充最小必要测试。 要求: 1. 只覆盖本次修改相关行为。 2. 不要为了测试重构业务代码。 3. 不要引入新测试框架。 4. 运行相关测试并解释结果。 5. 如果测试无法运行,请说明原因和人工验收方法。
让 CC 找最小断言
测试不是越多越好,关键是断言要对。
请先设计测试断言,不要写代码。 要求: 1. 本次修改最关键的行为是什么。 2. 哪个断言能证明它正确。 3. 哪个断言能证明 Bug 不会复现。 4. 哪些断言属于实现细节,不建议测试。 5. 最小测试用例数量是多少。
测试命名也要跟项目一致
请先观察现有测试命名和描述风格。 要求: 1. 测试文件名遵循项目已有风格。 2. 用例描述和现有项目一致。 3. 不为了新增一个测试引入新目录规范。 4. 如果没有明确风格,请选择最简单、最容易理解的命名。
测试应该覆盖什么
不要让 CC 为了好看而补无意义测试。测试要证明关键行为。
- 正常路径:用户按预期输入时结果正确。
- 错误路径:输入不合法时有合理处理。
- 边界条件:空值、重复值、极限值、权限不足。
- 回归场景:这次修复的 Bug 不会再出现。
运行测试后怎么看
请解释测试结果。 要求: 1. 哪些测试通过。 2. 哪些测试失败。 3. 失败是否由本次修改引入。 4. 是否存在历史失败。 5. 是否需要最小修复。 6. 不要因为历史失败扩大本次任务。
让 CC 说明测试价值
请解释刚才新增的测试。 要求: 1. 每个测试覆盖什么行为。 2. 为什么这个行为和本次修改相关。 3. 哪些风险仍然没有覆盖。 4. 测试是否会因为实现细节变化而过于脆弱。 5. 是否有更小的测试方案。
如果项目没有测试
当前项目似乎没有现成测试体系。 请不要直接引入新框架。 请给出替代验收方案: 1. 可以运行哪些已有检查。 2. 可以做哪些手动验证。 3. 如果未来要补测试,最小引入方案是什么。 4. 本次任务是否值得现在引入测试框架。
常见跑偏
- 为了补测试而重构业务代码。
- 引入新测试框架,但项目已有测试体系。
- 只测实现细节,不测用户行为。
- 测试写得一定通过,但不能证明功能正确。
- 没运行测试就说“已补充”。
测试失败时怎么收口
新增测试失败了,请先不要扩大修改。 请判断: 1. 是测试写错,还是业务代码有问题。 2. 失败是否和本次修改直接相关。 3. 最小修复应该改测试还是改代码。 4. 是否暴露了历史问题。 5. 在我确认前不要重构测试体系。
什么情况下先不补测试
有些项目确实没有测试基础。此时不要为了“看起来专业”强行上框架。
可以先做:
- 记录人工验收步骤。
- 补一个最小 smoke check。
- 在 README 或交接总结里写清楚未覆盖风险。
- 把“未来补测试”拆成单独任务。
补测试收尾报告
请总结这次补测试。 请说明: 1. 新增或修改了哪些测试。 2. 每个测试覆盖什么行为。 3. 跑了哪些测试命令。 4. 是否有未覆盖风险。 5. 是否建议进入 /code-review。
验收结果
- 测试风格和项目一致。
- 只覆盖本次关键行为。
- 测试结果被 CC 解释清楚。
- 没有为了测试扩大任务范围。
- 如果无法补测试,也有明确人工验收和风险说明。