为什么穷尽不可行
穷尽测试不可行是 ISTQB 七原则之一:除极简输入外,无法测试所有输入组合、执行路径与前置条件。输入域往往连续或无限,参数组合随数量指数增长,路径数量还受数据与并发影响。既然测不完,测试的本质就是基于风险的采样:选择能覆盖主要风险的子集,并说明选择依据与放弃范围。
基本信息
| 原则出处 | ISTQB 基础级测试七原则 |
|---|---|
| 组合规模 | 3 个布尔参数 8 种组合;参数与取值增加后指数膨胀 |
| 替代策略 | 等价类、边界值、判定表、成对组合、基于风险的优先级 |
| 记录要求 | 采样依据与覆盖范围留档,便于评估残余风险 |
典型使用场景
- 计划阶段向干系人说明「测到什么程度」与残余风险
- 参数繁多的配置与表单:用成对(pairwise)组合把用例压到可执行规模
- 回归取舍:按使用频率与变更范围排序,优先高频高危路径
- 连续取值范围:等价类加边界值替代逐个取值
- 时间受限的专项测试:明确放弃哪些组合并书面说明
- 覆盖策略评审:确认采样维度能回答业务最关键的问题
组合规模直观感受
组合规模直观感受
# 3 个布尔开关:2^3 = 8 种组合
# 6 个参数各 10 档取值:10^6 = 100 万种,逐一遍历不可行
# 两两(pairwise)覆盖:覆盖任意两个参数的全部取值组合
# —— 常见工具可把规模压到十几到几十条,适合交互缺陷筛查
# 结论:显式选择采样策略并记录依据,而不是随手挑用例采样方法对照
| 方法 | 思路 | 适用场景 |
|---|---|---|
| 等价类划分 | 每类取代表值 | 输入可分组且类内等价 |
| 边界值 | 取边界与边界加减一 | 有序数值与长度限制 |
| 判定表 | 条件与动作的组合 | 业务规则密集的流程 |
| 成对组合 | 覆盖任意两个参数的交互 | 多开关多配置参数 |
| 基于风险 | 按影响乘概率排序 | 时间受限时的取舍 |
采样不是「随便挑」:每个入选用例应能回答它代表哪类风险;落选组合要能说明为什么可以放弃。
干系人常把「测试通过」理解为「没有缺陷」:用本原则先对齐预期,通过只代表采样范围内未发现失效。