前面文章:
《黑盒测试方法之因果图和判定表——一》主要讲述判定表驱动法的相关理论内容。
后续文章:
《黑盒测试方法之因果图和判定表——三》主要讲述因果图和判定表联合使用设计测试用例的例子。
3. 因果图法
1. 概述
在利用判定表设计方法设计测试用例的过程中,往往会遇到输入与输入之间存在约束的情况,简单业务逻辑关系可用判定表解决,但较为复杂的约束关系可能就不合适了。这种情况下使用因果图就就会比较容易理解业务的逻辑关系。 因果图又称鱼骨图,用于描述被测对象输入与输入、输入与输出之间的约束关系,因果图绘制的过程中,可以理解为用例设计者针对因果关系业务的建模过程。利用因果图设计用例的大致过程为首先根据需求规格绘制因果图,然后将其转为判定表再进行用例设计, 一般将因果图理解为判定表的前置过程,如果逻辑关系较为简单,可直接绘制判定表。
2. 利用因果图导出测试用例的步骤
因果图法是从规格说明书的自然语言的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表,利用因果图设计测试用例主要有以下几个步骤:
- 分析程序规格说明的描述中,那些是原因,那些是结果,原因常常是输入条件或是输入条件等价类,而结果是输出条件。
- 分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的因果图。
- 标明约束条件,由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的,为表名这些特定的情况,在因果图上使用若干个标准的符号标明约束条件。
- 把因果图转化为判定表。
- 为判定表中每一列表示的情况设计测试用例。
使用因果图生成测试用例可以以最少的测试用例覆盖包含所有输入数据的取true和false的情况,且测试用例的数目随着输入数目的增加而增加。
3. 因果图的基本图形符号
因果图的基本图形符号是用来描述输入与输出之间的关系的, 在因果图的基本图形符号中,通常用C表示原因,E表示结果,各个结点表示状态,结点的值可取0和1,分别表示此种状态出现和不出现,具体的基本符号如下。
>恒等
恒等关系如上图所示,其表示若原因出现,则结果一定会出现;反之,若原因不出现,则结果一定不会出现。
>非(~)
非关系如上图所示,其表示若原因出现,则结果E1一定不出现;反之,若原因不出现,则结果一定会出现。
>或(V)
或关系如上图所示,其表示若几个原因中有一个出现,则结果一定会出现;反之,若所有原因都不出现,则结果也不会出现。
>与(∧)
与关系如上图所示,其表示若几个原因都出现,则结果才会出现;反之,如果有一个原因不出现,则结果都不会出现。
4. 因果图的约束符号
在上面,我们可以看到,因果图的基本图形符号表示了原因与结果之间的关系,而本节的约束符号则是为了表示原因与原因之间、结果与结果之间的关系而创建的。
从输入情况考虑,其具体的约束符号有4种,而从输出考虑,其具体的约束符号有1中,这5种约束符号分别如下所示。
>互斥(E)
互斥(也叫异)关系如上图所示,表示a和b两个输入条件中最多有一个成立。也就是说,该约束表示若干个输入条件中,最多有一个会成立,也可能全部不成立。
>包含(I)
包含(也叫或)关系如上图所示,表示a、b、c这三个条件中,必须至少有一个成立。也就是说,该约束表示若干个输入条件中,必须至少有一个成立,当然,也可以多个同时成立。
>唯一(O)
唯一关系如上图所示,表示a和b两个输入中有且仅有一个会同时发生,且a和b中必定有一个会发生。也就是说,该约束表示的是若干个输入条件中,有且仅有一个会发生,且必定会有一个发生。
>要求®
要求关系如上图所示,表示当输入a出现时,b也必须出现,即a出现时b不可能不出现。也就是说,该约束表示的是当若干个输入条件中,只要有一个发生,则其他条件也一定会发生。
>屏蔽(M)
屏蔽关系如上图所示,该关系表示的是当输出结果a为1时,b必须是0,而当a为0时,b不确定。
前面文章:
《黑盒测试方法之因果图和判定表——一》主要讲述判定表驱动法的相关理论内容。
后续文章:
《黑盒测试方法之因果图和判定表——三》主要讲述因果图和判定表联合使用设计测试用例的例子。