测试用例设计自动售货机因果图分析
- 格式:doc
- 大小:531.50 KB
- 文档页数:7
测试用例设计之因果图方法一.方法简介1.定义是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
2.因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。
这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
3.因果图介绍1) 4种符号分别表示了规格说明中向4种因果关系。
2) 因果图中使用了简单的逻辑符号,以直线联接左右结点。
左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
3) Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。
Ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。
4.因果图概念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。
“与”也可有任意个输入。
前面两者①,②,考虑的是单个输入(原因)和输出(结果)之间的关系:也就是输入为真(假)时,输出的值为真还是假的对应关系,很自然的,我们很容易想到有两种情况:一种和输入同真同假,一种和输入相反。
后面两者③,④,考虑的是多个输入之间的组合输入和输出之间的关系:我们也很容易想到:一种是组合关系为或(or),一种组合关系为组合(and),满足这种组合关系得出的输出才为真,否则为假2)约束输入状态相互之间还可能存在某些依赖关系,称为约束。
例如, 某些输入条件本身不可能同时出现。
测试用例设计-因果图方法一.方法简介定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。
这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
因果图介绍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。
一、测试项要求如下:有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱灯是亮的,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红二、分析以上要求,得出原因和结果:原因:1、售货机有零钱找2、投入1元钱3、投入5角钱4、选择橙汁5、选择啤酒结果:21、售货机“零钱找完”灯亮22、退还1元钱23、找回5角钱24、送出橙汁饮料25、送出啤酒饮料三、因果图如下:思路:逐个分析条件,看它与其它哪些条件之间有制约关系,都会影响哪些结果,把这种制约影响关系画出四个角度着手画因果图。
又由于条件1为真和为假时导致的结果不同,所以为真和为假两种情况下的因果图都要画出来,否因果图中出现的中间节点为:11、需要找回5角钱12、选择了橙汁或啤酒13、售货机能够找出5角钱14、钱已结清,可以送出饮料四、根据因果图画出判定表1、条件2、3不能同时为1123456789101有零钱找1111111111四、根据状态图完成判定表12=or(4,5)11=and(2,12)13=and(1,11)14=or(3,13)21=not(1)22=and(11,not(1))23=1324=and(4,14)五、将这16条规则分别转化测试用例其它用例略1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
当售货机没有零钱找,则一个显示〖零零钱找,则显示〖零钱找完〗的红灯不会亮,在送出饮料的同时退还5角硬币。
系画出来,直到所有条件都被分析、所有结果都被覆盖。
本例中,条件1、2、4;1、2、5;3,4;3,5之间存在情况下的因果图都要画出来,否则覆盖不到所有结果。
1234567892012345678111111000000000000示〖零钱找完〗的红间存在制约关系,从这。
测试用例设计技术之----因果图上次讲了因果图法的基本原理,这种方法是有因必有果,正是由于多个原因的不同组合,使得结果也不尽相同。
由于组合情况很多,才用因果图法能大大简化测试用例的数量。
我们来看一个例子:有一个饮料自动售货机(处理单价为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美分”不是等价关系。
因果图法设计测试⽤例等价类划分法、边界值分析法及错误推断法在对输⼊条件的考虑中并未重视输⼊条件的组合。
事实上,当输⼊条件存在若⼲种可能的组合时,必须对这些组合加以考虑,以证实测试程序在某种输⼊组合的情况下恩能否完成规格说明书中预先规定的功能,否则所做的测试是不充分的。
因果图(Cuase-effect Graph)是⼀种描述输⼊条件的组合及每种组合对应的输出的图形化⼯具。
在因果图的基础上可以设计测试⽤例。
因果图的画法:(a)恒等。
若原因出现,则结果出现;若原因不出现,则结果不出现。
(b)⾮。
若原因出现,则结果不出现;若原因不出现,则结果出现。
(c)或。
若⼏个原因中有⼀个出现,则结果出现;若⼏个原因均不出现,则结果不出现。
(d)与。
若⼏个原因都出现,结果才出现;若⼏个原因中有⼀个不出现,则结果不出现。
为了表⽰因果图中的约束条件,可⽤⼀些符号在因果图中加以标识。
从原因⽅⾯考虑主要有4种约束条件:(a)E(互斥、排他)。
a、b两个原因不会同时出现,最多只有⼀个出现。
(b)I(包含、或)。
a、b、c三个原因⾄少有⼀个出现。
(c)O(唯⼀)。
a、b两个原因必须有⼀个出现,且仅有⼀个出现。
(d)R(需求)。
a出现时b必定出现。
从结果⽅⾯考虑主要有1种约束条件:(a)M(屏蔽)。
a出现时,b必定不出现;a不出现时,b则不确定。
利⽤因果图设计测试⽤例应遵循的步骤:1)分析程序的规格说明书中哪些事原因,哪些是结果。
所谓原因,是指输⼊条件或输⼊条件的等价类,⽽结果是指输出条件。
给每⼀个原因和结果赋⼀个标识符。
2)分析程序规格说明书中的语义,确定原因与原因,原因与结果之间的关系,画出因果图。
3)由于语法环境的限制,⼀些原因与原因之间,原因与结果之间的组合不能出现。
对于这些特殊情况,在因果图中⽤⼀些记号标明约束或限制条件。
4)将因果图转化为判定表。
5)根据判定表的没⼀列设计测试⽤例。
当然,若能直接得到判定表,可以直接根据判定表设计测试⽤例。