Article

AI Vibe Coding 06:测试协同(自动生成回归测试与边界样例)

路线阶段:AI Vibe Coding 第 6 章。
本章目标:让 AI 成为测试生产力,而不是只写业务代码。

学习目标

完成本章后,你应该能做到:

  1. 让 AI 按改动范围自动补测试。
  2. 系统化生成边界条件与异常路径样例。
  3. 将 AI 测试产出接入 CI 回归门禁。
  4. 用测试质量指标评估 AI 协同效果。

为什么测试是 Vibe Coding 的关键

如果 AI 只写功能不写测试,风险会快速累计:

  1. 变更速度越快,回归缺陷越多。
  2. 评审成本升高,发布变慢。
  3. 线上问题难复现,修复链路拉长。

正确做法:功能任务与测试任务同步生成、同步验收。

测试任务模板

[目标]
为“结算页升级路径”新增测试覆盖

[改动输入]
- 变更文件列表
- 关键分支逻辑
- 预期行为说明

[测试范围]
1. 正常路径
2. 边界路径
3. 异常路径
4. 回归保护

[输出]
- 测试文件
- 测试数据夹具
- 覆盖说明

AI 生成测试的四层结构

  1. Contract Tests:接口输入输出契约。
  2. Scenario Tests:业务场景路径。
  3. Boundary Tests:边界值与极端值。
  4. Regression Tests:历史缺陷复现保护。

示例:奖励发放幂等测试

[Test]
public void RewardGrant_Should_Be_Idempotent_By_RequestId()
{
    var svc = BuildRewardService();

    var req = new RewardRequest
    {
        PlayerId = "p1",
        RequestId = "req-001",
        RewardKey = "daily_signin"
    };

    var first = svc.TryGrant(req);
    var second = svc.TryGrant(req);

    Assert.IsTrue(first.Success);
    Assert.IsFalse(second.Success);
    Assert.AreEqual("duplicate_request", second.Reason);
}

边界样例生成策略

给 AI 明确边界维度:

  1. 数值边界:0 / 1 / max / overflow
  2. 时间边界:开始前、开始瞬间、结束瞬间、结束后
  3. 状态边界:未登录、已登录、封禁、灰度用户
  4. 并发边界:重复请求、乱序请求、超时重试

异常路径样例

要求 AI 默认补齐:

  1. 空输入
  2. 缺字段
  3. 外部依赖失败
  4. 重试与回退

测试夹具治理

public static class TestFixtures
{
    public static StageResult BuildStageResult(bool win, int score)
    {
        return new StageResult
        {
            Win = win,
            Score = score,
            KillCount = 20,
            DurationSec = 300
        };
    }
}

统一夹具可以减少重复样板代码,提高可维护性。

AI 测试输出验收标准

  1. 新增测试能在本地与 CI 稳定通过。
  2. 失败信息可定位具体业务分支。
  3. 测试命名表达行为,不写实现细节。
  4. 不引入随机与时间不确定性。

把 AI 测试接入 CI

建议门禁:

  1. 变更涉及高风险目录必须新增测试。
  2. 新增逻辑分支若无测试,PR 阻断。
  3. 历史高频缺陷路径必须有回归测试。

测试质量指标

每周追踪:

  1. AI 生成测试被保留率
  2. 测试误报率(Flaky)
  3. 覆盖关键模块比例
  4. 线上缺陷被测试提前拦截率

与现有流程联动

  1. 任务契约:每个功能任务附测试子任务。
  2. 代码评审:AI 先审测试缺口。
  3. 发布门禁:关键模块无测试不得发版。
  4. 技术债治理:优先补“无测试高风险模块”。

常见坑

坑 1:只追求覆盖率数字

覆盖率高不代表覆盖关键风险。

坑 2:测试依赖真实外部服务

应使用桩与模拟,保证稳定与可重复。

坑 3:AI 生成测试全是 happy path

必须强制要求边界和异常路径。

本月作业

建立“AI 测试补齐规则”:

  1. 选择 3 个高风险模块进行测试补齐。
  2. 每个模块至少新增 5 条边界/异常测试。
  3. 对比补齐前后的缺陷拦截效果。

下一章:AI Vibe Coding 07《重构协同:AI辅助分阶段重构与风险隔离》。