测试九、正交表法

解决了什么问题: 在不互相影响排列组合的时候使用
正交表有效的减少了测试用例的条数, 利用了数学里面的矩阵和概率方面的知识
正交表排列法:
                   正交排列法能够使用最小的测试过程集合获得最大的测试覆盖率。当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。

正交表的概念:
                    测试九、正交表法_第1张图片

                           n  代表行数,每一行都是一条组合的测试用例
                           k 代表控件个数(因素)
                           m  代表每个控件的可选值(水平)
                           整个表达式叫做
  k因素m水平, 总共有n个测试用例
如何选择正交表?  
     
    正交表不需要自己画, 根据确定的因素数和水平数 ,来选择现成的正交表使用

正交试验设计:
            是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验设计方法。

案例: 字符属性设置程序
                                           测试九、正交表法_第2张图片
 窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值
  字体:仿宋、楷体、华文彩云
  字符样式:粗体、斜体、下划线
  字体颜色:红色、绿色、蓝色
  字号:20号、30号、40号

在测试时,要考虑这些控件的组合情况,组合量非常大(有3^4 =81种组合情况)
组合量大,不可能为每一种组合都创建测试用例。如何采用最少的测试用例集合获得最大的测试覆盖率—采用正交排列法
 

正交排列法的使用步骤

1. 根据所测程序中控件的个数(因素)以及每个控件的取值个数(水平),选取一个合适的正交排列表
2. 把控件及其取值列举出来,并对其进行编号
                      
测试九、正交表法_第3张图片
3. 把控件及其取值映射到正交排列表中,根据对照表, 把对照表映射到正交表中
           把正交排列表中的ABCD(因子)分别替换成4个控件
           把每列中的1,2,3(状态)分别换成这个控件的3个取值(水平),排列顺序要按照表中给出的顺序
            每列的123都代表不一样的因子, 根据对照表按列进行替换

           测试九、正交表法_第4张图片
4. 根据映射好的正交排列表编写测试用例

           测试九、正交表法_第5张图片
这是进行测试的最少组合数量,但是,在测试中有72种(81-9)组合没有测试到。当然,如果时间允许,应该再补充一些用例。因为遗漏的组合越多,存在缺陷的可能性就越大。(时间问题!内测、公测)


 查找常见正交表 http://support.sas.com/techsup/technote/ts723_Designs.txt
 

 

案例: 
选择正交表要遵循靠近原则, 但是不能少 


有五个因素:  音形码、拼音码、路名码、行业类别、特征码
每个因素有两个水平: 音形码: 填、不填
                                     拼音码: 填、不填
                                     路名码: 填、不填
                                    行业类别:填、不填
                                     特征码:填、不填

完全测试需设计用例数:2^5=32
选择正交表
             表中的因素数>= 5
             表中至少有五个因素的水平数>= 2

             行数取最少的一个
             结果:

映射表: 
         
测试九、正交表法_第6张图片  
替换数据,按列进行替换

       测试九、正交表法_第7张图片
最后两列是多余的,可以删掉,最后的用例就是:      
       测试九、正交表法_第8张图片
 


混合正交表:
使用正交排列法的局限性
目前常见的正交排列表只有前面附录文件中给出的几种
即使是已有的正交排列表,基本都要求每个控件中取值的个数要相等,这在实际软件中很少遇到。

如果每个控件(因素)的水平数都不一样,就不是正常正交表了,需要用到混合正交表
水平数不同
              因素(变量)的水平数(变量的取值)不相同

案例:
       
  假设有一个系统有 5个独立的变量(A,B,C,D,E)
         变量 A和B都有两个取值(A1、A2和B1、B2)
         变量C和D都有三个可能的取值(C1、C2、C3和D1、D2、D3)
          变量 E有六个可能的取值(E1 、E2 、E3 、E4 、E5 、E6)

有五个因素(变量) :A、B、C、D、E

两个因素有两个水平(变量的取值) 、两个因素有三个水平,一个因素有六个水平
           A:A1 、A2
           B:B1 、B2
           C:C1 、C2 、C3
           D:D1 、D2 、D3
           E:E1 、 E2 、E3 、E4 、E5 、E6

           
           AB是2因素2水平, CD是2因素3水平, E是1因素6水平, 选择现成的正交表接近的是
           13因素2水平, 实际只有2因素2水平, 其他的9因素可以删掉

在常用正交表没有就近的正交表可以选择, 就需要用到正交表设计软件去设计了(参考测试第十篇文章)

注意:  如果没有对应的正交表,要找到最近的表(只能多, 不能少) 

你可能感兴趣的:(#,软测理论)