黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、场景图法等。
(一)等价类划分法
定义:等价类划分法是把所有可能输入的数据,划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的、常用的黑盒测试用例设计方法。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,因此在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。
有效等价类,是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明所规定的功能和性能。
无效等价类 指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能多个。
(二)边界值分析法
定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
分析方法:
大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
(三)错误推测法
定义:基于经验推测程序中所有可能存在的错误,从而有针对性的设计测试用例的方法。
基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
(四)因果图法
定义:因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
应用:
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图。
1.因果图介绍
- 4种符号分别表示了规格说明中向4种因果关系。
- 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
- C1表示原因,通常置于图的左部;e1表示结果,通常在图的右部。C1和e1均可取值0或1,0表示某状态不出现,1表示某状态出现。
)
2.因果图涉及的概念
- 因果关系
Ø 恒等:若c1是1,则e1也是1;否则e1为0。
Ø 非:若c1是1,则e1是0;否则e1是1。
Ø 或:若c1或c2或c3是1,则e1是1;否则e1为0。“或”可有任意个输入。
Ø 与:若c1和c2都是1,则e1为1;否则e1为0。“与”也可有任意个输入。
- 约束
输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。
Ø 输入条件的约束有以下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。
Ø 输出条件约束类型
· M约束(强制):若结果a是1,则结果b强制为0。
3.采用因果图法设计测试用例的步骤
-
分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
-
分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系,画出因果图。
-
由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
-
把因果图转换为判定表。
-
把判定表的每一列拿出来作为依据,设计测试用例。
4.案例说明
某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
-
根据题意,原因和结果如下:
原因: 1——第一列字符是A; 2——第一列字符是B; 3——第二列字符是一数字。 结果: 21——修改文件; 22 ——给出信息L; 23——给出信息M。
-
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。
3) 根据因果图建立判定表。
表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。所以一共有6种情况的测试用例。
(五)场景图法
1、定义:现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
2、业务流
场景业务流通常分为基本流、备选流、异常流程
基本流:指的是基本业务流,基表示通过业务流程时输入都正确,能达到目标的流程。
备选流:指的是分支业务流,表示通过业务流程时输入错误导致流程存在反复,但是经过纠正后仍能达到能达到目标的流程.
异常流:异常流表示通过业务流程时输入错误产生异常终止流程
3、场景法设计测试用例的步骤
步骤一:理解需求,确定业务流程(基本流程、备选流程、异常流程)
步骤二:绘制流程图,再次确认流程路径
步骤三:根据业务流程图,抽取测试路径(每一路径需含一个未走过得路径)
步骤四:细化路径,利用等价类边界值方法细化路径,抽取测试用例
4、场景法测试用例设计示例
需求:
流程图:
测试用例:(根据流程图抽取路径时最好从最后一个判定条件抽取)
1-》2-》3-》4-》5-》6-》7:进入发送子程序,有空闲缓冲写入空闲缓冲,写入成功启动发送命令,发送消息成功。
1-》2-》8-》10:进入发送子程序,无空闲缓冲发送失败消息。
1-》2-》3-》4-》9-》10:进入发送子程序,有空闲缓冲区,写入空闲缓冲区,写入失败发送失败消息。