在第一章里,我们做成了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.因子と水準の決定:
因子也就是测试对象的参数应该如何做选择呢?”全中”的组合测试方法去:
测试总数 = 因子A的水准数×因子B的水准数×因子C的水准数…….
因子的增加就直接影响到测试的总量的增加.但是我们已经在第一章学过了,使用直交表的时候,有多余的列的场合等等,因子的增加和测试项目的增加是没有关系的…详细的在[直交表大小的决定]这一章中已经说明了,把测试项目的增加考虑为[那个因子带有的水准数的程度],也就是说,使用直交表进行测试的总数不是由乘法来决定的,
测试总数 = 因子A的水准数 + 因子B的水准数 + 因子C的水准数…….
减少测试对象的因子可以获得较少的评价,但是不管是多少先进的测试手法,遗漏了带有BUG的因子测试对象的话,在测试的时候就会把BUG给忽视掉了…在选择因子的问题上,不是找出最少的,而是应该尽可能多的把关联的因子全班都列出来.
但是在列出测试因子的时候,不能只局限于测试的对象的机能,拿先前举例过的文字修饰来说,
○ 测试对象软件的周边机能的因子
与文字修饰有密切关系的[行间机能]和[对齐位置机能]等等的因子
○使用环境
操作系统和图示标签等等的种类
○ 操作的顺序
如果在[上划线],[相对位置],[下划线]等的设定顺序的问题,那么就要基于实行的顺序[ABC,ACB,BCA,CAB,CBA]等进行分割,然后按照顺序进行测试…
○ 关于软件的使用者的因子的讨论
新手,有经验的人,读过文档资料的人,没有读过软件文档资料的人等等围绕因子的追加进行讨论,还有与文字修饰没有任何关系…….
○时间差(施行的时候和实行了3分钟以后放置)
○负荷条件(单一用户,10个用户,100个用户)
水准的选择的基本要领已经在前面已经说明了,是同值分割和边界值的分析..首先也是非常重要的就是对所有的水准进行列表, 列表完成以后对值进行讨论,把重要的需要确认的值记入.这些在水准的分割的时候使用…
然后是水准的选择之前,不能把异常的值记入,比如字的大小有8,96等,不能把7,和100的水准值记入.如果选择了异常的水准的话,那么测试项目肯定会出现NG的错误.其他的组合测试也就没有什么意义了.
关于异常值的测试,应该在测试之前,把异常的值一个一个的输入,使错误发生,然后确认系统是否通过消息的形式引导用户进行正确的操作.
在第一章里面对于各种各样的直交表的Size进行了介绍,表三是所有直交表的一览.可能有人会说[全部也只有26种啊,好少啊…].而且因为通常的软件测试,只使用2水准系列的直交表
,那就更加少了.在软件测试的时候不使用3-5水准的直交表的理由是:如果没有2水准的因子,那么就很难使用.而且混合系列的直交表也不能向多水准的直交表变形,所以4水准以上的大的因子也不能使用,所以在这里我们不做考虑…选择使用直交表进行测试,重要的是自己想测试的对象的因子和水准的选择.[2水准4个,4水准一个,就构成一个L8直交表]这就是一种选择的方法,不能背离表里面所描述的Pattern.所以直交表大小的选择和估量是很重要的.这里介绍两个直交表的大小估计的方法..
如果要实现直交表两个因子之间覆盖率是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倍
② 追加新的一列,这一列是1和0交叉出现的
③ 已经存在的列和②追加的列进行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的直交表
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列…那么要合起来的列要合到一个什么样的程度呢?事实上,合起来的列是可以决定的,由点线图决定…