一、应用场合
在一个界面中,有多个控件,每个控件有多种取值,控件取值组合数量很大,不可能(没必要)为每一种组合编写一条用例。【若编写,则成穷举测试了】
使用最少最优的组合进行测试—–正交排列法
区别:
判定表(因果图)也是考虑控件组合,但是组合数量较少(一般不会超过20种),而且要求测试全面
二、正交表
三、使用正交排列法分析程序
1、分析需求–把控件及其取值列举出来
2、根据控件和控件的取值个数,选择一个合适的正交表
(1)根据控件的个数,确定正交表的次幂,也就是正交表的列数
4个控件—–选4次幂
(2)根据控件取值个数,选择正交表的底,也就是正交表中包含数的最大值
每个控件有3个取值—底是3
3、把控件及其取值映射到正交表中
(1)把控件名称分别放到正交表的列名位置
(2)把正交表中每一列的数字分别用对应的控件取值替代
4、根据正交表,编写用例
把正交表的一行转换为一条用例
4、练习2
控件数目为3,每个控件取值个数为3,在常见的正交表中没有这种,此时选择控件大于3的最小控件个数。
比如本例中选择空间数目为4,因为本身需求是无第四个控件的,所以将第四控件列删除即可。
5、说明
使用正交表设计的用例是最少最优化的用例,如果有时间,可以补充用例。
6、常见正交表
7、正交表的局限性
正交表个数有限,并且一般要求每个控件的取值个数相等,在实践中很难遇到
8、正交表选择数据思想: 公平、均匀
(1)公平:每个控件都要参与组合(每行),每个控件的取值参与组合的次数尽量相同(每列)
(2)均匀:从所有的组合数据中,均匀、零星的挑选作为用例的组合数据,而不是只从某个局部选取。
9、没有现成的正交排列怎么办?
(1)次幂:控件的个数,没有争议,如果没有,就选一个接近的
4个控件,选4次幂
(2)底:
方案1:少数服从多数原则(有更多的控件取值一样)
在本例中有两个控件的取值为3,则则应该选底为3,否则选择一个接近的。
方案一:
因为选择的控件的值有3个,而有些控件的值为4个,所以要在3后面先补上4;有的控件的值为2个,用不了3个,所以可以先在正交表上对应3位置写1/2。
在3后面补4的,写在下一行处。这样就多出了3行,每行中要尽可能的让更多的控件参与(不是绝对的原因:可能存在不能组合的情况),因为A有3个取值,所以各取一个即可;C类似;D 若A取4,则D置灰,所以不参与组合
方案二:按取值最多原则:看哪个控件取值最多
打印内容有四个取值,选底为4(确定),次幂本应为4,但是常见正交表中没有这种,所以选择一个大于4的最小次幂