首页/开发/软件测试速查/成对组合测试(Pairwise Testing)
用例设计方法62 条

成对组合测试(Pairwise Testing)

基于多数缺陷由两个参数交互触发的经验规律,生成覆盖所有参数两两组合的用例集,大幅压缩全组合规模。

软件测试速查开发更新于 2026-10-13

成对组合测试是什么

成对组合测试(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 的前提是参数间近似独立;存在强约束或三因子交互时必须单独补充定向用例。
生成结果要人工过一遍:包含业务上非法组合的行先剔除或标注,避免执行时得到一堆假失败。
成对覆盖是下限不是上限:高风险参数对可以升级为全组合重点验证,按风险分配深度。

易错点

  • 对存在业务约束的非法组合直接执行:得到假失败,消耗排查时间。
  • 把它当成全组合替代品:强交互缺陷漏测,上线后才发现组合场景的问题。
  • 参数与取值划分粗糙:每个参数只给两档,覆盖的交互面过窄,等于没测。
  • 生成后不再维护:参数取值变化后矩阵没更新,覆盖悄悄失守。
  • 忽略执行环境差异:组合用例在不同环境跑出的结果混在一起,结论无法归因。

数据来源与参考

  • NIST《Introduction to Combinatorial Testing》
  • 微软 PICT 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌