因果图法实例
因果图测试法附简单实例经典实用

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张五元的钞票,则在送出饮料后退还两元零钱。
因果图测试法附简单实例
什么是因果图测试法?
·黑盒测试法的一种
·是一种利用图解法分析输入的各种组合情况,从而设
计测试用例的方法
因果图法测试举例

–若投入5角钱或1元钱的硬币,压下【橙汁】 或【啤酒】的按钮,则相应的饮料就送出来 –若售货机没有零钱找,则一个显示【零钱 找完】的红灯亮,这时在投入1元硬币并押 下按钮后,饮料不送出来而且1元硬币也退 出来 –若有零钱找,则显示【零钱找完】的红灯 灭,在送出饮料的同时退还5角硬币
1
因果图法测试举例
(1)分析这一段说明,列出原因和结果
原因: • 1.售货机有零钱找 • 2.投入1元硬币 • 3.投入5角硬币 • 4.押下橙汁按钮 • 5.押下啤酒按钮
结果: • 21.售货机【零钱找 完】灯亮 • 22.退还1元硬币 • 23.退还5角硬币 • 24.送出橙汁饮料 •法测试举例
• 建立中间节点,表示处理中间状态
• • • • 11.投入1元硬币且押下饮料按钮 12.押下【橙汁】或【啤酒】的按钮 13.应当找5角零钱并且售货机有零钱找 14.钱已付清
3
因果图法测试举例
• (2)画出因果图。所有原因节点列在左边, 所有结果节点列在右边 • (3)由于2与3,4与5不能同时发生,分别 加上约束条件E • (4)因果图 • (5)转换成决策表
若投入5角钱或1元钱的硬币压下橙汁若投入5角钱或1元钱的硬币压下橙汁或啤酒的按钮则相应的饮料就送出来若售货机没有零钱找则一个显示零钱找完的红灯亮这时在投入1元硬币并押下按钮后饮料不送出来而且1元硬币也退出来若有零钱找则显示零钱找完的红灯灭在送出饮料的同时退还5角硬币1因果图法测试举例原因
因果图法测试举例
因果图法

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

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

测试⽤例(因果图法)⼀、应⽤场合在⼀个界⾯中,有多个输⼊条件,输⼊之间存在组合关系,不同的输⼊组合会产⽣不同的输出结果的组合,为了弄清输⼊和输出的关系,使⽤因果图 (控件组合)⼆、核⼼概念1、因——原因,输⼊动作。
2、果——结果,输出结果。
使⽤画图的⽅法找出输⼊(因)和输出(果)的关系 因果图法需要考虑:所有输⼊条件的相互制约关系以及组合关系输出结果对输⼊条件间的依赖关系。
也就是什么样的输⼊组合会产⽣怎样的输出结果。
即“因果关系”三、图形符号1、基本符号——表⽰输⼊和输出之间的关系(重点:恒、与)恒等*含义: 若原因出现,则结果出现;若原因不出现,则结果也不出现。
若a = 1,则b = 1.若a = 0,则b = 0. ⾮含义: 若原因出现,则结果不出现;若原因不出现,则结果出现。
若a = 1,则b = 0.若a = 0,则b = 1. 或含义: 若⼏个原先因中有⼀个出现,则结果出现;若⼏个原因都不出现,则结果不出现。
若a = 1,或b = 1,或c = 1 ,则d = 1若a = b = c = 0,则d = 0 与*含义: 若⼏个原先因都出现,则结果才出现;若⼏个原因只要有⼀个不出现,则结果不出现。
若a = b = c = 1,则d =1若a = 0,或b = 0,或c = 0 ,则d = 0 2、约束(限制)符号——约束的永远都是同⼀类型:要不然同时限制⼏个输⼊之间的关系,要不然同是限制⼏个输出之间的关系。
互斥(E)*含义:表⽰a、b、c三个原因不会同时成⽴;最多有⼀个可能成⽴。
a、b、c不能同时为 1,即a/b/c中⾄多只有1包含(I)含义:表⽰a、b、c三个原因中⾄少有⼀个必须成⽴a、b、c⾄少有有⼀个1,即a,b,c中不能同时为0唯⼀(O)*含义:表⽰a、b、c三个原因中必须有⼀个成⽴,且仅有⼀个成⽴(唯⼀和互斥⾮常接近,就差⼀个默认值) 说明:互斥和唯⼀的区别:⼀般有默认选项—唯⼀,没有默认选项—互斥要求(R)*含义:表⽰a 出现时,则b 必须出现若a = 1 ,则b 必须= 1,即不可能a = 1 且 b = 0 屏蔽(M)含义:若a = 1 ,则b 必须= 0,若a = 0 时则 b 的值不⼀定重点要求: 互斥、唯⼀、要求 屏蔽⼀般在输出中常⽤。
测试用例设计之因果图设计

测试用例设计--因果图定义因果图法就是从程序规格说明书的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例。
首先我们来了解一下因果图的基本符号:2. 应用的范围更复杂的条件组合,2^n,n比较多的时候3. 步骤1) 根据程序规格说明书描述的语义内容,分析并确定“因”和“果”;2) 将“因”和“果”表示成“因果图”;3) 在因果图上使用若干个约束符号来标明约束条件;4) 将得到的因果图转换成判定表;5) 为判定表中每一列所表示的情况设计一个测试用例。
4. 案例以中国象棋中马的走法为例子,具体说明:1、如果落点在棋盘外,则不移动棋子;2、如果落点与起点不构成日字型,则不移动棋子;3、如果落点处有自己方棋子,则不移动棋子;4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;5、如果不属于1-4条,且落点处无棋子,则移动棋子;6、如果不属于1-4条,且落点处为对方棋子 (非老将) ,则移动棋子并除去对方棋子;7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
案例分析--因果图1) 根据程序规格说明书描述的语义内容,分析并确定“因”和“果”;原因:1、落点在棋盘外;2、不构成日字;3、落点有自方棋子;4、绊马腿;5、落点无棋子;6、落点为对方棋子;7、落点为对方老将。
结果:21、不移动;22、移动;23、移动己方棋子消除对方棋子;24、移动并战胜对方。
2) 将“因”和“果”表示成“因果图”,并标明约束条件;3) 将得到的因果图转换成判定表;11这个结点称做中间结点,是为了让因果图的结构更加明了,简化因果图导出的判定表。
分析得出以下两个结论:只有1、2、3、4都不成立时,产生11,跟5、6、7结合分别得出22、23、24三个结果;不管5、6、7哪个成立,只要1、2、3、4有一个成立,就产生结果21;再加上落点有自方棋子的状况。
因果图测试用例

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

1.引言等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。
考虑输入条件之间的相互组合,可能会产生一些新的情况。
但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。
因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。
这就需要利用因果图(逻辑模型)。
因果图(Cause-EffectGraphing)提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。
其中原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。
因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
2.因果图介绍2.1图例说明1、4种符号分别表示了规格说明中向4种因果关系。
如图2-1所示。
图2-1 因果图关系2、因果图中使用了简单的逻辑符号,以直线联接左右结点。
左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
3、ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。
ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。
2.2因果图概念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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.某软件规格说明书包含这样的要求:第一列字符必须是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种情况的测试用例,这是我们所需要的数据。
2.有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1)分析这一段说明,列出原因和结果
原因:
1——售货机有零钱找
2——投入1元硬币
3——投入5角硬币
4——押下橙汁按钮
5——.押下啤酒按钮
结果:
21——售货机〖零钱找完〗灯亮
22——退还1元硬币
23——退还5角硬币
24——送出橙汁饮料
25——送出啤酒饮料
2)画出因果图,如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建
立中间结点,表示处理的中间状态。
中间结点:
11——投入1元硬币且押下饮料按钮
12——押下〖橙汁〗或〖啤酒〗的按钮
13——应当找5角零钱并且售货机有零钱找
14——钱已付清
3)转换成判定表:
4)在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16
列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。