チョッコウ表测试实践

直交表スーパー実践塾

初めに:

在第一章里,我们做成了L4直交表,但是现实中使用的软件远远没有这样的简单.在第二章,我们将以解决现实问题我目标,还有直交表因子和水准的分割技巧方面做详细的介绍...

直交表による組み合わせテストを実施する前に:

在实施用直交表组合测试之前,有一件不得不做的事情,那就是单个机能的确认.在实施单体测试的时候,向下滑线,加粗等水准值少的情况是最好的...但是对于文字大小(22种类),颜色(1677万种类)这样的多水准数机能的情况下,只是单纯的全水准的测试也变的很复杂...

同値分割:

为了更好的提高单体测试的效果,使用同値分割的方式使水准数达到最小的量.比如思考一下文字的大小...[8,9,10,12,14,16,18,20.......................]一共有22个种类..但是请注意这里的文字增加.[8,9,10],[12.14,16.18.20],[24,28.32.36],40,44,48],[48,54,60,66,72],[72,80,88,96],它们被划分成了5组,这就是同值分割....

境界値分析:

接着我们注意看各个分组的边界值..抽出测试脚本..这就是边界值分析.[8,10],[10,20],[20,48],[48,72],[72,96]以上五个就是边界值.[10,20,48,72]这个就是各个同值分组和边界值的代表了.这样,文字大小从原来22水准变成了4水准的了..选择合适的粒子进行同值分割是和测试效率是息息相关的...

将文字类型,相对位置,颜色等等同值分割成4水准8水准,但是在读者之中,不光会选择[10,20,48,72],比如还会有人会选择[8,10,12,96]也就是最大96和最小8的还有经常使用的10和12...这里是没有哪个对哪个错的...而是从哪个角度来考虑进行同值分割和边界值的设定而已...

对于什么是最好的测试脚本这一个问题,CASE BY CASE是最理想的...在实际的活动中,测试设计的重新审核中合适的程序的式样和客户的使用方法等进行确认,由小组来决定...不是由测试的设计师一个人决定,最重要的是还要把决定的理由在重审会的时候向其他成员说明清楚.在那个时候记录讨论会的人,就会注视在市场上应用的过程当中,发生BUG的时候,哪里有错误,如何应对这些错误...

 直交表によるソフトウェア設計の流れ:

终于我们要通过使用之交表进行测试了.4.1节以前是使用之交表进行组合测试,4.2节以后是用富士施乐的HAYST方法改良的步骤...两这都是为了同一个目的而使用的手法,在这里就不进行区分了.请理解整体的一个流程...

 说因子和水准的选择直接关系到测试的品质这一点也不为过.请把主要的精力和智慧都集中在因子和水准的选择上面,那么就开始介绍具体的因子选择的方法了.

1.因子と水準の決定:

 

1.1因子の選び方:

因子也就是测试对象的参数应该如何做选择呢?”全中的组合测试方法去:

测试总数 = 因子A的水准数×因子B的水准数×因子C的水准数…….

因子的增加就直接影响到测试的总量的增加.但是我们已经在第一章学过了,使用直交表的时候,有多余的列的场合等等,因子的增加和测试项目的增加是没有关系的详细的在[直交表大小的决定]这一章中已经说明了,把测试项目的增加考虑为[那个因子带有的水准数的程度],也就是说,使用直交表进行测试的总数不是由乘法来决定的,

测试总数 = 因子A的水准数 + 因子B的水准数 + 因子C的水准数…….

减少测试对象的因子可以获得较少的评价,但是不管是多少先进的测试手法,遗漏了带有BUG的因子测试对象的话,在测试的时候就会把BUG给忽视掉了在选择因子的问题上,不是找出最少的,而是应该尽可能多的把关联的因子全班都列出来.

但是在列出测试因子的时候,不能只局限于测试的对象的机能,拿先前举例过的文字修饰来说,

     测试对象软件的周边机能的因子

与文字修饰有密切关系的[行间机能][对齐位置机能]等等的因子

使用环境

操作系统和图示标签等等的种类

     操作的顺序

如果在[上划线],[相对位置],[下划线]等的设定顺序的问题,那么就要基于实行的顺序[ABC,ACB,BCA,CAB,CBA]等进行分割,然后按照顺序进行测试

     关于软件的使用者的因子的讨论

新手,有经验的人,读过文档资料的人,没有读过软件文档资料的人等等围绕因子的追加进行讨论,还有与文字修饰没有任何关系…….

时间差(施行的时候和实行了3分钟以后放置)

负荷条件单一用户,10个用户,100个用户

1.2水準の選び方:

水准的选择的基本要领已经在前面已经说明了,是同值分割和边界值的分析..首先也是非常重要的就是对所有的水准进行列表, 列表完成以后对值进行讨论,把重要的需要确认的值记入.这些在水准的分割的时候使用

然后是水准的选择之前,不能把异常的值记入,比如字的大小有8,96,不能把7,100的水准值记入.如果选择了异常的水准的话,那么测试项目肯定会出现NG的错误.其他的组合测试也就没有什么意义了.

关于异常值的测试,应该在测试之前,把异常的值一个一个的输入,使错误发生,然后确认系统是否通过消息的形式引导用户进行正确的操作.

2直交表の決定:

2.1直交表サイズの決定:

在第一章里面对于各种各样的直交表的Size进行了介绍,表三是所有直交表的一览.可能有人会说[全部也只有26种啊,好少啊…].而且因为通常的软件测试,只使用2水准系列的直交表

,那就更加少了.在软件测试的时候不使用3-5水准的直交表的理由是:如果没有2水准的因子,那么就很难使用.而且混合系列的直交表也不能向多水准的直交表变形,所以4水准以上的大的因子也不能使用,所以在这里我们不做考虑选择使用直交表进行测试,重要的是自己想测试的对象的因子和水准的选择.[2水准4,4水准一个,就构成一个L8直交表]这就是一种选择的方法,不能背离表里面所描述的Pattern.所以直交表大小的选择和估量是很重要的.这里介绍两个直交表的大小估计的方法..

     2因子間網羅率度100%からの見積もり

如果要实现直交表两个因子之间覆盖率是100%的话,最大的因子和最大因子的水准数的配合是很有必要的.究其原因,最小2个水准的乘法算,在测试中是必要的….请看先前的表2,同值分割,边界值分析之后就有了文字修饰的因子的列表最大的因子是[颜色],他的水准数是8.其次是文字的大小,是四水准,

8种颜色×4种文字的大小=32次测试

这里如果不是32次测试的话,颜色和文字大小这两个因子之间的覆盖率就不会达到100%.这里我们就知道我们所需要的是L32的直交表..如果水准数不时2的倍数的场合,那就要达到2的倍数(6水准的话么就变成8水准)来计算还有如果水准数比较多的话,就应该在抽象化之后计算水准数关于抽象化,已经在[因子和水准的分割]这一节做了介绍.

     自由度からの見積もり

自由度这个概念是在统计中经常使用的语言,比较难于理解,简单的说就是:

因子A的自由度=因子A的水准数 – 1

所以对于直交表的大小,就可以通过[自由度的总和+1]来进行估算.

直交表的大小 =自由度的总和 + 1

:

直交表的大小 = (2-1)*5+(4-1)*5+(8-1)+1 = 28

从这里看2水准系列里面最接近的是L32….

这两个估算方法有时也会出现错误的结果,在很多场合

2因子的覆盖率100%的估算 > 自由度的估算

从估计自由度来选择直交表的话,2个机能的覆盖率有80-90%.如果有很多的水准的因子的情况下,实施[ 2因子的覆盖率100%的估算]的话,就要选择一张巨大的直交表了,在这种情况下,在之后所讲的通过抽象化能不能使因子变小这个话题就变得有意义了.

     自由度とは?

自由度就是,在平均给予的场合下面能够自由定义的变量的数目.

2.2直交表的做成

知道了我们所需要的直交表以后,我们就可以做成他了,一次做成它就可以任意的使用了.当然就不用重复的测试了现在我们来说说做成的步骤

     行向细胞分裂一样变成2

     追加新的一列,这一列是10交叉出现的

     已经存在的列和追加的列进行XOR计算就可以做成一张新的直交表

咋一看好象是很复杂的东西,其实用EXCEL就可以简单的实现出来做成比较麻烦的方法记录在了[试验计划法----田口玄一]这本书里面.

   
  0
  1

行数增加两倍

   
  0
  0
  1
  1

于0和1交叉出现的表合在一起

     
  0 0
  0 1
  1 0
  1 1

XOR异或

       
  0 0 0
  0 1 1
  1 0 1
  1 1 0

 

  1 2 3 4 5 6 7
1 0 0 0 0 0 0 0
2 0 0 0 1 1 1 1
3 0 1 1 0 0 1 1
4 0 1 1 1 1 0 0
5 1 0 1 0 1 0 1
6 1 0 1 1 0 1 0
7 1 1 0 0 1 1 0
8 1 1 0 1 0 0 1

L8的直交表

2.3多水準直交表への変形:

 

 

 L8直交表的1-3行合起来呢,就有了4水准的列了(000,011,101,110),合起来以后原来的1-3列就没有了变成了4水准的1列和2水准的4列的直交表.也就是说直交表的三列合起来就构成了一个新的列…在这里我们考虑一下自由度是如何变化的.原来的3列的自由度是(2-1=1)一共是3,新的一列是4水准, 自由度也是(4-1=3)等于3.那么8水准的列要做成的话要多少列合起来呢?对的,是需要7列…那么要合起来的列要合到一个什么样的程度呢?事实上,合起来的列是可以决定的,由点线图决定…

点线图原先,把一列用点表示,把有XOR关系的3列用线来表示.不管是用多大的表,行的增加都只能表示成4水准…8水准和16水准的点线图也是同样的原理表现出来的…列和列之间的XOR关系是从直交表做成的数据上获取的.因为非常花时间,所以在图七这里就把L8-L64的点线图给表示了出来…
像这样,通过使用点线图,就可以得到2,4,8,16水准的多水准点线图了,但是请你稍稍等下,我们的测试里面分割为3水准的因子和9水准的因子,像这些零散的水准的因子,我们将在下面一节做介绍…
 

4因子.水準の割付

和线图(2,4,8,16)不一样的大小的水准数的时候,如何分割因子比较好呢,在这里介绍一下水准数比点线图少的情况下应该如何进行处理…

4.1.線点図より水準数が少ないとき

比如说[位置调整]这个因子,它有水准[左对齐,居中,右对齐]三种.2水准系的直交表的点线图,是由2,4,8,16水准的2的倍数水准构成的.[000]对应[左对齐],[011] 对应[居中],[101]对应[右对齐]…4水准的列里面还剩下[110].这个时候应该把最需要测试的因子填入[110]这个地方,咋一看好象是增加了一些不必要的测试,但是从结果的列来看,重复了相同的水准的情况下,增加了更多的测试组合.也就是如果在这种情况下,对于居中的测试和BUG的检出就会比预想的要好…
 

4.2.線点図より水準数が多いとき:
5.禁則の回避

 
禁则就是不能同时选择的意思,在硬件和化学领域里面经常使用的因子:电流,电压,温度,成分分割,速度等,这些因子没有什么相互制约的关系,可以同时使用.但是在软件里面,打个比方,[上划线]和[下划线]就不可以同时被选择…首先,对于[上划线]和 [下划线]有(ON,ON), (ON,OFF), (OFF,ON), (OFF,OFF)四种情况, 在这个里面,(ON,ON)是不存在的,也就是说,在4次测试里面,有一次是无法测试的.那么我们就要对实际直交表的分割做一个确认.为了回避禁则,我们要从禁则的式样的整理开始做起…
 

5.1.禁則マトリクスの作成

 
条件因子 = [上划线]
禁則因子 = [下划线]
在这个例子里,条件因子和禁則因子是可以转化的,一般是通过设定条件因子来确定禁则的因子.用箭头表示就是[条件因子→禁则因子].以[颜色]这个因子为例,对禁则的方向予以说明.比如说,
因子:颜色
水准:自动,背景色,其他颜色
这里禁则的方向是[颜色→调色板],在这里禁则的方向就不能改变了.关于禁则的方向,在禁则这个矩阵做成以后在进行总结…如果是有复数个禁则关系的情况下,禁则的方向总结一下呢,可以画出好几棵树结构,
 

5.2.排他的因子融合手法

 
我们试着回避回避文字修饰的禁则看,首先,从禁则矩阵的组合里面,挑选出新的因子来,做成[上划线*下划线]这个因子..这个因子就有三种情况,也就是3水准..用在L8这个直交表里面就刚刚好合适..这种手发就是排他的因子融合手法…就象这样从哪一个方面都无从选择的禁则的场合,把选择可能的水准集中在一起让它成为一个新的因子,这就是直交表因子分配的一种方式…除了这个以外还有HAYST法,多层化手法,可变因子的手法可以实现排他因子融合.
好了,运用直交表做成了测试用的矩阵,用这个矩阵把功能扩展到L32上,这样只要经过32次测试,任何两个机能之间的覆盖率可以达到95.6%.

6.完成したマトリクスのチェック

那么我们的测试” 矩阵”已经完成了,想马上把它应用到测试中是不是?请先等一下.把已经完成的” 矩阵”在确认一遍.要确认的点是:确认没有出现的组合.用EXCEL进行确认.在刚刚做成的L32里面再加上一行内容,叫DATA,加这一行是为了表示测试项目是否出现用的,出现是空栏的话就说明测试没有覆盖到.这样就可以根据自己的判断将测试项目追加上去.比如说,没有[MS Pゴシックと斜体]这一个空栏,那么就讨论后将这个组合给追加上去…
 

テストの実施

马上要实施我们的测试了.为了测试而做成的直交表可以每一行一行测试..为了让测试能够很流畅的结束,最好测试前就要把测试用的直交表做成.还有在实施测试页的时候,有些注意点请不要忘记,比如,这次文字的颜色设定为白色的时候,在确认背景颜色是否是白色的测试就变得没有意义了,在测试的中途,也有可能碰到测试中的禁则,在这之后,要对直交表进行修改,如果不是重要的因子,在这以后要对影响范围再进行测试.
 

テストの結果分析:

对直交表测试的结果进行分散的分析是很有名的.但是,因为原本BUG的分布就不是规规举举的,所以试验计划发的分析手法在这里就不适用了.与此相比,在检测出的BUG的周边因子,水准的测试如果没有覆盖到的话要再进行测试.如果BUG存在的CASE比较多,那么探索性的增加测试CASE是一个很好的方法.
 

ALL-pair法との比較:

组合测试是一个效率很高的测试方法.除了使用直交表还有ALL-pair方法..这也就是让2个因子的覆盖率达到100%的测试手法..于直交表相对的,全覆盖测试法是为了达到2个因子的覆盖率达到100%的最少的测试矩阵. 全覆盖测试法做成的2个因子之间的组合的项目数比直交表要稍微少一点,为了集中2个机能之间的组合测试,却将组合测试的内容覆盖偏了.而直交表在本3个因子之间的覆盖率上,也是比较的平均和高覆盖率…当然净化全覆盖测试,使它也能够达到一个新的覆盖率分配是最好的办法.
 

終わりに:

通过直交表具体的测试设计,说明了运用直交表测试的全过程.请记住,覆盖组合测试的实施直交表是最好的一个工具.通过这个方法,即使不是专门的测试工具,运用EXCEL就可以实现了.期待用这个工具使测试项目大幅度的减少,软件的品质得到一个质的飞跃…
 

你可能感兴趣的:(Excel,测试,软件测试,脚本,文档,测试工具)