test-strategy 是一个面向 qa-engineer 的覆盖设计方法技能,用来回答“为什么选这组测试”,而非只给出覆盖率数字。
用途:生成 docs/qa-reports/TEST-STRATEGY-{slug}.md 测试策略文档,记录关键决策;对中大型功能,QA 门禁会检查该文件是否存在。
主要能力:
- 金字塔比例按原型选择,而非条件反射:库/开发工具/CLI 为单元 80%、集成 15%、e2e 5%;web 应用/SaaS 为 60%/30%/10%;电商/金融科技/市场平台为 50%/35%/15%;数据平台/流式系统为 45%/45%/10%;AI 系统/智能体产品为 50%/20%/10%,另加 20% 评测。所选比例与偏差理由需写入 TEST-STRATEGY。
- 用例选择采用等价类、边界与属性测试:每个行为类别取一个代表,测试 5 个有效 ID 不等于测试 5 个等价类;边界覆盖 0、1、n-1、n、n+1、空值、溢出、阈值本身;对纯逻辑/转换逻辑用属性测试断言不变量,如 decode(encode(x))===x、幂等性、顺序性,工具可用 fast-check 或 Hypothesis。
- 变异得分:行/分支覆盖只证明代码运行过,变异测试(Stryker、mutmut、cargo-mutants)翻转运算符或条件并检查测试是否捕获。对变更中逻辑密集的文件目标为变异得分不低于 60%,逻辑较重时需报告结果。
- 不稳定测试隔离:非确定性失败的测试应被跳过并记录到 Beads bug,隔离需限时、有负责人与截止日期,重新启用前先定位根因(共享状态、时序、真实网络、顺序)。这与 eval runner 的 flake 标志逻辑一致(tests/eval/runner.mjs 中 stddev > 0.1 视为不稳定信号)。
输出文档包含:原型与金字塔比例及偏差理由、每个变更单元的等价类与边界、属性测试候选、变异得分目标与结果、隔离清单。
限制:资料未提供具体安装命令、价格、平台支持范围或与其它工具的集成细节;实际执行需结合项目自身测试框架。