第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个有效等价类(每个允许的输入值为一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)
栗子:输入条件规定学历为:专科、本科、硕士、博士等四种之一 | |
---|---|
有效等价类 | 无效等价类 |
专科 | 专科 本科 硕士 博士 |
本科 | |
硕士 | |
博士 |