大家好,我是十一。
前情回顾
上面一篇我们讲了错误推测法,我们先来回顾下:
今天,我们讲另外一种重要的设计方法:正交实验法(正交表达式法)
正交实验法
概念:
前面我们讲到因果图和判定表法,可以看出因果关系非常庞大,导致由此得到的测试用例数目多大。因而引入正交试验法,从大量的试验数据中挑选适量的、有代表性的点安排测试,来有效地、合理地减少测试的工时。
正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验。
元素组成:
因素:在一项试验中,把被测试的元素称为因素(因子)。
水平数:在试验过程中,每一个因素有不同的取值,把因素的这些值,称为因素的水平,简称水平。
行数:正交表中的行的个数,即试验的次数,我们把他成为行数,也是通过正交实验法设计的测试用例的个数
三者之间的关系为:L行数(水平数^因素数)。一般用L代表正交表。
建立正交表的步骤:
1.确定因素
2.确定因素的取值范围或集合(该步是为步骤3做准备的)
3.确定每个因素的水平
根据因素的取值范围或集合 ,采用等价类划分、边界值分析以及其他软件测试技术,在每个因素的取值范围或集合内挑选出有效等价类、无效等价类、正好等于、刚刚大于或刚刚小于边界值等有代表性的测试值。
4.选择正交表
根据确定的因素和水平 ,选择适合的正交表。如果没有合适的正交表可用或需要的测试用例个数太多 ,要对因素和水平进行调整。
正交表解析:
正交表是由因素、水平、行数组成的二维表格。以L4(2^3)为例,如下图所示:
常用的正交表有如下几种(因为编辑器对这种写法不太友好,所以我们这里采用图片方式给大家展示):
以L8(2^7)为例,其中7为此表列的数目(最多可安排的因子数,即被测试的元素为7);2为因子的水平数(即被测试元素的取值为2个);8为此表行的数目(也就是试验次数);
又如L18(2*3^7),7列是3水平的(有7个被测试元素的取值都是3个),有1列是2水平的(有一个被测试元素的取值是2个),用它来安排试验,做18个试验即可完成
试验次数(行数)=∑(每列水平数-1)+1,∑表示因子。
如L8(2^7),8=7* (2-1)+1,利用上述关系式可以从所要考察的因子和水平数来决定最低的试验次数,进而选择合适的正交表。比如要考察5个3水平因子及1个2水平因子,则 起码的试验次数为5*(3-1)+1*(2-1)+1=12(次),可选用既有2水平列又有3水平列的正交表,L18(2*3^7)。
实例:
假设现在我要在门课生活上订鲜花,有如下几个选项:
鲜花系列:尊贵、优雅;
配送时间:工作日、双休日;
购买套餐:1年期、3年期;
1.先确定因素,即被测试元素:鲜花系列、配送时间、购买套餐
2.确定因素的水平数,即被测试元素的取值个数:根据需求可知,每个因素的水平数均是2
如果是我们做全面测试,我们要进行2^3=8(2*2*2=8);即总共要进行8次测试;具体如下:
那如果我们要做正交测试呢?我们如何选择正交表?根据上面分析可以得出,我们的因素是3,因素的水平数均是2,那我们刚好有L4(2^3)的正交表可以套用;即我们总共只需要进行4次测试即可。具体如下:
具体为什么是这4条测试用例?我们这次的例子所有因子取值都一样,那现实生活中不一样的时候多了,不一样的时候我们又该如何测试呢?大家不妨先自己思考思考或者动手去查一查,找找答案;然后呢?敬请期待十一的下回分解!
好了,今天到此结束。如有任何问题请留言及时与我沟通,我会尽快回复大家!谢谢大家~我们下次再见!