测试方法因果图法
因果图法

测试用例设计—因果图法1.引言等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。
考虑输入条件之间的相互组合,可能会产生一些新的情况。
但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。
因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。
这就需要利用因果图(逻辑模型)。
因果图(Cause-EffectGraphing)提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。
其中原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。
因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
2.因果图介绍图例说明1、4种符号分别表示了规格说明中向4种因果关系。
如图2-1所示。
图2-1 因果图关系2、因果图中使用了简单的逻辑符号,以直线联接左右结点。
左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
3、ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。
ci 和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。
因果图概念1、关系(图2-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。
“与”也可有任意个输入。
2、约束输入状态相互之间还可能存在某些依赖关系,称为约束。
例如,某些输入条件本身不可能同时出现。
输出状态之间也往往存在约束。
在因果图中,用特定的符号标明这些约束。
如图2-2所示。
图2-2因果图约束A.输入条件的约束有以下4类:① E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。
② I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。
因果图测试法附简单实例经典实用

C3 选择可乐
Cm3
投入5元
I
Cm4
Cm2
出货
投入3元
C4 选择冰红茶 E
C5 选择冰雪碧
因果图测试法附简单实例
实例分析
完整的因果图
投入3张一元纸币 C1
E 投入1张五元纸币 C2
I
选择可乐
C3
Cm3
投入5元
Cm2
投入3元
Cm4
出货
选择冰红茶
C4
E
选择冰雪碧 C5
Cm1
选择了饮料
因果图测试法附简单实例
E1 退还两元零钱 E2 可乐出货 E3 冰红茶 E4 雪碧出货
实例分析 (4)转换为判定表
c c c c c
因果图测试法附简单实例
实例分析 (5)根据判定表设计测试用例
这只是个很简单的例子
如果你能直接写出判定表也可 以不画因果图直接写出判定表 ->测试用例。比如这个例子。
实例分析 自动售货机售卖可乐、冰红茶和雪碧三种饮料,单价都 是3元。自动售货机只接受面值五元或一元的钞票。 若投入3张一元钞票,按下“可乐、冰红茶或雪碧”按钮后, 饮料自动送出; 若投入1张五元的钞票,则在送出饮料后退还两元零钱。
因果图测试法附简单实例
实例分析
自动售货机售卖可乐、冰红茶和雪碧三种饮料,单价都是3元。自动售货机 只接受面值五元或一元的钞票。 若投入3张一元钞票,按下“可乐、冰红茶或雪碧”按钮后,饮料自动送出;若 投入1张五元的钞票,则在送出饮料后退还两元零钱。
因果图测试法附简单实例
什么是因果图测试法?
·黑盒测试法的一种
·是一种利用图解法分析输入的各种组合情况,从而设
计测试用例的方法
黑盒测试技术4-因果图法

e1 原因中有一个不出现,结果就不出现。 如图,若c1和c2都是1,则ei为1;否则ei为0。 “与” 可有任意个输入。
因果图的约束符号
输入条件的 4 种约束类型:
a
E
b (Exclusive)
❖ E 约束(异/互斥): 表示几个原因不会同时成立; 可能他们都不成立,但最多有一个成立。
定义
用于描述输入之间,输入输出之 用于表达多逻辑条件下执行不
间的约束关系和因果关系
同操作的情况的工具
区别
本质
考虑输入条件之间的联系、各种 考虑输入条件之间的各种组合, 组合,相应产生多个动作。 相应产生多个动作。
当输入条件 用例数量相对少(无效用例) 会产生大量测试用例 过多时 可以覆盖到条件之间的先后关系 不能覆盖条件之间的先后关系
• 根据题意,原因和结果如下:
原因
1:A < B+C 2:B < A+C 3:C < A+B 4:A = B 5:A = C 6:B = C
结果
21:不能构成三角形 22:等边三角形 23:等腰三角形 24:一般三角形
步骤2:画出因果图
原因
结果
1
1:A < B+C
21:不能构成三 角形
2
2:B < A+C 22:等边三角形 3
如图,a和b中至多有一个可能为1,即a和b不 能同时为1。
❖ I 约束(或/包含):
a 表示几个原因中至少有一个必须成立,当然也
I
b 可能都成立。
(In)
c 如图,a、b和c中至少有一个必须是1,即 a、b
和c不能同时为0。
黑盒测试的7种测试方法

黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
7因果图法详解

找出因(输入条件)和果(输出结 果或者程序状态的改变), 然后通过因果图转换为判定表,最 后为判定表中的每一列设计一个 测试用例.
因果图法的定义:
是一种利用图解法分析输入的各
种组合情况,从而设计测试用例 的方法,它适合于检查程序输入 条件的各种组合情况。
因果图中出现的基本符号
原因
结果
通常在因果图中用Ci表示原因,用Ei 表示结果,各结点表示状态,可取值 “0”或“1”。“0”表示某状态不出 现,“1”表示某状态出现。
(b)
(c)
E约束(异):a和b中最多有一个可能 为1,即a和b不能同时为1;
a E
异
b
I约束(或):a、b、c中至少有一个必 须是1,即a、b、c不能同时为0;
a I 或 b c
O约束(唯一):a和b必须有一个且仅 有一个为1;
a O 唯一 b
R约束(要求):a是1时,b必须是1;
a R b 要求
M约束(强制):若结果a是1,则结果b 强制为0。
a M b 强制
对于输入条件的约束有4种:
E约束(异):a和b中最多有一个可能为1,即a和b不 能同时为1; I约束(或):a、b、c中至少有一个必须是1,即a、b c不能同时为0; O约束(唯一):a和b必须有一个且仅有一个为1; R约束(要求):a是1时,b必须是1;
因果图法举例
程序的规格说明要求:输入的第一个字符 必须是“#”或“*”,第二个字符必须是 一个数字,在此情况下进行文件的修改; 如果第一个字符不是“#”或“*”,则给 出信息N;如果第二个字符不是数字,则 给出信息M。
步骤:
软件测试第10课-黑盒测试-因果图法

编号
1 2 3
输入
游客支付房款不足,选择单人间且有空房 游客支付房款不足,选择双人间且有空房 游客支付房款不足,未选择任何类型的房间
预期结果
某单人间被打开且系统提 醒房款不足 某双人间被打开且系统提 醒房款不足 所有房间均不被打开且 “房间已满”指示灯为灭 的状态 某豪华间被打开且系统提 醒房款不足 某单人间被打开 某双人间被打开 所有房间均不被打开且房 间已满灯为灭的状态
根据题意,原因和结果如下:
– 原因:
• 1——第一列字符是A; • 2——第一列字符是B; • 3——第二列字符是一数字。
– 结果:
• 21——修改文件; • 22 ——给出信息L; • 23——给出信息M。
其对应的因果图如下:11为中间节点;考虑到原因1和原
因2不可能同时为1,因此在因果图上施加E约束
4 5 6 7
游客支付房款不足,选择豪华间且有空房 游客支付全款,选择单人间且有空房 游客支付全款,选择双人间且有空房 游客支付全款,未选择任何类型的房间
8
游客支付全款,选择豪华间且有空房
某豪华间被打开
编号
9 10
输入
预期结果
游客不进行支付,选择单人间且有空房 所有房间均不被打开且房间已 满灯为灭的状态 游客不进行支付,选择双人间且有空房 所有房间均不被打开且房间已 满灯为灭的状态
内所有房款)或支付房间房款不足(仅支付订金),选择“单人
间”、“双人间”或“豪华间”,若该类型房间有空房,则相应类 型的房间被开启;若该类型房间无空房,则“房间已满”提示灯亮。
此时,支付房款不足的游客选择该类型的房间,则该类型的房间不
被开启且提示办理退款;若此期间,该房间类型有客人退房,则 “房间已满”指示灯灭,该类型房间的某间房被开启的同时提醒游
软件测试第四章--因果图讲解

(4)把因果图转换为决策表。 (5)根据决策表中的每一列设计测试用例。
3.6.3 因果图法测试举例
实例 用因果图法测试以下程序。
程序的规格说明要求:输入的第一个字符必须是#或*, 第二个字符必须是一个数字,此情况下进行文件的修改;如 果第一个字符不是#或*,则给出信息N,如果第二个字符不 是数字,则给出信息M。
和果(输出结果或程序状态的改变),画出因果图。
(2)将得到的因果图转换为判定表。 (3)为判定表中每一列所表示的情况设计一个测试用例。
因果图法的简介(续)
使用因果图法的优点:
(1)考虑到了输入情况的各种组合以及各个输入情况之间的 相互制约关系。
(2)能够帮助测试人员按照一定的步骤,高效率的开发测试 用例。
a
R
b
要求
R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。
因果图(续)
因果图中用来表示约束关系的约束符号:
a
M
b
强制
M约束(强制):若结果a为1,则结果b强制为0。
因果图(续)
因果图中用来表示约束关系的约束符号:
E 异
a
I
b 或
a
a
O
b b
唯一
c
a
a
R
M
要求
b
强制
b
因果图(续)
因果图法最终生成的是决策表。利用因果图生成测试用例的 基本步骤如下:
(1)分析软件规格说明中哪些是原因(即输入条件或输入条 件的等价类),哪些是结果(即输出条件),并给每个原因 和结果赋予一个标识符。
11、因果图法

11、因果图法因果图法的定义因果图法是⼀种利⽤图解法分析输⼊的各种组合情况,从⽽设计测试⽤例的⽅法,它适合于检查程序输⼊条件的各种组合情况特点:(1)考虑输⼊条件的相互制约及组合关系(2)考虑输出条件对输⼊条件的依赖关系因果图的核⼼因果图法⽐较适合输⼊条件⽐较多的情况,测试所有的输⼊条件的排列组合。
所谓的原因就是输⼊,所谓的结果就是输出。
因果图的“因”—输⼊条件因果图的“果”—输出结果因果图法要注意考虑:所有输⼊/输出条件的相互制约关系以及组合关系输出结果对输⼊条件的依赖关系,也就是什么样的输⼊组合会产⽣怎样的输出结果,即“因果关系”因果图中的基本符号通常在因果图中⽤Ci表⽰原因,⽤Ei表⽰结果,各结点表⽰状态,可取值“0”或“1”。
“0”表⽰某状态不出现,“1”表⽰某状态出现。
因果图中的约束条件利⽤因果图导出测试⽤例需要经过以下⼏个步骤:①找出所有的原因,原因即输⼊条件或输⼊条件的等价类。
②找出所有的结果,结果即输出条件。
③明确所有输⼊条件之间的制约关系以及组合关系。
哪些条件不能组合到⼀起,哪些条件可以组合到⼀起④明确所有输出条件之间的制约关系以及组合关系。
哪些输出结果不能同时输出,哪些输出结果可以同时输出⑤找出什么样的输⼊条件组合会产⽣哪种输出结果⑥把因果图转换成判定表/决策表。
⑦为判定表/决策表中的每⼀列表⽰的情况设计测试⽤例。
案例:交通⼀卡通⾃动充值软件系统需求-系统只接收50、100元纸币,⼀次只能使⽤⼀张纸币,⼗次充值⾦额只能为50元或100元。
-若输⼊50元纸币,并选择充值50元,完成充值后退卡,提⽰充值成功;-若输⼊50元纸币,并选择充值100元,提⽰输⼊⾦额不⾜,并退回50元;-若输⼊100元纸币,并选择充值50元,完成充值后退卡,提⽰充值成功,找零50元;-若输⼊100元纸币,并选择充值100元,完成充值后退卡,提⽰充值成功;-若输⼊纸币后在规定时间内不选择充值按钮,退回输⼊的纸币,并提⽰错误;-若选择充值按钮后不输⼊纸币,提⽰错误结果:分析:1、找到所有输⼊条件编号2、找到所有输出条件编号3、找出所有输⼊、输出的制约关系根据因果图再制作出对应的“表格”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
案例分析1
有一个处理单价为1元5角的盒装饮料的 自动售货机软件。若投入1元5角硬币, 按下“可乐”,“雪碧”或“红茶”按钮, 相应的饮料就送出来。若投入的是两元硬 币,在送出饮料的同时退还5角硬币。
(1)分析原因及结果
原因
中间状 态 结果
c1:投入1元5角硬币; c2:投入2元硬币; c3:按“可乐”按钮; c4:按“雪碧”按钮; c5:按“红茶”按钮; 11:已投币 12:已按钮 a1:退还5角硬币; a2:送出“可乐”饮料; a3:送出“雪碧”饮料; a4:送出“红茶”饮料;
(2)画出因果图
V V
V V
C1
E1
E
V
11
C2 E2
C3 E3
E
C4
V
然后通过因果图转换为判定表,最 后为判定表中的每一列设计一个 测试用例.
因果图法的定义:
是一种利用图解法分析输入的各 种组合情况,从而设计测试用例 的方法,它适合于检查程序输入 条件的各种组合情况。
因果图中出现的基本符号
原因
结果
通常在因果图中用Ci表示原因,用Ei 表示结果,各结点表示状态,可取值 “0”或“1”。“0”表示某状态不出 现,“1”表示某状态出现。
因果图法设计测试用例步骤:
分析程序规格说明书描述的语义内容,找出 “原因”和“结果”,将其表示成连接各个原 因与各个结果的“因果图”。
由于语法或环境限制,有些原因与原因之间或 与结果之间的组合情况不能出现,用记号标明 约束或限制条件;
将因果图转换成决策表; 根据决策表中每一列设计测试用例
因果图法举例
程序的规格说明要求:输入的第一个字符 必须是“#”或“*”,第二个字符必须是 一个数字,在此情况下进行文件的修改; 如果第一个字符不是“#”或“*”,则给 出信息N;如果第二个字符不是数字,则 给出信息M。
步骤:
1. 分析程序的规格说明,列出原因和结果; 2. 找出原因与结果之间的因果关系、原因
c1
V
c2
e1
c3
与:若c1和c2都是1,则e1为1, 否则e1为0,“与”也可有任意 个输入。
c1
e1 c2
V
恒等:若c1是1,则e1也为1,否则e1 为0;
非:若c1是1,则e1为0,否则e1为1;
或:若c1或c2或c3是1,则e1是1, 否则e1为0,“或”可有任意个输入;
a E
b 异
I约束(或):a、b、c中至少有一个必 须是1,即a、b、c不能同时为0;
a
I
b
或c
O约束(唯一):a和b必须有一个且仅 有一个为1;
a
O
b 唯一
R约束(要求):a是1时,b必须是1;
a R
b 要求
M约束(强制):若结果a是1,则结果b 强制为0。
a M
b 强制
对于输入条件的约束有4种:
预期输出--修改文件 预期输出--给出信息M 预期输出--修改文件 预期输出--给出信息M 预期输出--给出信息N 预期输出--给出信息M和N
使用因果图法的优点:
(1)考虑到了输入情况的各种组合以及各个 输入情况之间的相互制约关系。
(2)能够帮助测试人员按照一定的步骤,高 效率的开发测试用例。
(3)因果图法是将自然语言规格说明转化成 形式语言规格说明的一种严格的方法,可以 指出规格说明存在的不完整性和二义性。
因果图法产生的背景
等价类划分法和边界值分析方法 都是着重考虑输入条件,但没有考虑 输入条件的各种组合、输入条件之间 的相互制约关系。这样虽然各种输入 条件可能出错的情况已经测试到了, 但多个输入条件组合起来可能出错的 情况却被忽视了。
因果图法设计测试用例思想
首先从程序规格说明书的描述中, 找出因(输入条件)和果(输出结 果或者程序状态的改变),
10
1 11 10 0
a1
√√
a2
√
√
a3
√
√
√
不可能 √ √
测试 用例
#3 #B *7 *M C2 CM
(4)设计测试用例
最左边两列,原因c1和c2同时为1不可能,排除掉, 根据表可设计出6个测试用例。
Test1:输入数据-#3 Test2:输入数据-#B Test3:输入数据-*7 Test4:输入数据-*M Test5:输入数据-C2 Test6:输入数据-CM
与原因之间的约束关系,画出因果图。 3. 将因果图转换成决策表; 4. 根据3中的决策表,设计测试用例的输入
数据和预期输出。
解法如下:
(1)在明确了上述要求后,可以明确地 将原因和结果分开。
原因:c1-第一个字符是“#” c2-第一个字符是“*” c3-第二个字符是一个数字
结果:a1-给出信息N a2-修改文件 a3-给出信息M
E约束(异):a和b中最多有一个可能为1,即a和b不 能同时为1;
I约束(或):a、b、c中至少有一个必须是1,即a、b c不能同时为0;
O约束(唯一):a和b必须有一个且仅有一个为1; R约束(要求):a是1时,b必须是1;
对于输出条件的约束只有M约束
M约束(强制):若结果a是1,则结果b强制为0。
(2)因果图
10为导出结果的中间原因
c1
a1
V 10
~
V
c2
a2
c3
~
a3
因果图表示
带有E约束的因果图
c1
a1
E
V 10
~
V
c2
a2
c3
~
a3
具有E约束的因果图表示
将因果图转化为判定表
123 4 5 6 7 8
C1 1 1 1 1 0 0 0 0
C2 1 1 0 0 1 1 0 0
C3 1 0 1 0 1 0 1 0
主要的原因与结果之间的关系
c1
e1
(a)恒等
c1 ~ e1 (b)非
c1
V
c2
e1
c3
(c)或
V
c1 e1
c2
(d)与
恒等:若c1是1,则e1也为1, 否则e1为0;
c1
e1
非:若c1是1,则e1为0,否 则e1为1;
c1 ~ e1
或:若c1或c2或c3是1,则e1 是1,否则e1为0,“或”可有任 意个输入;
与:若c1和c2都是1,则e1为1,否则 e1为0,“与”也可有任意个输入。
在实际问题当中输入状态相互之间还可能 存在某些依赖关系,称为“约束”
a E
b 异
a
I
b
或c
a O
b 唯一
a
a
R
M
b 要求
b 强制
(a)
(b)
(c)
(d)
(e)
E约束(异):a和b中最多有一个可能 为1,即a和b不能同时为1;