• 功能测试的优缺点

优点:

(1)功能性测试与软件如何实现无关,如果实现发生了变化,功能性测试用例仍可用。

(2)测试用例编写可以与软件开发同时进行

缺点:

(1)测试用例的数量大

(2)测试用例可能产生很多冗余

(3)功能性测试的覆盖范围不可能达到100%

  • 黑盒测试用例设计方法

(1)等价类划分法

测试用例是一组测试输入、执行条件和预期结果,我们可以对测试输入进行合理分类,划分成若干子集,然后从每个子集中选择一些有代表性的用例。等价类划分法设计测试用例包括两部分:

  • 划分等价类

    等价类的划分有两种:有效等价类和无效等价类,这两种等价类的划分是相对需求规格说明书而言的,那些有意义、合理的输入组成有效等价类,检查程序是否实现了需求规格说明书上的功能和性能;而那些无意义、不合理的输入组成无效等价类,检查程序是否有不符合需求规格说明书上的功能和性能。

    等价类划分原则:

    (1)按照区间划分

    (2)按照数值划分

    (3)按照限制条件划分

    (4)细分等价类

  • 选取测试用例

    根据是否对无效等价类进行测试,将测试用例分为标准等价类和健壮等价类。健壮等价类存在两个问题:

    (1)需要花费精力定义无效测试用例的期望结果;

    (2)对强类型语言没有必要考虑无效测试用例,系统会自动检测。

  • 举例说明

    1.某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)

分析题目中给出和隐含的对输入条件的要求: 

  (1)整数    (2)三个数    (3)非零数   (4)正数   

  (5)两边之和大于第三边     (6)等腰     (7)等边 
   如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:
   1)如果不满足条件(5),则程序输出为 " 非三角形 " 。
   2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。
   3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。
   4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 
   列出等价类表并编号

   覆盖有效等价类的测试用例:

    a      b      c              覆盖等价类号码
    3      4      5             (1)--(7)
    4      4      5             (1)--(7),(8)
    4      5      5             (1)--(7),(9)    
    5      4      5             (1)--(7),(10)
    4      4      4             (1)--(7),(11)
   覆盖无效等价类的测试用例:

(2)边界值法

边界值分析法就是对输入的边界值进行测试的一种黑盒测试方法。他通常是对等价分类法的一种补充,其测试用例来自等价类的边界。

边界值分析法设计测试用例

标准型测试:对于一个含有n个变量的程序,保留其中一个变量,其他变量取正常值,被保留的变量依次取min.min+,nom,max+,max,对每个变量都重复进行。对于一个有N个变量的程序,边界值分析测试程序会产生4N+1个用例。

三角形问题的边界值分析测试用例

在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。
 

测试用例

a

b

c

预期输出

Test1

Test2

Test3

Test4

Test5

60

60

60

50

50

60

60

60

50

50

1

2

60

99

100

等腰三角形

等腰三角形

等边三角形

等腰三角形

非三角形

Test6

Test7

Test8

Test9

60

60

50

50

1

2

99

100

60

60

50

50

等腰三角形

等腰三角形

等腰三角形

非三角形

Test10

Test11

Test12

Test13

1

2

99

100

60

60

50

50

60

60

50

50

等腰三角形

等腰三角形

等腰三角形

非三角形

 

(3)决策表法

在一些数据处理问题中,针对不同逻辑条件的组合值,执行不同操作。

决策表的组成:

决策表通常由四部分组成:

条件桩:列出问题的所有条件

条件项:针对条件桩给出的条件列出所有可能的值

动作桩:列出所有问题可能采取的操作

动作项:针对在条件项的各组取值情况下应采取的行动

将一个条件特定的取值和与之相应的动作称为一条规则

举例:输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时分别作计算,用决策表划分法为该程序进行测试用例设计。

条件桩  1 10  11 
a+b > c?  N
a+c > b?  -
b+c > a?  -
a=b?  -
b=c?  -
a=c?  -
等腰三角形         X        
等边三角形                    
非等边三角形                    
非三角形  X  X  X                
不可能                

导出测试用例

黑盒测试(三)--------基于决策表的测试

决策表的优点:

(1)将复杂问题按照各种可能情况全部列出,简明避免遗漏;

(2)利用决策表能够设计出完整的测试用例;

(3)运用决策表设计测试用例可以将条件作为输入,动作作为输出。

(4)因果图法

1.定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

2.因果图法产生的背景:

等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。

如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。

3.因果图介绍

1) 4种符号分别表示了规格说明中向4种因果关系。

因果图中使用Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。Ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。上述因果图表示的关系:

①恒等:若ci是1,则ei也是1;否则ei为0。

②非:若ci是1,则ei是0;否则ei是1。

③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。

④与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。

4、约束

输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。

A.输入条件的约束有以下4类:

   ① E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。

   ② I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。

   ③ O约束(唯一);a和b必须有一个,且仅有1个为1。

   ④R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。

B.输出条件约束类型

   输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。

举例:

某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。

解答:

1) 根据题意,原因和结果如下:

       原因:

          1——第一列字符是A;

          2——第一列字符是B;

          3——第二列字符是一数字。

       结果:

          21——修改文件;

          22 ——给出信息L;

          23——给出信息M。

2) 其对应的因果图如下:

11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

3)根据因果图建立判定表。

 04hfghrty.jpg

表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。

(5)正交实验法

正交试验设计法就是用已经定义好的表格(正交表)来安排试验,并进行数据分析的一种方法。

正交表

正交表由以下元素组成:

行数:正交表中的行数,即试验的个数,也是我们用正交试验法设计的测试用例的个数;

因子:正交表中列的个数,即我们要测试的功能点。

水平数:任何单个因子能够取得值的最大个数,正交表中包含的值为从0到水平数-1,即我们测试功能点的输入条件。

正交表用Ln(Tc)表示。其中L是正交表的代号,n为行数(至少实验的次数)t为因子的水平数,c为列表的数目。

举例

题目:

  PowerPoint软件打印功能描述如下:

  打印范围分:全部、当前幻灯片、给定范围 共三种情况;

  打印内容分:幻灯片、讲义、备注页、大纲视图 共四种方式;

  打印颜色/灰度分: 颜色、灰度、黑白 共三种设置;

  打印效果分:幻灯片加框和幻灯片不加框两种方式。

  解题思路:

  1、由题目得出因子-状态表

因子

状态

打印范围

打印内容

打印颜色/灰度

打印效果

1

全部

幻灯片

颜色

幻灯片加框

2

当前幻灯片

讲义

灰度

幻灯片不加框

3

给定范围

备注页

黑白

4

大纲视图

  2、由图得出因子数:一共四个

  3、状态数:可以理解为输入取值。取出现最多的。题目中状态数出现最多的是3(打印范围取值有3种状态,打印内容取值4种状态,打印颜色取值有3种状态,打印效果取值有2种状态,得出最多的为3种状态)。

  4、根据上面两点,找到最接近的正交表4因子3状态。

  PS:选表时选择一个最接近的正交表(a,状态数:出现最多的。b,因子数:在实际因子数上逐渐累加1,直到找到正交表。)

  5、把因子、状态映射到上面正交表中。

  a、当实际状态数偏少时用任意实体数替换,当实际状态值偏多时,合并多余的状态。合并后的因子-状态图如下表:

因子

状态

打印范围

打印内容

打印颜色/灰度

打印效果

1

全部

幻灯片、讲义

颜色

幻灯片加框

2

当前幻灯片

备注页

灰度

幻灯片不加框

3

给定范围

大纲视图

黑白

  B、代入正交表如下表: 

1

2

3

4

1

全部

幻灯片、讲义

颜色

幻灯片加框

2

全部

备注页

灰度

幻灯片不加框

3

全部

大纲视图

黑白

4

当前幻灯片

幻灯片、讲义

灰度

5

当前幻灯片

备注页

黑白

幻灯片加框

6

当前幻灯片

大纲视图

颜色

幻灯片不加框

7

给定范围

幻灯片、讲义

黑白

幻灯片不加框

8

给定范围

备注页

颜色

9

给定范围

大纲视图

黑白

幻灯片加框

C、把合并的状态(幻灯片、讲义)展开,把实际状态数偏少的值用任意实体数(幻灯片加框、幻灯片不加框)替换。

1

2

3

4

1

全部

幻灯片

颜色

幻灯片加框

2

全部

讲义

颜色

幻灯片加框

3

全部

备注页

灰度

幻灯片不加框

4

全部

大纲视图

黑白

幻灯片不加框

5

当前幻灯片

幻灯片

灰度

幻灯片加框

6

当前幻灯片

讲义

灰度

幻灯片不加框

7

当前幻灯片

备注页

黑白

幻灯片加框

8

当前幻灯片

大纲视图

颜色

幻灯片不加框

9

给定范围

幻灯片

黑白

幻灯片不加框

10

给定范围

讲义

黑白

幻灯片不加框

11

给定范围

备注页

颜色

幻灯片不加框

12

给定范围

大纲视图

黑白

幻灯片加框