前置知识: 软件测试

等价类划分

00:00
5 min Intermediate 2026/6/14

等价类划分法:测试用例设计方法、有效/无效等价类、边界值结合应用详解。

1. 等价类划分原理

1.1 基本概念

等价类划分是将输入域划分为若干等价类,从每个等价类中选取代表性值作为测试用例。同一等价类中的值对揭露缺陷的效果相同。

1.2 核心假设

如果某个等价类中的一个值能发现缺陷,则该类中其他值也能发现;反之,如果某个值不能发现缺陷,则该类中其他值也不能。

1.3 优势

优势描述
减少用例数每个等价类只取代表值
提高效率避免冗余测试
系统化有规律的划分方法
覆盖全面有效+无效等价类

2. 有效等价类与无效等价类

2.1 定义

类型定义示例(年龄 1-120)
有效等价类符合需求的输入集合25(1 ≤ age ≤ 120)
无效等价类不符合需求的输入集合-1, 0, 121, “abc”

2.2 划分规则

输入条件有效等价类无效等价类
范围范围内小于下界、大于上界
枚举枚举值之一非枚举值
布尔true/false非布尔值
必填有值空值
格式符合格式不符合格式

3. 等价类划分实例

3.1 实例1:用户名注册

需求:用户名长度 6-20 个字符,仅允许字母、数字和下划线。

等价类类型
长度 6-20有效”user01”
长度 < 6无效”usr”
长度 > 20无效”a”*21
字母数字下划线有效”user_name1”
含特殊字符无效”user@name”
空值无效""

测试用例

用例输入预期结果覆盖等价类
TC1”user01”注册成功有效长度+有效字符
TC2”usr”提示过短无效长度(短)
TC321个a提示过长无效长度(长)
TC4”user@name”提示非法字符无效字符
TC5""提示必填空值

3.2 实例2:日期输入

需求:输入年份(1900-2100)、月份(1-12)、日期。

输入有效等价类无效等价类
年份1900-2100<1900, >2100, 非数字
月份1-120, 13, 非数字
日期1-28(通用)0, 29+, 非数字
日期(31天月)29-3132+
日期(30天月)29-3031
日期(2月平年)2929(闰年才有效)

3.3 实例3:购物金额折扣

需求

  • 金额 < 100:无折扣
  • 100 ≤ 金额 < 500:9 折
  • 500 ≤ 金额 < 1000:8 折
  • 金额 ≥ 1000:7 折
等价类类型预期折扣
0 < 金额 < 100有效50
100 ≤ 金额 < 500有效2009折
500 ≤ 金额 < 1000有效7008折
金额 ≥ 1000有效15007折
金额 ≤ 0无效-10错误
非数无效”abc”错误

4. 等价类与边界值结合

4.1 结合策略

等价类划分确定范围边界分析选择具体

示例输入范围 1-100

方法选取
等价类50(有效), 0(无效), 101(无效)
边界0, 1, 2, 99, 100, 101
结合0, 1, 2, 50, 99, 100, 101

4.2 完整测试用例设计流程

1. 分析需求 → 提取输入条件
2. 划分等价类 → 有效+无效
3. 边界值补充 → 在边界附近取值
4. 组合测试用例 → 覆盖所有等价类
5. 补充异常场景 → 空值、超时等

5. 多输入组合

5.1 组合策略

策略描述用例数
组合所有等价类组合
正交实验正交选择组合适中
测试参数至少组合一次较少

5.2 成对测试示例

两个参数,各有 3 个等价类

参数等价类
浏览器Chrome, Firefox, Safari
操作系统Windows, macOS, Linux

组合 9 个,成测试 3 个即可覆盖所有组合对。

6. 最佳实践

实践描述
有效后无效优先确保正常流程
每个无效独立用例避免缺陷掩盖
结合边界缺陷发现
考虑隐含需求显式约束
持续更新需求变更时更新等价

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式