ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

测试用例设计方法小结-正交表

2021-06-06 15:36:16  阅读:207  来源: 互联网

标签:小结 正交 A1 测试用例 C3 C2 C1 D2 D1


测试场景

在股票交易中,我们作为投资者,首先需要开一个证券账户,证券账户有很多种类,比方说普通资产账户、信用账户、期权账户等等,每个账户都会有状态,正常交易,冻结,又或者是销户。证券账户开完之后,也不是所有业务都能做,比方说科创板,创业板是有门槛的。到了交易的环节,可交易的种类也有很多种,债券,期货,股票等等。
作为一个测试人员,面对,5个限制条件,每个限制条件3种情况,测试用例数就可能是33333=243条用例,现实情况可能限制条件更多,那在这种情况下,该如何编写测试用例,用最少的用例数,尽可能的实现100%覆盖呢,这里就可以用到正交表

正交表

1 2 3
1 1 1 1
2 1 2 2
3 2 1 2
4 2 2 1

从测试的角度来看一个常见的正交表,行代表测试用例数,列代表限制条件,表格中的1,2即是限制条件有多少种情况。从数学的角度来说,这个正交表就是一个包含4次实验,每次最多观察3个因素,每个因素2水平的正交表。
正交表具有以下两个特性:

每一列中,不同的数字出现的次数相等
任意两列中数字的排列方式齐全而且均衡。可以看上面的正交表,任意两列都有(1,1)(1,2)(2,1)(2,2)

这就体现出了正交表的“均匀分散性,整齐可比”,每个因素的每个水平与另一个因素各水平都只各碰一次。

正交表行数计算

试验次数(行数)=∑(每列水平数-1)+1
例:
3因素,2水平,行数=(2-1)3+1=4
5因素,4个2水平,1个3水平,行数=(2-1)
4+(3-1)*1+1=7

测试用例设计

思路

首先,思考有哪些变量,每个变量有哪些取值
然后,根据变量,和值的数量选择一个合适的正交表,将值映射到表中(前重后轻)
最后,把每一行作为一个测试用例,并观察所有用例,看是否有你认为重要但缺少的用例场景,补充上去,毕竟我们的目标仍然是覆盖尽可能全的测试场景。

水平数不同时的设计方法

其实现实中很多测试场景的变量取值数量大都不同,这里总结两种方法,合并拆分法,删减法

合并拆分法

举个栗子

状态/因素 A打印范围 B打印内容 C打印颜色 D打印效果
0 A1全部 B1幻灯片 C1颜色 D1幻灯片加框
1 A2当前幻灯片 B2讲义 C2灰度 D2幻灯片不加框
2 A3给定范围 B3备注页 C3黑白
3 B4大纲视图

然后我们可以将多出来的因素进行合并,就变成了4因素3水平

状态/因素 A打印范围 B打印内容 C打印颜色 D打印效果
0 A1全部 B1、B2幻灯片、讲义 C1颜色 D1幻灯片加框
1 A2当前幻灯片 B2讲义 C2灰度 D2幻灯片不加框
2 A3给定范围 B3备注页 C3黑白

然后再挑选合适的正交表

行数/因素 A B C D
1 A1 B1\B2 C1 D1
2 A1 B3 C3 D2
3 A1 B4 C2
4 A2 B1\B2 C3
5 A2 B3 C2 D1
6 A2 B4 C1 D2
7 A3 B1\B2 C2 D2
8 A3 B3 C1
9 A3 B4 C3 D1

把合并的状态展开,把实际状态数偏少的值用任意尸体数替换

行数/因素 A B C D
1 A1 B1 C1 D1
2 A1 B2 C1 D1
3 A1 B3 C3 D2
4 A1 B4 C2 D2
5 A2 B1 C3 D1
6 A2 B2 C3 D2
7 A2 B3 C2 D1
8 A2 B4 C1 D2
9 A3 B1 C2 D2
10 A3 B2 C2 D2
11 A3 B3 C1 D1
12 A3 B4 C3 D1

最后我们的测试用例就是12条

删减法

仍然用上面的案例

状态/因素 A打印范围 B打印内容 C打印颜色 D打印效果
0 A1全部 B1幻灯片 C1颜色 D1幻灯片加框
1 A2当前幻灯片 B2讲义 C2灰度 D2幻灯片不加框
2 A3给定范围 B3备注页 C3黑白
3 B4大纲视图

我们根据它的因素数水平数,选择一个行数最少的正交表,这个案例我们选择的是4因素5水平的正交表

行数/因素 A B C D E
1 A1 B1 C1 D1 0
2 A1 B2 C2 D2 1
3 A1 B3 C3 2 2
4 A1 B4 3 3 3
5 A2 B1 C2 2 3
6 A2 B2 C1 3 2
7 A2 B3 3 D1 1
8 A2 B4 C3 D2 0
9 A3 B1 C1 3 1
10 A3 B2 C2 2 0
11 A3 B3 3 D2 3
12 A3 B4 C3 D1 2
13 3 B1 3 D2 2
14 3 B2 C3 D1 3
15 3 B3 C2 3 0
16 3 B4 C1 2 1

然后删除多余的E列,将数字部分按水平值顺序填写补充完整

行数/因素 A B C D
1 A1 B1 C1 D1
2 A1 B2 C2 D2
3 A1 B3 C3 D1
4 A1 B4 C1 D2
5 A2 B1 C2 D1
6 A2 B2 C1 D2
7 A2 B3 C2 D1
8 A2 B4 C3 D2
9 A3 B1 C1 D1
10 A3 B2 C2 D2
11 A3 B3 C3 D2
12 A3 B4 C3 D1
13 A1 B1 C1 D2
14 A2 B2 C3 D1
15 A3 B3 C2 D1
16 A1 B4 C1 D2

删除由于四个因素里有三个的水平值小于等于3,所以第13行到16行的测试用例可以忽略

行数/因素 A B C D
1 A1 B1 C1 D1
2 A1 B2 C2 D2
3 A1 B3 C3 D1
4 A1 B4 C1 D2
5 A2 B1 C2 D1
6 A2 B2 C1 D2
7 A2 B3 C2 D1
8 A2 B4 C3 D2
9 A3 B1 C1 D1
10 A3 B2 C2 D2
11 A3 B3 C3 D2
12 A3 B4 C3 D1

工具

自行搜索allpairs,一个根据正交表自动生成测试用例场景的小工具

标签:小结,正交,A1,测试用例,C3,C2,C1,D2,D1
来源: https://www.cnblogs.com/SmallSky-BigWorld/p/14553558.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有