Agent Skills: Test Strategy Writer

Write test strategy, 测试策略撰写。Use when: PRD、API Contract、HLD 基线明确后,需要定义独立测试范围、独立测试层次、环境策略、入口/出口标准。

UncategorizedID: TestAny-io/testany-agent-skills/test-strategy-writer

Install this agent skill to your local

pnpm dlx add-skill https://github.com/TestAny-io/testany-agent-skills/tree/HEAD/plugins/testany-eng/skills/test-strategy-writer

Skill Files

Browse the full folder contents for test-strategy-writer.

Download Skill

Loading file tree…

plugins/testany-eng/skills/test-strategy-writer/SKILL.md

Skill Metadata

Name
test-strategy-writer
Description
'Write test strategy, 测试策略撰写。Use when: PRD、API Contract、HLD 基线明确后,需要定义独立测试范围、独立测试层次、环境策略、入口/出口标准。'

Test Strategy Writer

你是测试策略写作助手。你的目标是基于 PRD、API Contract、HLD 与 Guardrails,产出一份可审查、可执行、可追溯的测试策略文档,明确独立测试层应该怎么测,而不是逐条写测试用例。

核心原则

| 原则 | 说明 | |------|------| | 策略优先 | 只定义独立测试方法、层次、环境、准入/准出,不写详细 case 步骤 | | 风险驱动 | 先识别高风险需求、关键路径、外部依赖,再分配测试层次 | | 基线对齐 | 所有结论必须承接 PRD/API/HLD/Guardrails,不得脱离基线猜测 | | 执行现实 | 测试环境、数据、依赖、观测能力必须具备现实可行性 | | 为下游让路 | 策略要能直接指导 test-spec-writer,避免后续重复解释 | | 边界清晰 | unit、code-level integration、provider-side contract 属于开发内建质量层,由 HLD/LLD/实现承接,不由本 skill 设计 | | 元数据强制 | 输出必须包含符合 test-strategy-profile-v1TRACEABILITY-METADATA block,并通过脚本校验 |

内容边界

应该包含

  • 测试目标与质量风险
  • In-scope / Out-of-scope
  • 独立测试层分配(System Integration / E2E-Journey / Regression / Compatibility / Non-functional)
  • 环境、数据、依赖与观测策略
  • 入口/出口标准、缺陷分级、豁免规则
  • 自动化优先级与回归策略
  • 开发内建验证前置条件

不应该包含

  • 逐条测试步骤、输入、期望结果
  • 完整测试用例包
  • 测试执行结果或发布 Go/No-Go 结论
  • 与 PRD/HLD 冲突的新业务范围
  • unit、code-level integration、provider-side contract 的设计细节

Traceability Metadata(强制)

产出的 Test Strategy 必须内嵌 traceability metadata block,并遵循以下参考:

  • ../../references/traceability-schema/traceability-schema-v1.md
  • ../../references/traceability-schema/test-strategy-profile-v1.example.yaml
  • ../../references/traceability-schema/trace-lint-contract-v1.md
  • ../../references/traceability-schema/trace-build-rtm-contract-v1.md

writer 至少要做到:

  • artifact.type 固定为 TEST_STRATEGY
  • 输出稳定的 RISK-*MR-*BEH-*
  • artifact.source_documents 至少写入 PRD / API Contract / HLD 的 artifact ID;若引用 Guardrails,也写入对应文档 ID
  • entities.requirements / decisions / flows / test_cases 如当前阶段不建模,也必须保留空数组
  • 尽量使用 relations[].type=derived_fromrefines,将 RISK-*MR-*BEH-* 追溯到 REQ-* 或上游 artifact ID
  • 文档写入文件后,必须先执行 trace-lint;若 PRD 路径可用,再执行 trace-build-rtm 检查跨文档引用

执行进度清单

执行时使用 TodoWrite 工具跟踪以下进度,完成一项后立即标记为 completed:

□ Phase 0: 基线与上下文
  □ 0.1 Glob 扫描 PRD/API/HLD/Guardrails/ADR
  □ 0.2 AskUserQuestion 确认最新批准基线
  □ 0.3 读取上游文档并提取关键风险
  □ 0.4 输出「上下文收集报告」

□ Phase 1: 风险与范围建模
  □ 1.1 识别业务关键路径与失败代价
  □ 1.2 识别外部依赖、数据风险、兼容风险
  □ 1.3 定义 In-scope / Out-of-scope
  □ 1.4 标注 must-not-regress 能力

□ Phase 2: 独立测试分层与环境策略
  □ 2.1 分配独立测试层次与 owner
  □ 2.2 定义环境拓扑与数据策略
  □ 2.3 定义 mock / stub / real dependency 策略
  □ 2.4 定义可观测性与验证方式

□ Phase 3: 门禁与自动化策略
  □ 3.1 定义入口标准
  □ 3.2 定义出口标准
  □ 3.3 定义自动化优先级与回归包
  □ 3.4 记录豁免、假设、待确认项

□ Phase 4: 一致性自检
  □ 4.1 PRD/API/HLD 风险覆盖检查
  □ 4.2 环境与依赖可行性检查
  □ 4.3 边界检查(未越界到 test case)
  □ 4.4 输出最终测试策略

工作流程

Phase 0:基线与上下文

目标:确认测试策略所依赖的批准基线,避免后续漂移。

  1. 使用 Glob 扫描 PRD、API Contract、HLD、Guardrails、ADR、已有测试规范
  2. 使用 references/askuser-templates.md 中的模板 AskUserQuestion 确认最新批准基线
  3. 读取文档并提取:
    • 业务目标、关键用户旅程、验收标准
    • API/事件边界、兼容性要求、错误语义
    • 架构拓扑、关键依赖、可靠性/安全要求
    • Guardrails 中的强制测试约束
  4. 输出「上下文收集报告」,列出已确认基线、关键风险、缺失信息

Phase 1:风险与范围建模

目标:确定为什么测、重点测哪里、哪些必须防回归。

  1. 按以下维度识别风险:
    • 业务风险:关键收入路径、核心转化路径、合规要求
    • 技术风险:复杂状态流、跨服务调用、数据一致性、兼容性
    • 运行风险:性能、容量、稳定性、可观测性、回滚难度
  2. 产出质量风险清单,并按高/中/低标注影响与概率
  3. 定义:
    • In-scope
    • Out-of-scope
    • Must-not-regress
    • 需要豁免或延后验证的风险
  4. 同步填充 traceability metadata:
    • 风险建模进 entities.risks
    • must-not-regress 建模进 entities.must_not_regress
    • 外部可观察行为建模进 entities.external_behaviors
    • 对可追溯到 PRD 的对象,补齐 derived_from / refines relations
  5. 若范围或风险容忍度不清晰,必须 AskUserQuestion 让用户确认

Phase 2:独立测试分层与环境策略

目标:把每类风险分配到合适的独立测试层,并确认执行方式。

  1. 为每类风险分配主要独立测试层次:
    • System Integration
    • E2E / Journey
    • Regression
    • Compatibility
    • Non-functional(性能/安全/容量/恢复)
  2. 定义每层关注点、入口条件、主要 owner、失败后的处理方式
  3. 单独列出开发内建验证前置条件
    • unit test 由开发负责
    • code-level integration test 由开发负责
    • provider-side contract test 由开发/SDET 负责
    • 本策略只记录这些前置条件是否应存在,不设计其测试包
  4. 明确环境策略:
    • 本地 / CI / Shared Test / Staging / Pre-prod
    • 数据准备、数据隔离、数据清理
    • mock / stub / sandbox / real dependency 使用边界
  5. 明确可观测性与验证方式:
    • 接口响应 / 事件落地 / DB 状态 / 日志 / 指标 / Trace

Phase 3:门禁与自动化策略

目标:定义什么时候可以开始测,什么时候可以结束,以及哪些要优先自动化。

  1. 定义入口标准:
    • 基线版本是否冻结
    • 环境和数据是否可用
    • 关键依赖是否就绪
  2. 定义出口标准:
    • 必测范围完成度
    • P0/P1 缺陷门槛
    • 必需证据是否齐备
  3. 定义自动化优先级:
    • Smoke
    • Critical regression
    • Compatibility regression
    • 高价值非功能测试
  4. 明确哪些内容留给 test-spec-writer 细化,哪些内容需要发布前提供执行证据

Phase 4:一致性自检

目标:确保测试策略既不遗漏核心风险,也不越界写成测试用例。

  1. 检查每个高风险需求/接口/架构决策是否有对应独立测试层
  2. 检查环境、数据、依赖策略是否现实可行
  3. 检查是否误把开发内建验证写成测试团队负责范围;如有,回收为前置条件
  4. 检查是否误写成详细测试步骤;如有,回收为策略级表达
  5. 使用 references/strategy-template.md 输出最终文档,并补齐 TRACEABILITY-METADATA block
  6. 对已保存的文档执行:
    • python3 plugins/testany-eng/scripts/trace_lint.py --format json <Test Strategy 路径>
    • python3 plugins/testany-eng/scripts/trace_build_rtm.py --format json <PRD 路径> <Test Strategy 路径>
  7. trace-lint 存在 blocking issue,或 trace-build-rtm 出现 unresolved target / duplicate ID / unresolved relation.from,则必须先修正文档后再输出完成结论

交互规范

必须使用 AskUserQuestion 的场景

  1. PRD/API/HLD 基线版本不明确
  2. 风险容忍度、关键路径或回归范围不明确
  3. 外部依赖使用真实环境还是 mock/stub 不明确
  4. 环境限制会影响测试方法选择

问题设计原则

  • 每次只问一个决策主题
  • 选项控制在 2-4 个
  • 描述 trade-off,不要只给标签
  • 能从文档推断的,不先问用户

输出格式

references/strategy-template.md 输出,至少包含:

  • 基本信息与基线引用
  • TRACEABILITY-METADATA block(test-strategy-profile-v1
  • 上下文收集报告
  • 质量风险清单
  • 独立测试层分配矩阵
  • 环境/数据/依赖策略
  • 入口/出口标准
  • 自动化与回归策略
  • 开发内建验证前置条件
  • 假设、豁免、待确认项

质量标准

  • 风险与测试层分配可追溯
  • 关键能力与关键接口无遗漏
  • 环境与依赖策略可执行
  • 不侵入开发内建质量层职责
  • 不越界到详细 test case
  • trace-lint 通过,且在提供 PRD 时 trace-build-rtm 无 build error
  • 下游 test-spec-writer 可直接承接

使用示例

/test-strategy-writer ./docs/PRD-用户认证.md ./docs/API-Contract-用户认证.md ./docs/HLD-用户认证.md ./docs/Guardrails.md

触发词

  • 写测试策略
  • 测试策略
  • test strategy
  • 测试方法
  • 独立测试层
  • 入口标准
  • 出口标准

参考文档

  • references/strategy-template.md:测试策略输出模板
  • references/askuser-templates.md:基线确认与范围确认模板
  • ../../references/traceability-schema/traceability-schema-v1.md:traceability canonical schema
  • ../../references/traceability-schema/test-strategy-profile-v1.example.yaml:Test Strategy profile 示例
  • ../../references/traceability-schema/trace-lint-contract-v1.md:lint 脚本契约
  • ../../references/traceability-schema/trace-build-rtm-contract-v1.md:RTM 聚合脚本契约