首页/开发/软件测试速查/组合爆炸与剪枝
用例设计方法62 条

组合爆炸与剪枝

参数与取值增加会让组合数指数增长:用等价类合并、约束剪枝(排除非法组合)与 pairwise 控制规模,并记录剪枝依据。

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

组合爆炸与剪枝是什么

参数与取值增加会让组合数指数增长:5 个参数各 4 档就是 4^5 = 1024 种组合,穷举不现实。治理手段有三类:等价类合并同效取值、约束剪枝排除非法组合、按 pairwise 覆盖两两交互;剪枝依据要记录下来,让取舍可评审、可追溯。

基本信息

规模公式组合数 = 各参数取值数相乘(4^5 = 1024)
剪枝手段等价类合并、约束排除、pairwise 覆盖
执行顺序先剪非法组合,再 pairwise 生成,最后补高风险全组合
记录要求剪枝规则写入评审记录
评估方式抽样核对生成集合的覆盖清单
高风险补强金额、安全、核心链路组合单独全测
适用前提参数相互独立或弱耦合
工具生态PICT、正交表工具等生成 pairwise 集合

规模估算

规模估算
5 个参数、各 4 档 -> 4^5 = 1024 组合
按约束剪枝(如 A=高时 B 不可为低)后规模显著下降
再按 pairwise 覆盖两两交互
# 高风险组合例外:不参与剪枝,全部保留

典型使用场景

  • 界面配置:浏览器、系统、语言等互相影响弱的参数组合。
  • 接口参数:先剪枝非法组合,再控制生成规模。
  • 回归优化:用 pairwise 集合替代全组合,控制执行时长。
  • 评审沟通:展示剪枝依据,让取舍透明可辩。
  • 计划估算:用组合数量级说明测试量与取舍理由。
  • 自动化落地:参数模型喂给生成工具,用例随配置更新。
  • 数据评估:组合数直接决定造数与执行时长,先评估再取舍。
剪枝规则只存在于工具配置里,团队无法评审;规则要进评审记录。
把非法组合当作合法用例执行,缺陷单会指向错误方向。
组合剪枝的前提是参数间弱耦合:有强依赖的参数对必须单独分析,不能直接套 pairwise。
剪枝不是删除风险:被剪掉的高风险组合要显式列出并补测。

易错点

  • 剪枝规则只存在于工具配置里,团队无法评审。
  • 把非法组合当作合法用例执行,缺陷单指向错误。
  • 对强耦合参数直接套 pairwise,关键组合被剪掉。
  • 全组合不剪枝硬跑,时间成本失控。
  • 剪枝后不做覆盖抽样核对,集合质量没人验证。
  • 剪枝后未记录被排除的组合,回归时无法确认覆盖变化。

数据来源与参考

  • NIST《Introduction to Combinatorial Testing》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌