(八)正交表实验法

来源:互联网 发布:c语言中函数中参数 编辑:程序博客网 时间:2024/06/10 08:57

1.定义:

从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等。利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

2.利用正交实验设计测试用例的步骤:

1).提取功能说明,构造因子--状态表

把影响实验指标的条件称为因子.而影响实验因子的条件叫因子的状态.利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子,而把各个因子的取值当作状态.对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的基本的功能要求.这样就可以把被测试软件中所有的因子都确定下来,并为确定个因子的权值提供参考的依据.确定因子与状态是设计测试用例的关键.因此要求尽可能全面的正确的确定取值,以确保测试用例的设计作到完整与有效。

2).加权筛选,生成因素分析表

对因子与状态的选择可按其重要程度分别加权.可根据各个因子及状态的作用大小,出现频率的大小以及测试的需要,确定权值的大小。

3).利用正交表构造测试数据集

利用正交实验设计方法设计测试用例,比使用等价类划分,边界值分析,因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。

3.1正交表的基本性质

1)正交性

(1)任一列中,各水平都出现,且出现的次数相等

    例如L8(27)中不同数字只有1和2,它们各出现4次;L9(34)中不同数字有1、2和3,它们各出现3次 。

(2)任两列之间各种不同水平的所有可能组合都出现,且对出现的次数相等 

例如 L8(27)中(1, 1), (1, 2), (2, 1), (2, 2)各出现两次;L9(34) 中 (1, 1),  (1, 2),  (1, 3),  (2, 1),  (2, 2),  (2, 3),  (3, 1),  (3, 2),  (3, 3)各出现1次。即每个因素的一个水平与另一因素的各个水平所有可能组合次数相等,表明任意两列各个数字之间的搭配是均匀的。

2代表性

一方面:

1)任一列的各水平都出现,使得部分试验中包括了所有因素的所有水平;

 (2)任两列的所有水平组合都出现,使任意两因素间的试验组合为全面试验。

另一方面:由于正交表的正交性,正交试验的试验点必然均衡地分布在全面试验点中,具有很强的代表性。因此,部分试验寻找的最优条件与全面试验所找的最优条件,应有一致的趋势。 

3综合可比性

(1)任一列的各水平出现的次数相等;

(2)任两列间所有水平组合出现次数相等,使得任一因素各水平的试验条件相同。这就保证了在每列因素各水平的效果中,最大限度地排除了其他因素的干扰。从而可以综合比较该因素不同水平对试验指标的影响情况。

正交表的三个基本性质中,正交性是核心,是基础,代表性和综合可比性是正交性的必然结果 

 

4)生成的步骤

® 1 有哪些因素(变量)

® 2 每个因素有哪几个水平(变量的取值)

® 3 选择行数最少的正交表

® 4 把变量的值映射到表中

® 5 把每一行的各因素水平的组合做为一个测试用例

® 6 加上你认为可疑且没有在表中出现的组合

计算行数:

正交表行数的确定:

试验次数(行数)=∑(每列水平数-1)+1

例:5个3水平因子及一个2水平因子,表示为35*21,试验次数=5*(3-1)+1*(2-1)+1=12,即L12(35*2) 

5)判断是否可以使用正交表

1)并不是任何情况下都可以使用正交表,以下情况无法使用正交表:

Ø 因素的个数非常少,如只有2个;

Ø 因子数很大。

2)另外在识别的因子中,还要进行一下分析:

Ø 组合因素之间必须为平行关系(平行:可以同时存在)

Ø 不能为互斥(互斥:1个因素存在,另1个因素不能存在)

Ø 因素不能被其他因素的因子制约(制约:当A因素的因子为A1,B因素不能存在)

Ø 排除非组合因素

 

6)选择正交表的原则

 

如果判断可以使用正交测试大方法设计用例,需要根据测试功能点的时间情况,选择正交表。选择正交表的原则如下:

1)因素数<=正交表因素数;

2)每个因子数<=正交表每个因子数;

3)如果出现2个或2个以上正交表符合以上条件,则选择Case数最少的正交表。

选取了正交表后,删除正交表中多余的因子列,原则是删除靠后的列。

4)对因子与状态的选中可按其重要程度分别加权。可根据各个因子及状态的作用大小。对于权重高的因子放在最前面的列中,以此类推。

或是选中如下的描述:

 

Ø 表中的因素数>=5

Ø 表中至少有5个因素的水平数>=2

Ø 行数取少的一个

Ø 结果:

 

 

3.2 引用的例子

产品文件查询为例子

 

下图是文件上传列表的页面,要测试的控件有3个,也就是要考虑的因素有三个:项目名称、产品型号、文件名称,而且每个因素有两个状态,填或是不填。表中的因素数>=3;表中至少有3个因素的水平数>=2,行数取最少的一个。从正交表公因式中开始查找,结果为:,即实验4次。

 

共有8条测试用例,如下图:


3.3 引用LMS引用的例子

 

以发邮件为例子,发邮件在LMS上的需求是:收件人和正文必须填写,主题和附件可以不填。

1)列出因素数和水平数:

1)收件人:单用户、多用户(已经存在的用户)

2)正文:图片、非图片(文字类型)

3)主题:可填、可不填

4)附件:可填、可不填

因素数是:收件人,正文,主题,附件

水平数是:2(每一个因素数都是2 

确定行数:

2水平的有两种:一种是;另一种是。所以采用的是。

2)把变量映射到表中



补充的测试用例:

实验9:一个用户,图片,可不填,可不填

实验10:多个用户,非图片,可填,可填

如果按照判定驱动表法的列出共有:2*2*2*2=16种,现在采用正交表实验法功能有:8+2=10种,少了16-10=6种测试用例

设计的用例如下:








0 0