---
name: pairwise-test-design
description: >
  提供 pairwise 组合测试设计方法，帮助在参数组合很多时控制测试规模并保持有效覆盖。
  当任务存在多维输入、配置矩阵、权限组合或兼容性组合时使用。
---

# Pairwise Test Design

## 用途

- 解决“组合一多就测不完”与“只测几组又没把握”的矛盾。
- 适合多参数输入、配置开关、角色权限、环境差异和兼容性矩阵场景。

## 默认做法

1. 先列出真正影响行为的维度，而不是把所有字段机械塞进组合矩阵。
2. 为每个维度划分代表性取值：正常值、边界值、特殊值、禁用值或高风险值。
3. 先标记硬约束和非法组合，避免生成“业务上根本不成立”的用例。
4. 当全量笛卡尔积过大时，优先用 pairwise 覆盖两两交互；仅把高风险路径、历史缺陷路径和关键业务规则额外补成定向用例。
5. 输出结果时要说明：哪些组合由 pairwise 覆盖，哪些高风险场景是额外补充，不把 pairwise 误当成全覆盖。

## 触发信号

- 输入参数、配置项、权限条件或终端环境一多，就出现组合爆炸。
- QA 或研发需要在有限时间内确定“先测哪些组合最值”。
- 历史缺陷往往出现在两个条件叠加，而不是单一字段错误。
- 需要把测试矩阵压缩到可执行规模，但又不能只凭经验随便挑几组。

## 配套约束

1. 先遵循 [rules/common/testing.md](../../../rules/common/testing.md) 的主路径、边界态和分层策略。
2. 把 pairwise 结论回写到 QA 侧测试说明或 [artifact-standards.md](../../../rules/artifact-standards.md) 的 Test Plan 字段要求，形成正式测试矩阵。
3. 对修复类改动，pairwise 不能替代针对已知缺陷的定向复现用例。
4. 对安全、金额、权限升级、计费、数据删除等高风险逻辑，不要只停在 pairwise，必须补业务关键规则和失败路径。
5. 若团队已有 PICT、pypict 或等价组合工具，可以用它生成候选矩阵；若没有工具，也可以手工收敛维度和组合，但要显式记录裁剪依据。
