测试用例设计方法之因果图法

合集下载

因果图法

因果图法

测试用例设计—因果图法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。

测试用例设计-因果图方法

测试用例设计-因果图方法

测试用例设计-因果图方法一.方法简介定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。

这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。

如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。

因果图介绍4种符号分别表示了规格说明中向4种因果关系。

因果图中使用了简单的逻辑符号,以直线联接左右结点。

左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。

Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。

Ci和ei均可取值0或1,0表示某状态不出现,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。

“与”也可有任意个输入。

约束输入状态相互之间还可能存在某些依赖关系,称为约束。

例如, 某些输入条件本身不可能同时出现。

输出状态之间也往往存在约束。

在因果图中,用特定的符号标明这些约束。

输入条件的约束有以下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。

7因果图法详解

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。
步骤:

软件测试用例之因果图法

软件测试用例之因果图法

软件测试⽤例之因果图法
简介
从⽤⾃然语⾔书写的程序规格说明的描述中找出因(输⼊条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。

因果图法即因果分析图,⼜叫特性要因图、⽯川图或鱼翅图,它是由⽇本东京⼤学教授⽯川馨提出的⼀种通过带箭头的线,将质量问题与原因之间的关系表⽰出来,是分析影响产品质量的诸因素之间关系的⼀种⼯具。

作⽤
因果图法是⼀种适合于描述对于多种输⼊条件组合的测试⽅法,根据输⼊条件的组合、约束关系和输出条件的因果关系,分析输⼊条件的各种组合情况,从⽽设计测试⽤例的⽅法,它适合于检查程序输⼊条件涉及的各种组合情况。

因果图法⼀般和判定表结合使⽤,通过映射同时发⽣相互影响的多个输⼊来确定判定条件。

因果图法最终⽣成的就是判定表,它适合于检查程序输⼊条件的各种组合情况。

采⽤因果图法能帮助我们按照⼀定的步骤选择⼀组⾼效的测试⽤例,同时,还能指出规范中存在什么问题,鉴别和制作因果图。

因果图法着重分析输⼊条件的各种组合,每种组合条件就是“因”,它必然有⼀个输出的结果,这就是“果”。

基本步骤
利⽤因果图导出测试⽤例⼀般要经过以下⼏个步骤:
1)分析软件规格说明的描述中哪些是原因,哪些是结果。

原因是输⼊或输⼊条件的等价类,结果是输出条件。

给每个原因和结果并赋予⼀个标识符,根据这些关系,画出因果图。

2)因果图上⽤⼀些记号表明约束条件或限制条件。

3)对需求加以分析并把它们表⽰为因果图之间的关系图。

4)把因果图转换成判定表。

5)将判定表的每⼀列作为依据,设计测试⽤例。

测试用例设计技术之----因果图

测试用例设计技术之----因果图

测试用例设计技术之----因果图上次讲了因果图法的基本原理,这种方法是有因必有果,正是由于多个原因的不同组合,使得结果也不尽相同。

由于组合情况很多,才用因果图法能大大简化测试用例的数量。

我们来看一个例子:有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。

若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

怎么分析这种具有一定实际意义的情况呢?按照因果图的说法,我们先分析一下,把原因与结果先找出来:原因是输入条件,在自动售货机里,硬币的投入、按钮的按下,都是输入,这样的话就有以下几个原因:(1)投入5角硬币(2)投入1元硬币(3)按下“橙汁”按钮(4)按下“啤酒”按钮结果有哪些呢?(1)送出“橙汁”饮料(2)送出“啤酒”饮料(3)找5角硬币按照因果关系,把因果图的雏形画出来:再加上因果图的约束关系,那么图形就成为以下:根据最终的因果图生成判定表:最后把测试用例写出来:用例编号用例说明输入数据预期结果SHJ-001 (1)投入硬币(2)按下按钮1元点击“橙汁”按钮退还5角硬币送出“橙汁”饮料SHJ-002 (1)投入硬币(2)按下按钮1元点击“啤酒”按钮退还5角硬币送出“啤酒”饮料SHJ-003 (1)投入硬币1元给出提示信息SHJ-004 (1)投入硬币(2)按下按钮5角点击“橙汁”按钮送出“橙汁”饮料SHJ-005 (1)投入硬币(2)按下按钮5角点击“啤酒”按钮送出“啤酒”饮料SHJ-006 (1)投入硬币5角给出提示信息SHJ-007 (1)按下按钮“橙汁”按钮给出提示信息SHJ-008 (1)按下按钮“啤酒”按钮给出提示信息。

测试用例设计—自动售货机因果图分析

测试用例设计—自动售货机因果图分析

测试用例设计—自动售货机因果图分析命题设计了一个自动售货机软件测试用例,用于处理单价为50美分的饮料。

规格如下:如果你放入50美分或1元硬币,并按下按钮[橙汁]或[啤酒],相应的饮料将交付如果自动售货机没有零钱,红灯将显示[零钱已经被换了],然后在放入1元硬币并按下按钮后,饮料将不会被递送,并且1元硬币将退出。

如果有零钱,显示“换出”的红灯将熄灭,50美分将在饮料交付时返还。

分析根据这个命题,我们可以分析自动售货机业务中存在5个条件和5个结果。

条件如下:1。

自动售货机有零钱。

投入1元硬币3。

投入50美分硬币4。

按下橙汁按钮5。

按下啤酒按钮结果:1。

自动售货机[换出]灯亮着。

当自动售货机没有变化时,会出现红灯2。

当硬币投入1元并且自动售货机没有零钱时,返还1元硬币。

3.当硬币投入1元时,返还50美分。

当自动售货机4有变化时。

发送橙汁饮料5。

发送啤酒饮料因果图-绘制条件和结果有变化红灯亮1元1元50美分,啤酒50美分,橙汁因果图-绘制简单关系在绘制空白条件和结果后,我们可以标记1为主题中最直接和最简单的因果条件。

条件“有变化”和结果“红灯亮”之间的关系是“没有”。

当“有零钱”时,红灯不亮,而当自动售货机“没有零钱”时,红灯必须亮。

2年,有条件的“投1元”和有条件的“投50分”是一种“E”关系。

这两个动作不能同时发生,即1元钱和50美分(不能同时发生);但是,我们允许“没有1元钱”和“没有50美分”(同时可能是假的)3,“啤酒选择”条件和“橙汁选择”条件为“e”关系,这两个动作不能同时发生,即“啤酒选择”和“橙汁选择”(不能同时为真);但是我们允许“不喝啤酒”和“不喝橙汁”(这可能同时是错误的)4,条件“啤酒选择”和条件“橙汁选择”相当于程序处理过程,即价格和系统处理方法都是相同的,因此这两个条件可以组合成一个中间节点此外,在两个条件之间使用“或”的关系5。

请注意,有条件的“1元”和有条件的“50美分”不是等价关系。

软件测试第四章--因果图讲解

软件测试第四章--因果图讲解
(3)由于语法或环境的限制,有些原因与原因之间、原因与 结果之间的组合情况不可能出现。为表明这些特殊情况,在 因果图上用一些记号表明约束或限制条件。
(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)分析软件规格说明中哪些是原因(即输入条件或输入条 件的等价类),哪些是结果(即输出条件),并给每个原因 和结果赋予一个标识符。

因果图法

因果图法

测试用例设计—因果图法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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

测试用例设计方法之因果图法
(一)因果图法的来源
大家熟悉的等价类划分法和边界值分析法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等;
但是,如考虑所输入条件之间的相互组合,会由于组合情况数目相当大,需要大量的测试用例;
因果图法,是一种帮助人们系统地选择一组高效率测试用例的方法。

(二)因果图法的特点
考虑输入条件间的组合关系;
考虑输出条件对输入条件的信赖关系,即因果关系;
测试用例发现错误的效率高;
能检查出功能说明中的某些不一致或遗漏;
因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。

(三)因果图法基本步骤
1.分割功能说明书
对于规模比较大的程序来说,由于输入条件的组合数太大,所以很难整体上使用一个因果图。

我们可以把它划分为若干部分,然后分别对每个部分使用因果图。

例如,测试编译程序时,可以把每个语句作为一个部分。

2.识别出“原因”和“结果”,并加以编号
所谓原因,是指输入条件或输入条件的等价类;而结果则是指输出条件或输出条件的等价类。

每个原因或结果都对应于因果图中的一个节点。

当原因或结果成立(或出现)时,相应的节点取值为1,否则为0。

例如,有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:
若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。

若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

分析这一段说明,我们可以列出原因和结果。

原因如下:
✧投入1元硬币;
✧投入5角硬币;
✧按下“橙汁”按钮;
✧按下“啤酒”按钮
结果
✧退还5角钱;
✧送出“橙汁”饮料;
✧送出“啤酒”饮料
3.根据功能说明书中规定的原因和结果之间的关系画出因果图
因果图的基本符号如图1所示:
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。

画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用上述基本符号连接起来。

在因果图中还可以引入一些中间节点。

利用上面的例子,根据原因和结果,可以画出相对应的因果图,如下图所示:
投入1元硬币
投入5角硬币
按下“橙
汁”按钮
按下“啤
酒”按钮
退还5角硬币
送出“啤酒”饮料
因果图
注意:在绘制因果图时,需要引入一些必要的表示中间状态的处理节点。

4.根据功能说明在因果图中加上约束条件
由于语法或环境限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。

为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。

因果图的约束条件如图所示:
E
互斥
I
包含
O
唯一
R
要求屏蔽
M
其中互斥、包含、唯一、要求时对原因的约束,屏蔽是对结果的约束。

他们的含义如下:
✧互斥:表示不同时为1,即a,b,c中至多只有一个1;
✧包含:表示至少有一个1,即a,b,c中不同时为0;
✧唯一:表示a,b,c中有且仅有一个1;
✧要求:表示若a=1,则b必须为1。

即不可能a=1且b=0;
屏蔽:表示若a=1,则b必须为0
完善上面的因果图,添加必要的约束条件,如原因①和原因②不能同时发生,也即1元硬币和5角硬币不会同时被投入到自动售货机内;而原因③和原因④也不能同时发生,因为程序的规格说明书规定,在投入硬币后,只能按下“橙汁”或“啤酒”的按钮。

添加约束条件的因果图如下图所示:
投入1元硬币
投入5角硬币
按下“橙汁
按下“啤酒
退还5角硬币
送出“橙汁”饮料
送出“啤酒”饮料
添加约束条件的因果图
E
5.根据因果图画出判定表
画判定表的方法一般比较简单,可以把所有原因作为输入条件,每一项原因(输入条件)安排为一行,而所有的输入条件的组合一一列出(真值为1,假值为0),对于每一种条件组合安排为一列,并把各个条件的取值情况分别添入判定表中对应的每一个单元格中。

例如,如果因果图中的原因有4项,那么,判定表中的输入条件则共有4行,而列数则为24=16。

确定好输入条件的取值之后,我们便可以很容易地根据判定表推算出各种结果的组合,也即输出,其中也包括中间节点的状态取值。

上述方法考虑了所有条件的所有组合情况,在输入条件比较多的情况下,可能会产生过多的条件组合,从而导致判定表的行数太多,过于复杂。

然而在实际情况中,由于这些条件之间可能会存在约束条件,所以很多条件的组合是无效的,也就是说,它们在判定表中也完全是多余的。

因此根据因果图画出判定表时,我们可以有意识地排除掉这些无效的条件组合,从而使判定表的列数大幅度减少。

例如,根据图所示的因果图,可以画出如表所示的判定表。

6.为判定表的每一列设计一个测试用例
即为从因果图中导出的判定表中的每一列设计一个测试用例。

相关文档
最新文档