Keep pouch naming and .pouch/ack project state, and bring in ACK regression mode, deployer test-environment binding, and manage-release updates from main.
3.2 KiB
ACK 回归目录与运行
本文件是回归用例目录、收获时机和运行模式的 SSOT。三角色闭环仍见
closed-loop.md;测试环境部署见 delivery.md 与 deployer skill。
回归不是新 skill,也不写入 knowledge.yaml。知识是护栏;回归是可观测的黑盒
用例清单。
1. 目录
项目状态是 .pouch/ack/regression.yaml。任务板用
project.regressionFile: .pouch/ack/regression.yaml 声明,运行证据写在
tasks.yaml.regressionRuns。新项目初始化会生成空目录;旧项目没有该文件时,
「运行回归」先停下来,用户授权后再从模板补齐。
只有 Coordinator 写 regression.yaml。Test 在复测报告里提名
regressionCandidates;用户确认后 Coordinator 落盘,并把 case id 写入任务的
regressionRefs。不要把用例散落到第二份文档,也不要让 Test 直接改
.pouch/ack/。
tests/browser/** 仍可由 Test 维护可执行脚本。用例可用可选 automationRef
指向那些脚本;没有脚本时 Test worker 按目录里的步骤和验收信号执行。
2. 用例
每条用例是给独立 Test worker 的说明书,复用
optimization-method.md §1 的可观测信号。ACK 不提供 YAML-DSL 解释器,也不强制
Playwright。
读取时用 scripts/select_regression.py,不要把完整目录注入上下文:
python3 <ack-skill-dir>/scripts/select_regression.py .pouch/ack/regression.yaml
python3 <ack-skill-dir>/scripts/select_regression.py .pouch/ack/regression.yaml \
--suite full
python3 <ack-skill-dir>/scripts/select_regression.py .pouch/ack/regression.yaml \
--case-id REG-login-001
默认 --suite smoke 只返回 status: active 且 suite: smoke 的用例。
--suite full 返回全部 active 用例。写回前仍运行
scripts/validate_regression.py。
surface: browser 的用例必须走真实页面交互,不能改成只打 API。
surface: api 以 HTTP 状态和字段为证据。
3. 收获
任务进入 verified 且改了用户可见行为或 API 后,闭环结束前 Coordinator 必须给出
四选一,不能跳过:
- 新增
- 更新已有用例
- 退役(功能已删除)
- 无回归(纯内部重构、leftover、无用户可见变化)
草案来自任务验收信号和 Test 的独立证据,按 path + expected 去重。用户确认后
才写入目录。P0 / 主路径默认 suite: smoke,其余 full。
4. 运行
用户说「回归」「跑回归测试」时执行本模式,不要求当前有 verified 任务。
- 目录存在且有选中的 active 用例;否则停止。
- 先按「运行测试环境」调用 deployer,拿到 Base URL。
- Coordinator 派独立 Test worker,只带选中用例、Base URL 和 surface。
- Test 逐条对照
expected回报证据。Coordinator 终检后写入regressionRuns。 - 失败只报告,不自动派 Developer,不占任务三轮预算。用户明确要求修复时,按 「修 bug」为每条失败开一个任务。
环境失败(没有浏览器、打不开部署地址、deployer 失败)记环境事件,不记产品失败。
默认跑 smoke。用户点名 full 或具体 case id 时按点名范围执行。