第1节 等价类方法设计
1.1 基本概念
- 程序输入域的子集
1.2 等价类的划分
- 有效等价类:对于程序的规格说明来说是合理的,有意义的输入数据构成的集合,他主要检测程序是否可以实现规格说明中所规定的需求。
- 无效等价类:对于程序的规格说明是不合理的,无意义的输入数据构成的集合,他主要检测程序在不符合规定的情况下,是否有异常,无效等价类至少有一个或者多个
1.3 使用场景
- 多数用于设计程序输入时的用例编写方法
1.4 等价类的设计原则
(1)若输入条件规定了取值范围,或者规定了值的个数的情况下:可划分为一个有效等价和两个无效等价
| 栗子:Q的取值范围为:[1,10] | |
|---|---|
| 有效等价类 | 1 <= Q <= 10 |
| 无效等价类 | Q < 1 |
| Q > 10 |
(2)如输入的条件为布尔表达式,可划分为一真一假的有效等价类与无效等价类:
| 栗子:入职添加工号,其中姓名为必填 | |
|---|---|
| 有效等价类 | 无效等价类 |
| 填写姓名 | 不填写姓名 |
(3)若规定了输入的数据必须遵守的原则,可划分为一个有效等价类(符合规则)和若干个无效等价类:
| 栗子:手机号码只可以输入数字 | |
|---|---|
| 有效等价类 | 无效等价类 |
| 输入数字 | 特殊符号 |
| 汉字 | |
| 字母 |
(4)若只要求输入数据符合某几个原则,这时可能有多个有效等价类和若干个无效等价类
| 栗子:交易用户登录密码只可输入数字、字母及部分特殊符号,不能输入单/双引号及汉字 | |
|---|---|
| 有效等价类 | 无效等价类 |
| 输入数字 | 输入单引号 |
| 输入字母 | 输入双引号 |
| 输入特殊字符(除单双引号) | 输入汉字 |
| 。。。 |
(5)若规定了输入数据的一组值(假设N个),并且程序对不同输入做不同处理,则可以划分为N个有效等价类(每个允许的输入值为一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)
| 栗子:输入条件规定学历为:专科、本科、硕士、博士等四种之一 | |
|---|---|
| 有效等价类 | 无效等价类 |
| 专科 | 专科 本科 硕士 博士 |
| 本科 | |
| 硕士 | |
| 博士 |
