软件测试中正交法设计测试用例实例分析
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
目的
本文以一个转帐功能为例介绍了测试例估计和设计的方法。
例子说明
进行测试例估计和设计的依据是需求规格说明书和设计说明书。一般的步骤如下:
1.
2.
3.
4.
5.
例如在对某一应用系统的转账功能进行测试过程中,利用正交矩阵生成测试用例步骤如下:
1.约束条件分析:P5L4
标号 |
影响测试规格的要素 |
取值1 |
取值2 |
取值3 |
取值4 |
1 |
用户权限 |
有转账权限 |
无转账权限 |
|
|
2 |
票据号 |
票据号有效 |
票据号无效 |
|
|
3 |
账号 |
账号有效 |
账号无效 |
|
|
4 |
转账金额 |
转账金额小于或等于用户实际金额 |
转账金额大于用户实际金额 |
|
|
5 |
转账方式 |
同城不同行转账 |
同行转账 |
异地电汇 |
异地信汇 |
注:P表示影响测试规格要素个数;L表示影响测试规格要素的最大取值个数
2.生成标准测试例集矩阵:
编号 |
用户权限 |
票据号 |
账号 |
转账金额 |
转账方式 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
2 |
2 |
2 |
3 |
1 |
3 |
3 |
3 |
3 |
4 |
1 |
4 |
4 |
4 |
4 |
5 |
2 |
1 |
2 |
3 |
4 |
6 |
2 |
2 |
1 |
4 |
3 |
7 |
2 |
3 |
4 |
1 |
2 |
8 |
2 |
4 |
3 |
2 |
1 |
9 |
3 |
1 |
3 |
4 |
2 |
10 |
3 |
2 |
4 |
3 |
1 |
11 |
3 |
3 |
1 |
2 |
4 |
12 |
3 |
4 |
2 |
1 |
3 |
13 |
4 |
1 |
4 |
2 |
3 |
14 |
4 |
2 |
3 |
1 |
4 |
15 |
4 |
3 |
2 |
4 |
1 |
16 |
4 |
4 |
1 |
3 |
2 |
图表 2
说明:首先分析第一个要素“用户权限”,其取值只有2个,即“用户权限”的值只有可能是1或2,这样3和4的取值所在的情况就可以删除,之后在考虑“用户权限”的2个取值的具体情况,一个是用户权限有效(1),另一个是用户权限无效(2),当取值为有效时,所有的情况都可以保留,当取值为无效时,只保留一个就可以了(一旦最高优先级的条件不能满足,那么其他低优先级的条件就不需要考虑),然后用同样的方法判断其他的条件,最后等到一个临时结果(编号1,2,5),这时可以从最后一个要素开始分析,要使最后一个要素有意义那前4个要素必须都成立(值为1),而要素“转帐方式”有4种取值而现在的结果中有效情况只有一种(No1),所以可以增加3种(即,见表4中No2,3,4)。现在考虑要素“转帐金额”,可以增加在前3个要素都成立时,“转帐金额”取值为大于用户实际金额的情况(即,见表4中No5)。接着考虑要素“帐号”,可以增加在前2个要素都成立时,“帐号”取值为帐号无效的情况(即,见表4中No6)。接着考虑要素“票据号”,可以增加在第一个要素都成立时,“票据号”取值为票据号无效的情况(即,见表4中No7)。这样就补齐了所有的情况,从而得到最终结果(表5)
3.筛选测试矩阵:
注:由于测试例矩阵是根据影响要素条件最大取值个数得出,因此不是所有影响要素的取值个数都与最大值相等,因此应将矩阵中不存在的测试例条件删除。
编号 |
用户权限 |
票据号 |
账号 |
转账金额 |
转账方式 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
2 |
2 |
2 |
3 |
1 |
3 |
3 |
3 |
3 |
4 |
1 |
4 |
4 |
4 |
4 |
5 |
2 |
1 |
2 |
3 |
4 |
6 |
2 |
2 |
1 |
4 |
3 |
7 |
2 |
3 |
4 |
1 |
2 |
8 |
2 |
4 |
3 |
2 |
1 |
9 |
3 |
1 |
3 |
4 |
2 |
10 |
3 |
2 |
4 |
3 |
1 |
11 |
3 |
3 |
1 |
2 |
4 |
12 |
3 |
4 |
2 |
1 |
3 |
13 |
4 |
1 |
4 |
2 |
3 |
14 |
4 |
2 |
3 |
1 |
4 |
15 |
4 |
3 |
2 |
4 |
1 |
16 |
4 |
4 |
1 |
3 |
2 |
图表 3
4.修改测试矩阵:
注:由于测试例矩阵是根据影响要素条件最大取值个数得出的,因此在删除测试例时应将因此导致测试矩阵范围不完整的测试例补充完整。
说明:编号5,6,7,8的情况中有“-”,其意义为“取任何值都不影响结果”
编号 |
用户权限 |
票据号 |
账号 |
转账金额 |
转账方式 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
1 |
1 |
1 |
2 |
3 |
1 |
1 |
1 |
1 |
3 |
4 |
1 |
1 |
1 |
1 |
4 |
5 |
1 |
1 |
1 |
2 |
- |
6 |
1 |
1 |
2 |
- |
- |
7 |
1 |
2 |
- |
- |
- |
8 |
2 |
- |
- |
- |
- |
图表 4
5.生成测试用例:
编号 |
用户权限 |
票据号 |
账号 |
转账金额 |
转账方式 |
1 |
有转账权限 |
票据号有效 |
账号有效 |
转账金额大于或等于用户实际金额 |
同城不同行转账 |
2 |
有转账权限 |
票据号有效 |
账号有效 |
转账金额大于或等于用户实际金额 |
同行转账 |
3 |
有转账权限 |
票据号有效 |
账号有效 |
转账金额大于或等于用户实际金额 |
异地电汇 |
4 |
有转账权限 |
票据号有效 |
账号有效 |
转账金额大于或等于用户实际金额 |
异地信汇 |
5 |
有转账权限 |
票据号有效 |
账号有效 |
转账金额小于用户实际金额 |
同城不同行转账 |
6 |
有转账权限 |
票据号有效 |
账号无效 |
转账金额大于或等于用户实际金额 |
同城不同行转账 |
7 |
有转账权限 |
票据号无效 |
账号有效 |
转账金额大于或等于用户实际金额 |
同城不同行转账 |
8 |
无转账权限 |
票据号有效 |
账号有效 |
转账金额大于或等于用户实际金额 |
同城不同行转账 |
图表 5
说明
使用直角矩阵的方法可以进行最初的测试分析设计和估计,但是随着项目的进展,测试组对系统的理解会逐渐加深,因此需要根据需要多次进行测试分析设计和估计。
文章来源于领测软件测试网 https://www.ltesting.net/