2.3.2 从状态转换图到状态转换表
状态转换图也可以转换为状态转换表,方法是:表头和第一列依次对应各个节点,如果这个节点与所对应的节点有链接,在表中值为边值,否则值为X。视频播放软件状态转换表见表2-14。
表2-14 视频播放软件状态转换表
开机 |
运行 |
快进 |
停机 |
|
开机 |
X |
X |
X |
X |
运行 |
a |
X |
d |
X |
快进 |
X |
b |
c |
X |
停机 |
X |
e |
X |
X |
对于表2-14,可以设计进行破环性测试用例,主要针对表中的X地方,如:快进到停机为X,这样可以设计一个测试用例,当播放软件处于快进阶段,强制按停止键,看系统会发生什么反应,说不定这里就有一个Bug(对于用户友好性测试的建议,当系统处于播放时,【运行】按键是虚的;当系统处于快进时,【停止】按键是虚的;当系统处于停止时,【快进】按键是虚的。)
2.3.3 业务流程状态转化法
笔者在软件测试实践中,发现状态转换法也可以运用在流程控制系统测试用例设计中,以设计出对每一个环节进行有效遍历的测试用例。
案例2-11:电子商务购物。
图2-8是电子商务购物的业务流程状态转化图。
图2-8 电子商务购物的业务流程状态转化图
由于图2-8很复杂,所以只需对关键部分进行0-switch展开就够了,如图2-9所示。
图2-9 电子商务购物的业务流程状态转化树
这样设计出以下5个测试用例。
(1)登录->首页->查看商品->查看商品详情->下单->付款。
(2)登录->首页->修改用户信息->返回首页->查看商品->查看商品详情->查看其他商品详情->下单->付款。
(3)登录->首页->查看商品详情->下单->付款。
(4)登录->首页->查看商品详情->查看购物车->下单->付款。
(5)登录->首页->重置密码->返回首页->查看商品详情->查看商品->查看购物车->下单->付款。
注:这里默认查看商品详情就是把这个商品放入了购物车。
对于业务流程,设计到0-switch就可以了。
2.5 运用正交法设计测试用例
案例2-14:网站兼容性组合测试[J1]
本节介绍采用正交法设计多种组合情况下的测试用例。
下面是软件测试某网站系统的例子。[J2]
(1)8种浏览器:IE9、IE10、IE11、Netscape9.0、火狐36、Safari5.3、Firefox 35、百度7.2。
(2)3种Office插件:Office 2007、Office 2010、Office 2013。
(3)6种客户端操作系统:Windows XP、Windows Vista、Windows 8.0、Windows 8.1、Windows 9、Windows 9.1。
(4)3种服务器软件:IIS、Apache、WebLogic。
(5)3种服务器端操作系统:Windows 2003、Windows 2008、Linux。
如果达到100%组合的软件测试,需要设计8×3×6×3×3=1296个测试用例,这个数据非常庞大,利用正交法可以在最大程度上减少测试用例,而且可以保证软件测试一定的可靠性。下面简单介绍一下正交法。
2.5.1 正交法
正交法又称两两组合法,它保证测试用例中的两两组合不同,但两两覆盖所有的组合。比如,现在有3个变量,每个变量有两种取值,标记为0和1。这样,测试用例为2×2×2=8个,这种情况下的正交表见表2-15。
表2-15 L4(23)正交表
行号 |
A |
B |
C |
1 |
0 |
0 |
1 |
2 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
4 |
1 |
1 |
1 |
第1,[J3] 3,2,4行,AB分别对应00,[J4] 01,10,11(满足了0和1的所有4种组合);[J5]
第2,1,3,4行,BC分别对应00,01,10,11(满足了0和1的所有4种组合);
第3,1,2,4行,AC分别对应00,01,10,11(满足了0和1的所有4种组合)。
这样,8个测试用例就被简化为4个,减少率为50%。这种情况标记为:
L4(23)
这里,2代表有2个取值,3代表有3个变量,4代表有4种组合。
2.5.2 浏览器组合软件测试
下面介绍本节开始的那个网站如何使用正交法来设计测试用例。
(1)8种浏览器:IE9、IE10、IE11、Netscape9.0、火狐36、Safari5.3、Firefox 35、百度7.2。
(2)3种Office插件:Office 2007、Office 2010、Office 2013。
(3)6种客户端操作系统:Windows XP、Windows Vista、Windows 8.0、Windows 8.1、Windows 9.0、Windows 9.1。
(4)3种服务器软件:IIS、Apache、WebLogic。
(5)3种服务器端操作系统:Windows 2003、Windows 2008、Linux。
8个取值有1个,6个取值有1个,3个取值有3个,所以需要找到是否存在816133正交表,这样的正交表不存在,但是在正交表中找到了最接近的L64(8243)表,为此需要对原来的取值进行调整,加入No used选项,调整后的结果如下。
(1)8种浏览器:IE9、IE10、IE11、Netscape9.0、火狐36、Safari5.3、Firefox 35、百度7.2。
(2)3种Office插件:Office 2007、Office 2010、Office 2013、No used。
(3)6种客户端操作系统:Windows XP、Windows Vista、Windows 8.0、Windows 8.1、Windows 9.0、Windows 9.1、No used、No used。
(4)3种服务器软件:IIS、Apache、WebLogic、No used。
(5)3种服务器端操作系统:Windows 2003、Windows 2008、Linux、No used。
L64(8243)的正交表如图2-13所示。
图2-13 L64(8243)正交表
用相应的值代替表中的数字,见表2-16所示。
表2-16 网站兼容性测试与正交表替换
编号 |
浏览器 |
Office插件 |
客户端操作系统 |
服务器软件 |
服务器端操作系统 |
1 |
IE 9 |
Office2007 |
Windows XP |
IIS |
Windows 2003 |
2 |
IE 10 |
Office2010 |
Windows Vista |
Apache |
Windows 2008 |
3 |
IE 11 |
Office2013 |
Windows 8.0 |
WebLogic |
Linux |
4 |
Netscape 9.0 |
No used |
Windows 8.1 |
No used |
No used |
5 |
火狐36 |
Windows 9.0 |
|||
6 |
Safari5.3 |
Windows 9.1 |
|||
7 |
Firefox 35 |
No used |
|||
8 |
百度7.2 |
No used |
把所有的值都代入L64(8243)正交表,得到如表2-17所示。
表2-17 得到的测试用例
编号 |
浏览器 |
Office插件 |
客户端操作系统 |
服务器软件 |
服务器端操作系统 |
1 |
IE 9 |
Office 2007 |
Windows XP |
No used |
Windows 2003 |
2 |
IE 9 |
No used |
Windows 8.0 |
No used |
No used |
3 |
IE 9 |
No used |
Windows Vista |
IIS |
No used |
4 |
IE 9 |
Office 2007 |
Windows 8.1 |
WebLogic |
Windows 2003 |
5 |
IE 9 |
Office 2013 |
Windows 9.0 |
Apache |
Linux |
6 |
IE 9 |
Office 2010 |
Not used |
Apache |
Windows 2008 |
7 |
IE 9 |
Office 2010 |
Windows 9.1 |
WebLogic |
Windows 2008 |
8 |
IE 9 |
Office 2013 |
Not used |
WebLogic |
Linux |
9 |
IE 10 |
No used |
Windows XP |
Apache |
Linux |
10 |
IE 10 |
Office 2007 |
Windows 8.0 |
Apache |
Windows 2008 |
… |
这样,1296个测试用例就被简化为64个,减少率为95%。关于正交表如何获得,是有许多工具可以产生的,读者可以在网上搜索。
顾翔凡言:
敏捷具有适用性,即使用了敏捷,也不要做成假敏捷,掌握敏捷的真谛。