[黑盒测试基本方法]之因果图与判定表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试用例设计方法
之因果图法与判定表
1.因果图法
1.1.前言
从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。
因果图法即因果分析图,又叫特性要因图、石川图或鱼翅图,它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具。
1.2.定义
因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。
因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。
1.3.因果关系
因果图的表示中输入与输出间的因果关系有四种:
1)恒等关系:当输入条件发生,会产生对应输出,当输入条件不发生时,不会产生都会应输出。
2)非关系:与恒等关系相反。
3)或关系:多个输入条件中,只要有一个发生,则会产生对应输出。
4)与关系:多个输入条件中,只有所有输入项发生时,才会产生对应输出。
特定的符号标明因果关系如下(图1.3.1):
图1.3.1
因果图的表示中输入与输入间的约束关系有四种:
1)异(E):所有输入中至多一个输入条件发生。
2)或(I):所有输入中至少一个输入条件发生。
3)唯一(O):所有输入中有且只有一个输入条件发生。
4)要求(R):所有输入中只有一个输入条件发生,则其它输入也会发生。
特定的符号标明输入与输入间约束关系如下(图1.3.2):
图1.3.2
因果图的表示中输出条件约束类型(见图1.3.2):
1)输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。1.4.方法应用
利用因果图导出测试用例一般要经过以下几个步骤:
1)画出因果图。
2)因果图上用一些记号表明约束条件或限制条件。
3)对需求加以分析并把它们表示为因果图之间的关系图。
4)把因果图转换成判定表。
5)将判定表的每一列作为依据,设计测试用例。
1.4.1. 画出因果图
分析软件规格说明的描述中哪些是原因,哪些是结果。原因是输入或输入条件的等价类,结果是输出条件。给每个原因和结果并赋予一个标识符,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系,画出因果图。左边表示输入,右边表示输出。
因果图例:
1.4.
2. 建立中间节点
对于某些条件的多次使用,可以建立中间节点,以提高因果图的逻辑清晰。
图1.4.2
1.4.3. 根据因果图生成判定表
将输入和输出分别填入条件桩和动作桩,并在条件项填满输入的所有组合,若输入有n 项,则组合的列数为2n 列。根据因果图(图1.4.2)中的输入条件约束关系,对不可能出现的输入组合,在动作项上做出删除标记。根据因果图中的输入与输出的因果关系,在动作项上标出对应的动作结果。 判定表如下:
注:判定表中灰色部分是条件组合不可能出现的情况,所以删除。
1.4.4. 生成测试用例
判定表的每一列为一条规则,可以规划为一个测试用例
1.5. 实例讲解 1.5.1. 需求规格说明
某软件规格说明中包含这样的要求:
第一列字符必须是A 或B ,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M 。
1.5.
2. 根据输入与输出画出因果图
分析规格说明中的输入条件与输出——
根据输入与输出间的对应关系,画出因果图:
把因果图转换成判定表如下:
1.5.3.设计测试用例
把判定表的每一列作为依据,设计用例,如下:
1.6.因果图法测试题
(一)填空题:
1.因果图法中输入与输出之间的关系分为_①_、②、③_、④_四种
2.使用因果图法的首先应根据规格说明中的要求确定⑤、⑥要素再画出因果图?
(二)选择题
1.因果图法中输入与输入之间的关系分为四种,具体是哪四种?
A.恒等、与、要求、非
B.异、或、非、与
C.唯一、非、异、或
D.唯一、要求、或、异
(三) 设计题:
分析中国象棋中走马的实际情况(下面未注明的均指的是对马的说明)
1、如果落点在棋盘外,则不移动棋子;
2、如果落点与起点不构成日字型,则不移动棋子;
3、如果落点处有自己方棋子,则不移动棋子;
4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;
5、如果不属于1-4条,且落点处无棋子,则移动棋子;
6、如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;
7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。根据以上条件与结果,请使用因果图与判定表的方法设计测试用例。
答案
填空题1
○1: 恒等
○2: 非
○3: 与
○4: 或
填空题2
⑤:输入与输出之间的因果关系
⑥:输入与输入之间的约束关系
选择题
D
设计题
标明输入与输出:
输入:
1、落点在棋盘上;
2、落点与起点构成日字;
3、落点处为自己方棋子;
4、落点方向的邻近交叉点无棋子;
5、落点处无棋子;
6、落点处为对方棋子(非老将);
7、落点处为对方老将。
输出:
21、不移动棋子;
22、移动棋子;
23、移动棋子,并除去对方棋子;
24、移动棋子,并提示战胜对方,结束游戏。
添加中间节点11,目的是作为导出结果的进一步原因,
画出因果图: