功能测试的优缺点:
优点:
(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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
a+b > c? | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
a+c > b? | - | N | Y | Y | Y | Y | Y | Y | Y | Y | Y |
b+c > a? | - | - | N | Y | Y | Y | Y | Y | Y | Y | Y |
a=b? | - | - | - | Y | Y | Y | Y | N | N | N | N |
b=c? | - | - | - | Y | Y | N | N | Y | Y | N | N |
a=c? | - | - | - | Y | N | Y | N | Y | N | Y | N |
等腰三角形 | X | X | X | ||||||||
等边三角形 | X | ||||||||||
非等边三角形 | X | ||||||||||
非三角形 | X | X | 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)根据因果图建立判定表。
表中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 | 给定范围 | 大纲视图 | 黑白 | 幻灯片加框 |