Skip to content

AI Regression Testing Skill 是 Everything Claude Code 插件体系中,专为 AI 辅助开发场景打造的回归测试方案。它聚焦于同一 AI 模型写代码又自审时易产生的“盲区”,通过沙箱模式 API 测试、自动化回归用例和 bug-check 工作流,极大提升了 AI 编程助手下的代码安全性和回归防御能力。适用于 Claude Code、Cursor、Codex 等主流 AI 编程环境,尤其适合频繁修改 API 或后端逻辑的项目。

Everything Claude Code AI Regression Testing:同一模型写和审的盲点检测与沙箱模式 API 测试

在 AI 编程助手(如 Claude Code、Cursor、Codex)驱动的开发流程中,AI 不仅负责代码生成,还常常承担代码审查。这种“同一模型写和审”的模式带来了独特的系统性盲点:AI 会把同样的假设和疏漏带入写代码和代码审查两个环节,导致某些类型的回归反复出现而难以被察觉。AI Regression Testing Skill 正是为了解决这一问题而设计,结合沙箱模式 API 测试和自动化回归用例,成为 AI 辅助开发场景下不可或缺的安全网。

本指南将详细介绍如何在实际项目中用好 AI Regression Testing Skill,包括适用场景、触发时机、分步操作流程、输出示例、常见配套 Agent,以及与其他 Skill 的协作关系。你将学会如何让 AI 编程助手的 bug-check 流程真正防止“AI 自己看不见的回归”,而不是流于形式。

1. 这个 Skill 解决什么问题?

传统的代码回归测试主要针对人工开发流程设计,而 AI 辅助开发下,回归的“新型盲点”主要有:

  • 同一模型写和审的假设盲区:AI 生成代码后自审,容易重复同样的遗漏(如 API 字段遗漏、路径分支不一致等)。
  • 沙箱/生产路径不一致:AI 修复生产路径但忘记沙箱路径,或反之,导致 mock/production 行为不对齐。
  • SELECT 子句遗漏:新增字段未同步到 SELECT 查询,AI 审查时也没发现。
  • 错误状态未清理、乐观更新无回滚:AI 只关注 happy path,异常分支遗漏处理。

不用该 Skill 时,开发者往往依赖 AI 自审或人工 spot check,实际生产中这些回归会反复出现,极难彻底杜绝。

2. 适用场景与触发条件

AI Regression Testing Skill 主要在以下场景自动激活或建议使用:

  • AI Agent 修改了 API 路由或后端逻辑(如 Claude Code、Cursor、Codex 生成/重构后端代码)
  • 发现并修复了 bug,需要防止同类回归
  • 项目具备沙箱/mock 模式,可实现无数据库依赖的快速 API 测试
  • 执行 /bug-check 或类似代码审查命令后
  • 存在多路径逻辑(如生产/沙箱、feature flag)时

在 Everything Claude Code 的 bug-check 工作流中,AI Regression Testing Skill 通常与 Verification Loop SkillBenchmark Skill 协同,形成“自动测试→类型检查→AI 审查→回归用例补充”的完整闭环。

3. 使用流程 Step by Step

步骤 1:配置沙箱模式 API 测试环境

以 Next.js + Vitest 为例,配置沙箱模式,确保测试无需真实数据库:

typescript
// vitest.config.ts
import { defineConfig } from "vitest/config";
import path from "path";

export default defineConfig({
  test: {
    environment: "node",
    globals: true,
    include: ["__tests__/**/*.test.ts"],
    setupFiles: ["__tests__/setup.ts"],
  },
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "."),
    },
  },
});
typescript
// __tests__/setup.ts
// 强制沙箱模式,无需数据库
process.env.SANDBOX_MODE = "true";
process.env.NEXT_PUBLIC_SUPABASE_URL = "";
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY = "";

步骤 2:编写 API 路由测试辅助函数

封装 Next.js API 路由的测试请求与响应解析:

typescript
// __tests__/helpers.ts
import { NextRequest } from "next/server";

export function createTestRequest(
  url: string,
  options?: {
    method?: string;
    body?: Record<string, unknown>;
    headers?: Record<string, string>;
    sandboxUserId?: string;
  },
): NextRequest {
  // ...实现略,详见上文
}

export async function parseResponse(response: Response) {
  const json = await response.json();
  return { status: response.status, json };
}

步骤 3:为已发现的 bug 编写回归测试用例

原则:只为出现过 bug 的路径补充回归测试,用测试锁死 AI 反复犯错的点。

typescript
// __tests__/api/user/profile.test.ts
import { describe, it, expect } from "vitest";
import { createTestRequest, parseResponse } from "../../helpers";
import { GET } from "@/app/api/user/profile/route";

const REQUIRED_FIELDS = [
  "id", "email", "full_name", "phone", "role",
  "created_at", "avatar_url", "notification_settings",  // ← bug 修复后补充
];

describe("GET /api/user/profile", () => {
  it("returns all required fields", async () => {
    const req = createTestRequest("/api/user/profile");
    const res = await GET(req);
    const { status, json } = await parseResponse(res);

    expect(status).toBe(200);
    for (const field of REQUIRED_FIELDS) {
      expect(json.data).toHaveProperty(field);
    }
  });

  // 针对 notification_settings 缺失的回归用例
  it("notification_settings is not undefined (BUG-R1 regression)", async () => {
    const req = createTestRequest("/api/user/profile");
    const res = await GET(req);
    const { json } = await parseResponse(res);

    expect("notification_settings" in json.data).toBe(true);
    const ns = json.data.notification_settings;
    expect(ns === null || typeof ns === "object").toBe(true);
  });
});

步骤 4:检测沙箱/生产路径一致性

AI 最常见回归是“只修了生产路径,忘了沙箱路径”,用如下测试防御:

typescript
describe("GET /api/user/messages (conversation list)", () => {
  it("includes partner_name in sandbox mode", async () => {
    const req = createTestRequest("/api/user/messages", { sandboxUserId: "user-001" });
    const res = await GET(req);
    const { json } = await parseResponse(res);

    if (json.data.length > 0) {
      for (const conv of json.data) {
        expect("partner_name" in conv).toBe(true); // 防止只在生产路径加字段
      }
    }
  });
});

步骤 5:集成到 bug-check 工作流

Everything Claude Code 推荐如下 bug-check 流程(可用 Verification Loop Skill 自动化):

  1. 先跑自动化测试(npm run test),任何失败即视为最高优先级 bug
  2. 类型检查/构建(npm run build),TypeScript 报错同样优先修复
  3. AI 代码审查,重点关注多路径一致性、API 响应 shape、SELECT 完整性、错误处理
  4. 每修复一个 bug,立刻补充对应回归测试

示例命令定义(.claude/commands/bug-check.md):

markdown
# Bug Check

## Step 1: Automated Tests (mandatory, cannot skip)
npm run test
npm run build

## Step 2: Code Review (AI review)
1. Sandbox / production path consistency
2. API response shape matches frontend expectations
3. SELECT clause completeness
4. Error handling with rollback
5. Optimistic update race conditions

## Step 3: For each bug fixed, propose a regression test

步骤 6:常见回归模式与测试策略

回归模式测试策略优先级
沙箱/生产路径不一致断言两路径返回字段完全一致
SELECT 子句遗漏断言所有必需字段都在响应中
错误状态未清理断言异常时相关状态被清空
乐观更新无回滚断言 API 失败时状态能正确回滚
类型掩盖 null/undefined断言字段不为 undefined

4. 输出示例

bug-check 流程输出示例:

User: /bug-check

Step 1: npm run test
  ✔ GET /api/user/profile returns all required fields
  ✔ notification_settings is not undefined (BUG-R1 regression)
  ✔ GET /api/user/messages includes partner_name in sandbox mode

Step 2: npm run build
  ✔ Build success

Step 3: AI code review
  - No new issues found. Both sandbox and production paths match.

Step 4: Regression test added for notification_settings bug.

5. 常见配套 Agent 与 Skill 协作关系

更多 ECC 组件协作模式详见 Everything Claude Code 完全指南

6. 实践建议与注意事项

DO:

  • 发现 bug 后,优先写回归测试再修复
  • 只为出过 bug 的路径补测试,测试数量随实际问题自然增长
  • 测试聚焦 API 响应 shape,不关心内部实现
  • 测试务必快(沙箱模式下 <1s),便于每次 bug-check 强制执行
  • 测试用例命名建议带上“BUG-XX regression”便于追溯

DON'T:

  • 不为从未出过 bug 的路径写测试(避免无效覆盖)
  • 不把 AI 自审当作自动化测试的替代品
  • 不因“沙箱只是 mock”而跳过沙箱路径测试
  • 不盲目追求覆盖率,目标是锁死已知回归点

FAQ

Q: AI Regression Testing Skill 适合哪些项目? A: 适用于所有用 Claude Code、Cursor、Codex 等 AI 编程助手开发、且有 API/后端逻辑的项目,尤其是支持沙箱/mock 测试的架构。

Q: 只用 AI 代码审查还需要这个 Skill 吗? A: 必须要。AI 自审极易遗漏同类回归,只有自动化测试能彻底锁死这些盲点。

Q: 如何与 Verification Loop Skill 协同使用? A: 建议将 AI Regression Testing Skill 配置为 bug-check 流程的第一步,Verification Loop Skill 负责串联自动测试、类型检查和 AI 审查,实现全流程自动化。