# Test Standards

> 测试规范层 skill。用于功能开发、bug 修复、接口/数据库/UI/业务规则改动后，判定必须包含哪些测试类型、最低断言深度、数据准备策略、自动化优先级、手工测试例外和交付阻断条件。触发场景：制定测试矩阵、判断本次最少要跑哪些测试、审查测试覆盖是否足够、施工前/交付前质量闸检查。

- Skill: `backtocimacoppi/test-standards` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add backtocimacoppi/test-standards`
- Raw SKILL.md: https://api.skillmd.com/api/skills/backtocimacoppi/test-standards/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: BackToCimaCoppi (https://skillmd.com/u/backtocimacoppi)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/backtocimacoppi/test-standards

---


# 测试规范层

本 skill 只回答：这次改动必须测什么、测到什么深度、什么情况不能交付。不要在本层写具体命令、账号、端口、脚本写法或项目工具细节；执行方式交给 `test-execution-router` 与项目执行 skill。

## 0. 第一原则

在纯 AI 开发 loop 中，测试是最后一道质量闸，不是可选收尾。没有测试矩阵、没有自动化执行证据、没有无法自动化的明确理由，不允许交付。

默认规则：

- 能由 AI 自动化的测试必须自动化。
- AI 可控制浏览器/开发者工具、读取 DOM/data、截图并用 VLM 判读时，仍属于自动化；“有 GUI”“需要看图”“工具是交互式”都不是手工理由。
- 只有 AI 无法操作的真实设备、原生客户端对象、支付/OAuth/原生授权等物理边界，才允许转人工手工验证。
- 手工验证必须有物理边界证明、runbook、客观观测点、回传材料和写明责任角色的计划内人工里程碑。
- 跳过任一测试类型时，必须说明本次改动为什么不命中，而不是写“暂不需要”。
- 每次测试矩阵对下列八面**恰好各有一行**；不命中写可核 N/A 理由，禁止省略行。

## 1. 必选测试面

每次改动都先判断是否命中下列测试面，并形成测试矩阵：

| 测试面 | 何时必须纳入 | 最低要求 |
|---|---|---|
| 单元测试 | 业务规则、状态分支、算法、解析、组装、校验逻辑变化 | 覆盖正常、边界、异常或回归路径；不能只测 happy path |
| 接口测试 | 对外接口、鉴权、错误码、状态流、请求/响应字段变化 | 断言字段语义、错误语义、状态变化；不能只看成功码 |
| 数据库数据预置 | 需要稳定前置状态、跨步骤业务链路或复杂终态校验 | 幂等、可清理、命名空间隔离；优先通过业务接口造数 |
| 数据库数据校验 | 写链路、状态流转、表结构、索引/唯一约束、异步重算变化 | 校验终态、不变量、幂等和约束；不能只看有记录 |
| 网页 UI 自动化 | Web/admin 页面、表单、列表、弹窗、配置页、可视状态变化 | AI 自动操作关键路径，硬断言 DOM/数据，必要时自动截图+VLM 判读 |
| 小程序 UI 自动化 | 小程序页面、组件、状态管理、C 端路径变化 | AI/自动化工具操作关键路径，硬断言元素/data，canvas/复杂视觉自动截图判读 |
| 小程序视觉验收 | 页面布局、图表、canvas 合成图、视觉规格变化 | 自动产出截图并由 VLM/视觉模型判读规格差异；不能只证明截图存在 |
| 手工验证 | AI 无法操作的真实设备、原生客户端对象、支付/OAuth/原生授权 | 仅作物理边界例外；物理边界证明 + runbook + 观测点 + 回传材料 + 人工里程碑及责任角色缺一不可 |

## 2. 改动范围到测试矩阵

按改动范围选择测试组合：

| 改动范围 | 必跑 | 常见附加 |
|---|---|---|
| 纯后端内部规则 | 单元测试 | 若影响外部行为，加接口测试；若落库，加 DB 校验 |
| 对外接口 | 接口测试、相关单元测试 | 若写数据，加 DB 预置/校验；若被 UI 消费，加对应 UI 自动化 |
| 数据库结构或写链路 | DB 预置、DB 校验、相关单元/接口测试 | 若影响展示，加 UI 自动化或视觉验收 |
| 后台网页 | Web UI 自动化、接口测试 | 配置写入必须加 DB 校验；视觉变化加截图判读 |
| 小程序业务页 | 小程序 UI 自动化、接口测试 | 视觉/图表/canvas 变化加视觉验收 |
| 小程序视觉/合成图 | 小程序 UI 自动化、小程序视觉验收 | 若素材/配置来自后端，加接口测试与 DB 校验 |
| 鉴权、支付、用户数据删除、业务 ID、核心算法 | 相关测试全纳入，金标准/回归必跑 | 自动升级为高风险质量闸；测试通过不等于免除人工审查，但人工审查发生在设计/章程拍板与终点验收，**不构成执行中的停机闸门** |
| 纯文案或非行为样式微调 | 视影响面最小化 | 仍需视觉或 UI 验证；不得默认“无需测试” |

## 3. 数据策略

根据业务真实性和风险选择数据策略：

| 策略 | 适用 | 要求 |
|---|---|---|
| DB 预置 -> 测试 -> DB 校验 | 需要稳定构造复杂状态、异常状态或历史数据 | 前置必须幂等、可清理；不得 broad cleanup；业务 ID 需合法来源 |
| 接口造数 -> 测试 -> DB 校验 | 需要验证真实业务写链路或 ID/状态由系统生成 | 优先使用；造数接口本身也要记录为前置链路 |
| 复用测试数据 -> 测试 -> DB 校验 | 数据昂贵或依赖外部平台 | 必须证明数据稳定、不会污染他人测试 |
| 人工前置 -> AI 自动校验 | 真机/外部平台授权等 AI 无法完成的前置 | 人工只做绕不过去的动作；后续校验仍由 AI 执行 |

## 4. 最低断言深度

断言必须验证业务语义，不只验证“跑通”：

运行证据同样受本节约束：套件退出码、文件存在、日志/报告哈希、测试名或 AC 编号只能证明“执行载体发生过”，不能单独证明业务断言。每条通过结论必须能回到框架原生断言事件、真实扫描结果或采集时物理边界原始观测。

| 测试面 | 不合格断言 | 合格断言 |
|---|---|---|
| 单元测试 | 方法返回非空 | 分支结果、边界值、异常路径、关键不变量 |
| 接口测试 | `code == 0` / `data` 非空 | 核心字段值、字段关系、错误码、状态变化、分页/空态 |
| DB 校验 | 查询有行 | 行数、关键字段、唯一约束、状态终态、幂等重跑结果；共享余额/限额/计数类写路径加**真并发下不变量保持** |
| Web UI | 页面能打开 | 关键路径可操作、表格/表单值正确、错误/空态正确 |
| 小程序 UI | 页面不白屏 | 用户路径、元素文本/data、加载/空态/权限态正确 |
| 视觉验收 | 截图存在 | 布局、文案、图表/canvas、遮挡、规格差异被判读 |

## 5. 交付阻断条件

以下任一情况必须阻断交付：

- 未产出测试矩阵。
- 直接命中的测试面没有执行证据。
- 跳过测试没有具体原因。
- 自动化失败被标成“手工通过”替代。
- AI 可控 GUI、开发者工具或 VLM 判读被降级成手工。
- 手工项缺物理边界证明、runbook 或计划内人工里程碑及责任角色。
- 用例失败后未分类就改断言或删除用例。
- 只跑冒烟测试，却宣称完成正式接口/业务验证。
- 视觉变化只有截图文件，没有判读结论。
- 数据写链路只有接口响应，没有 DB 终态校验。
- 用模拟/构造替身的结果冒充真实链路验证（未标注保真度 `simulated`，或未写明真实链路收口去向）。
- 改动命中死亡线/高风险区域，对应金标准用例未生效（无 `execution_ref`），却未显式登记豁免并上报。
- `VERIFIED` 只绑定套件成功、聚合哈希或换名后的通用观测，不能还原该 AC 的实际业务结果。
- 金标准只有正向返回值，没有不变量终态与负向副作用的原生观测事件。

## 6. 输出格式

使用本 skill 后，输出至少包含：

```markdown
## 测试矩阵（固定八面，各一行）
| 测试面 | 本次是否命中 | 原因/N/A证据 | 自动化/手工 | 保真度(真连/模拟/手工) | 证据要求 |

## 数据策略
- 选择：DB 预置 / 接口造数 / 复用数据 / 人工前置
- 理由：
- 清理与隔离：

## 最低断言
- 接口：
- DB：
- UI/视觉：

## 阻断项
- 未覆盖测试：
- 不能自动化原因：
```

## 7. 与其他 skill 的边界

- 写具体用例：使用 `test-case-design`。
- 路由执行：使用 `test-execution-router`。
- 项目命令、凭据、浏览器、小程序、视觉工具：使用项目执行 skill。

