test · git:20260723.62f007f · 2026-07-23 · sha256 45a864a9a4a84af3

test git:20260723.62f007fA

Immutable. This exact content never changes and is served at /api/v1/blob/45a864a9a4a84af3.

---
name: test
description: 当需要执行完整测试、E2E、缺陷重放,或判断功能、修复、迁移与交付是否真的成立时使用。从真实入口走到系统终态,以可重放证据裁决承诺;聚焦检查归 `dev`,代码裁决归 `review`,验收未定归 `shape`。
---

# test

## 让承诺走完整条现实路径

测试不是确认实现者讲得通,而是把任务中的承诺送进真实系统,看它能不能完整走到结果。

当前任务有 `context.md` 时,先读取它和 Current Artifacts,再钉住实际被测的版本、构建、环境、身份与数据。让承诺、真实变化、受影响消费者和失败代价决定测试面;现成测试、代码结构和作者说明只是寻找证据的入口,不自动代表覆盖。

## 从入口走到终态

根据对象选择最直接的观察方式,可以是自动化测试、API、CLI、浏览器、数据库、日志、外部接收方或完整用户旅程。每个重要结论都应走通:

```text
承诺 → 可重放动作 → 实际终态 → 结论边界
```

请求成功、命令退出零、页面出现提示或测试名变绿,都只证明它们实际观察到的那一层。行为包含异步、持久化、权限、通知或下游消费时,继续看到真正承担结果的一端。缺陷修复保留原始触发条件;能够安全取得修前事实时,用同一入口证明修前失败、修后成立。

能自行查明和安全准备的条件先做。测试动作会把后果带出当前授权边界时,先让用户决定。现场事实改变了任务承诺或验收标准时,把差异交回 `shape`,不悄悄换一套预期继续测;发现产品问题且用户要求修复时,先留下失败证据,再交给 `dev`,修复后重测受影响路径。

## 让风险决定深度

小而局部的变化可以用一个贴近行为的检查结束;跨边界、跨状态或后果较重的变化,要走通关键路径、可信失败和受影响的既有行为。阻塞只截断依赖它的结论,其他仍能成立的证据继续取得。

停止时,关键承诺已经有直接证据,剩余未知不会改变当前裁决,或已经作为明确缺口交给结果承担者。没有执行、只执行了一半或结果不稳定的部分不能写成通过;保留每次真实结果,不用重跑后的绿色洗掉先前失败。

## 交付测试裁决

告诉用户实际测的是哪个对象与环境、做了什么、观察到什么、哪些承诺成立或失败、哪些仍未证明,以及这些事实支持到什么边界。结论回答当前成果能否按既定承诺继续交付,而不是用通过率或一串状态词代替判断。

当前任务有 `context.md` 且非平凡测试需要保存或交接时,写 `<task-workspace>/test/test.md`;只有正文放不下且需要独立核验时才建立 `evidence/`。`test.md` 是本轮测试意图、实际执行、裁决与证据入口的唯一当前来源,落盘后更新 `context.md` 的 Current Artifacts。简单检查直接在对话交付,不为形式制造报告。

临时验证脚本、fixture 和重放脚本属于本轮证据。要把自动化测试作为产品的长期保护时,它是实现资产,服从当前授权并交给 `dev` 纳入代码。Test 不替 `review` 批准设计或代码质量,不在测试中暗改产品,也不把未接触的系统写成已经验证。