用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;
对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;
具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。
用n个不同的拉丁字母排成一个n阶方阵(n<26),如果每行的n个字母均不相同,每列的n个字母均不相同,即每个字母在任一行、任一列中只出现一次,则称这种方阵为n*n拉丁方或n阶拉丁方。
如,3阶拉丁方
![a619f27ed3f19bbef066ca98acbfbc5d.png](https://i-blog.csdnimg.cn/blog_migrate/704a5b6887fe9063773ef12f44261130.png)
什么是正交拉丁方?
设有两个n阶的拉丁方,如果将它们叠合在一起,恰好出现n^2个不同的有序数对,则称为这两个拉丁方为互相正交的拉丁方,简称正交拉丁方
用数字替代拉丁字母
![3e8ed51605bd339598d6ab5d747058f7.png](https://i-blog.csdnimg.cn/blog_migrate/5491780934ed94ac0802cc2b7eb7c600.png)
正交试验设计的基本概念
在一项试验中,把影响试验结果的量称为试验因素(因子),简称因素。因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。
将正交试验选择的水平组合,列成表格,称为正交表。
正交表具有以下两个特点,即正交性。正交表必须满足这两个特点,有一条不满足,就不是正交表。
1)每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。
2)在任意2列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性
正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。
例如,要考察正常值、错误值和边界值对某软件界面的影响。每个因素设置3个水平进行试验。A因素是正常值,设 A 1、A 2 、A 3 3个水平;B因素是错误值,设B1 、B 2 、B 3 3 个水平;C 因素为边界值,设C 1、C 2 、C 3 3个水平。这是一个3 因素 3 水平的试验,各因素的水平之间全部可能组合有27(即3^3)种。
全面试验:可以分析各因素的效应,交互作用,也可选出最优水平组合。但全面试验包含的水平组合数较多,工作量大,在有些情况下无法完成。
若试验的主要目的是寻求最优水平组合 ,则可利用正交表来设计安排试验。
正交试验设计的基本特点是:用部分试验来代替全面试验,通过对部分试验结果的分析,了解全面试验的情况。
正因为正交试验是用部分试验来代替全面试验的 ,它不可能像全面试验那样对各因素效应、交互作
用一一分析;当交互作用存在时,有可能出现交互作用的混杂。虽然正交试验设计有上述不足,但它能通过部分试验找到最优水平组合,因而很受实际工作者青睐。
如对于上述 3 因素 3 水平试验 ,若不考虑交互作用,可利用正交表L9(33) 安排,它表示需作9次实验,最多可观察3个因素,每个因素均为3水平,试验方案仅包含9个水平组合,就能反映试验方案包含27个水平组合的全面试验的情况,找出最佳的生产条件。
正交试验设计方法
与一般的试验设计类似 ,用正交试验设计方法设计测试用例时主要包括以下步骤:
(1) 确定因素
这里的因素是指对软件运行结果有影响的软件
(2) 确定因素的取值范围或集合(该步是为步骤3做准备的)
因素的取值范围是指软件输入的取值范围或集合以及可用的硬件资源。
(3) 确定每个因素的水平
根据因素的取值范围或集合 ,采用等价类划分、边界值分析以及其他软件测试技术,在每个因素的取值范围或集合内挑选出有效等价类、无效等价类、正好等于、刚刚大于或刚刚小于边界值等有代表性的测试值。
(4) 选择正交表
根据确定的因素和水平 ,选择适合的正交表。
如果没有合适的正交表可用或需要的测试用例个数太多 ,要对因素和水平进行调整。
正交表的构成:
l 行数(Runs):正交表中的行的个数,即试验的次数,也是通过正交实验法设计的测试用例的个数
l 因素数(Factors):正交表中列的个数,即要测试的功能点。
l 水平数(Levels):任何单个因素能够取得的值的最大个数,即要测试功能点的输入值
L行数(水平数因素数),
如:L8(27)
![7f5859e4aa350a5d49e25454f22ea393.png](https://i-blog.csdnimg.cn/blog_migrate/3f8dd32f922635aa5b966a774a1d2fcc.png)
如:L9(34)
![e7f672532ce1dc8e82c77de23ccb7e5a.png](https://i-blog.csdnimg.cn/blog_migrate/353d97647c5493e01ff7e7c043d91027.png)
扩展的正交表
L8(4×24)
行数为mn型的正交表中
试验次数(行数)=∑(每列水平数-1)+1
例:5个3水平因子及一个2水平因子,表示为35*21,试验次数=5*(3-1)+1*(2-1)+1=12,
即L12(35*21)
(5) 测试结果分析
加上你认为可疑且没有在表中出现的组合。
应用举例
例1:因素数与水平数刚好符合正交表
![58bc6f8ef1c159a076890421119c0d19.png](https://i-blog.csdnimg.cn/blog_migrate/bbc92675aabb02134987d83d0c262e6c.png)
确定因素及因素的水平
要测试的控件有3个,也就是要考虑的因素有三个;
姓名
身份证号码
手机号码
每个因素里的状态即水平,有两个:填与不填。
![64ee5e3fdf73edc3532449aac3c9702c.png](https://i-blog.csdnimg.cn/blog_migrate/70fb825a5868dc7075e3048e7f35683d.png)
选择正交表
表中的因素数>=3;
表中至少有3个因素数的水平数>=2
行数取最少的一个,即试验次数最少的一个
说明:并不是我们想要什么正交表就有什么正交表,有的正交表是没有被设计出来的,我们选取正交表时只能从现有的正交表中进行选择,而且选择的正交表要满足上述中的因素数和因素水平,在这个前提下选择试验次数最少的一个。
从正交表公式中开始查找,结果为: L4(23)
生成正交表
![64ee5e3fdf73edc3532449aac3c9702c.png](https://i-blog.csdnimg.cn/blog_migrate/70fb825a5868dc7075e3048e7f35683d.png)
编写测试用例
1:填写姓名、填写身份证号、填写手机号
2:填写姓名、不填身份证号、不填手机号
3:不填姓名、填写身份证号、不填手机号
4:不填姓名、不填身份证号、填写手机号
增补测试用例
5:不填姓名、不填身份证号、不填手机号
测试用例可以看出:如果按每个因素两个水平数来考虑的话,需要8个测试用例,而通过正交实验法进行的测试用例只有5个,大大减少了测试用例数。用最小的测试用例集合去获取最大的测试覆盖率。
例2:word字体样式测试
假设功能描述如下:
字体样式:宋体,黑体,楷体
字号:大,中,小
颜色:红,蓝,绿,黑
下划线:加下划线,不加下划线两种方式
被测项目中一共有四个被测对象,每个被测对象的状态都不一样。
选择正交表:
1、表中的因素数>=4
2、表中至少有4个因素的水平数>=2
3、行数取最少的一个
4、最后选中正交表公式:L16(45)
问题:多出一个因素咋办?没事,空着就好了
![5d46511a2a882ff95ec4a7ce208c3175.png](https://i-blog.csdnimg.cn/blog_migrate/79aaf6b81b796a023ffb69234f265e1c.png)
生成表
![5567f2102c731762a7d5d911fa7bab8b.png](https://i-blog.csdnimg.cn/blog_migrate/8fbd359814d4c66fe9092e04fe13c708.jpeg)