成对组合测试是什么
成对组合测试(Pairwise Testing)基于组合测试的经验规律:多数缺陷由两个参数的交互触发,而非单参数或全组合。它为所有参数的每对取值生成覆盖集,把全组合规模从乘积级压缩下来——4 个参数各 3 档,全组合 81 条,pairwise 通常 9 到 12 条即可覆盖所有两两组合。前提是参数间近似独立;存在强约束或三因子交互时要单独补定向用例。
基本信息
| 基础 | 组合测试经验研究(如 NIST 的相关工作);两两覆盖可检出多数交互类缺陷 |
|---|---|
| 工具 | PICT(微软)、allpairs、各语言组合库 |
| 前提 | 参数间近似独立;强约束需人工处理 |
| 补充手段 | 对三因子交互与业务约束单独设计定向用例 |
| 适用场景 | 配置项多、组合爆炸、逐项全排不现实的系统 |
规模感示例
规模感示例
4 个参数各 3 档:全组合 = 81
pairwise 通常约 9~12 条即可覆盖所有两两组合
# PICT 用法示意
pict model.txt > cases.txt # model.txt 定义参数与取值
# 输出 cases.txt 即生成的成对组合用例典型使用场景
- 配置矩阵:浏览器、分辨率、语言、时区组合的兼容性测试。
- 接口参数:状态码、角色、参数组合的联合校验。
- 环境适配:操作系统、数据库版本、中间件的组合验证。
- 安装部署:硬件规格与软件版本组合的冒烟矩阵。
- 表单联动:多个筛选条件的组合行为验证。
- 既有用例瘦身:从全组合回归中抽出成对覆盖的最小集。
pairwise 的前提是参数间近似独立;存在强约束或三因子交互时必须单独补充定向用例。
生成结果要人工过一遍:包含业务上非法组合的行先剔除或标注,避免执行时得到一堆假失败。
成对覆盖是下限不是上限:高风险参数对可以升级为全组合重点验证,按风险分配深度。