常用的测试用例设计方法有8种,分别是: 等价类,边界值,判定表,因果图,场景法,正交试验法,状态迁移图和错误猜测法.
下面我们详细介绍各种方法的定义和使用(3W原则—what, when, how),分别从定义,应用范围,步骤,案例,总结4方面来介绍:
一. 等价类
- 定义
等价类是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例,等价类分为有效等价类和无效等价类.
有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合;
无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。
等价类划分原则:
- 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
- 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
- 在输入条件是一个布尔量的情况下,可确定一个有效等价类。
- 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
- 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
- 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
- 应用的范围
1) 功能层次---有编辑框的功能: 登陆, 注册, 新建, 查询
2) 业务层次---需要结合具体的业务,下面以证券行业为例:
- 股票种类:
![](https://i-blog.csdnimg.cn/blog_migrate/8c5bed28c81a502a45505f349df1ca4f.jpeg)
- 股票处理状态:
- 步骤
1) 根据等价类划分原则,识别等价类, 并划分有效等价类和无效等价类
2) 填写等价类表 & 为每个有效和无效等价类编号
3) 根据等价类表,以下2个原则设计测试用例:
- 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
- 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
4. 案例
测试功能点: http://www.emoney.cn/product/ggzd.html 个股诊断功能
功能说明: 只支持对沪深A股进行体检!
输入框规则: 输入代码,名称或拼音
等价类--分析过程
1) 识别等价类, 并划分有效等价类和无效等价类
- 股票代码位数
有效等价类: 6位
无效等价类: 非6位
- 股票代码字符规则
有效等价类: 数字,字母,名称
无效等价类: 数字和字母组合,数字和名称组合,名称和字母组合,特殊字符,其他
- 业务层面:
有效等价类: 沪深A股
无效等价类: 股票非沪深A股,其他
2) 填写等价类表 & 为每个有效和无效等价类编号
3) 根据等价类表,依据2个原则,设计测试用例:
共32条用例
用例编号 | 股票代码 | 覆盖等价类 |
1 | 600000 | 1、2、5、39 |
2 | lggf | 1、3、5、7 |
3 | …… | 1、4、6、8 |
4 | …… | * 9 |
5 | …… | * 10 |
6 | …… | * 11 |
7 | …… | * 12 |
8 | …… | * 13 |
9 | …… | * 14 |
10 | …… | * 15 |
11 | …… | * 16 |
12 | …… | * 17 |
13 | …… | 18 |
14 | …… | 19 |
15 | …… | 20 |
16 | …… | 21 |
17 | …… | 22 |
18 | …… | 23 |
19 | …… | 24 |
20 | …… | 25 |
21 | …… | 26 |
22 | …… | 27 |
23 | …… | 28 |
24 | …… | 29 |
25 | …… | 30 |
26 | …… | 31 |
27 | …… | 32 |
28 | …… | 33 |
29 | …… | 34 |
30 | …… | 35 |
31 | …… | 36 |
32 | …… | 37 |
33 | …… | 38 |
- 总结
划分等价类的方法:下面给出六条确定等价类的原则。
1) 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
2) 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
3) 在输入条件是一个布尔量的情况下,可确定一个有效等价类。
4) 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
5) 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
6) 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。