《软件测试》---因果图-测试用例设计
- 格式:ppt
- 大小:387.50 KB
- 文档页数:14
测试用例设计方法之因果图法(一)因果图法的来源➢大家熟悉的等价类划分法和边界值分析法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等;➢但是,如考虑所输入条件之间的相互组合,会由于组合情况数目相当大,需要大量的测试用例;➢因果图法,是一种帮助人们系统地选择一组高效率测试用例的方法。
(二)因果图法的特点➢考虑输入条件间的组合关系;➢考虑输出条件对输入条件的信赖关系,即因果关系;➢测试用例发现错误的效率高;➢能检查出功能说明中的某些不一致或遗漏;➢因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。
(三)因果图法基本步骤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。
测试用例设计—自动售货机因果图分析命题设计了一个自动售货机软件测试用例,用于处理单价为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(其他)错误推测⽅法:⼀. ⽅法简介1. 定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从⽽有针对性的设计测试⽤例的⽅法。
2. 错误推测⽅法的基本思想:列举出程序中所有可能有的错误和容易发⽣错误的特殊情况,根据他们选择测试⽤例。
1) 例如, 输⼊数据和输出数据为0的情况;输⼊表格为空格或输⼊表格只有⼀⾏。
这些都是容易发⽣错误的情况。
可选择这些情况下的例⼦作为测试⽤例。
2) 例如,前⾯例⼦中成绩报告的程序,采⽤错误推测法还可补充设计⼀些测试⽤例:I. 程序是否把空格作为回答II. 在回答记录中混有标准答案记录III. 除了标题记录外,还有⼀些的记录最后⼀个字符即不是2也不是3IV. 有两个学⽣的学号相同V. 试题数是负数。
3) 再如,测试⼀个对线性表(⽐如数组)进⾏排序的程序,可推测列出以下⼏项需要特别测试的情况:I. 输⼊的线性表为空表;II. 表中只含有⼀个元素;III. 输⼊表中所有元素已排好序;IV. 输⼊表已按逆序排好;V. 输⼊表中部分或全部元素相同。
⼆. 实战演习暂⽆:因果图⽅法:因果图⽅法⼀. ⽅法简介1.定义:是⼀种利⽤图解法分析输⼊的各种组合情况,从⽽设计测试⽤例的⽅法,它适合于检查程序输⼊条件的各种组合情况。
2.因果图法产⽣的背景:等价类划分法和边界值分析⽅法都是着重考虑输⼊条件,但没有考虑输⼊条件的各种组合、输⼊条件之间的相互制约关系。
这样虽然各种输⼊条件可能出错的情况已经测试到了,但多个输⼊条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输⼊条件的各种组合,则可能的组合数⽬将是天⽂数字,因此必须考虑采⽤⼀种适合于描述多种条件的组合、相应产⽣多个动作的形式来进⾏测试⽤例的设计,这就需要利⽤因果图(逻辑模型)。
3.因果图介绍1) 4种符号分别表⽰了规格说明中向4种因果关系。
2) 因果图中使⽤了简单的逻辑符号,以直线联接左右结点。
左结点表⽰输⼊状态(或称原因),右结点表⽰输出状态(或称结果)。
测试⽤例(因果图法)⼀、应⽤场合在⼀个界⾯中,有多个输⼊条件,输⼊之间存在组合关系,不同的输⼊组合会产⽣不同的输出结果的组合,为了弄清输⼊和输出的关系,使⽤因果图 (控件组合)⼆、核⼼概念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 的值不⼀定重点要求: 互斥、唯⼀、要求 屏蔽⼀般在输出中常⽤。
提交方式:以“学号姓名”命名的word文档。
有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。
若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。
若投入的是两元硬币,在送出饮料的同时退还5角硬币。
要求:用因果图法(列出原因和结果,画出因果图,制定决策表)来设计测试用
例。
原因:
C1:投入1元5角硬币
C2:投入2元硬币
C3:按下可乐按钮
C4:按下雪碧按钮
C5:按下红茶按钮
中间原因:
I1:已投币
I2:已按钮
结果:
E1:退回5角硬币
E2:送出可乐
E3: 送出雪碧
E4:送出红茶
因果图
C1 E1
^
E vI1
^E2 C2
C3 ^E3
E C4 vI2
^
C5 E4 决策表:
用例1投入1.5元硬币按下可乐按钮送出可乐
用例2投入1.5元硬币按下雪碧按钮送出雪碧
用例3投入1.5元硬币按下红茶按钮送出红茶
用例4投入1.5元硬币不按下按钮
用例5投入2元硬币按下可乐按钮送出可乐,并退回5角硬币
用例6投入2元硬币按下雪碧按钮送出雪碧,并退回5角硬币
用例7投入2元硬币按下红茶按钮送出红茶,并退回5角硬币
用例8投入2元硬币不按下按钮用例9未投入硬币按下可乐按钮用例10未投入硬币按下雪碧按钮用例11未投入硬币按下红茶按钮。
测试用例设计—自动售货机因果图分析命题有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
分析根据该命题,我们可以分析出,自动售货机的业务中一共存在5个条件和5个结果,分别是:条件:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮结果:1.售货机〖零钱找完〗灯亮当售货机中没有零钱的时候就有亮红灯2.退还1元硬币当投入1元,而且售货机中没有零钱可找的时候3.退还5角硬币 当投入1元,而且售货机中有零钱可找的时候4.送出橙汁饮料5.送出啤酒饮料因果图-画条件和结果有零钱选橙汁选啤酒投5角投1元红灯亮出橙汁出啤酒找5角找1元因果图-画简单关系在画完空白的条件和结果之后,我们可以将题目中最直接和简单的因果条件标出1、条件“有零钱”和结果“红灯亮”是一个“非”的关系,当“有零钱”的时候,红灯是不亮的,而当售货机中“没有零钱”的时候,红灯必须要亮的。
2、条件“投1元”和条件“投5角”是一个“E ”的关系,这两个动作不可能同时发生,即同时投入1元钱和5角钱(不能同时为真);但是我们允许即“不投入1元钱”也“不投入5角钱”(可以同时为假)。
3、条件“选啤酒”和条件“选橙汁”是一个“E ”的关系,这两个动作不可能同时发生,即同时“选择啤酒”和“选择橙汁”(不能同时为真);但是我们允许即“不选择啤酒”也“不选择橙汁”(可以同时为假)。
4、条件“选啤酒”和条件“选橙汁”对于程序处理过程是等价的,即二者无论是价格还是系统的处理方法都是相同的,因此这两个条件可以合并为一个中间节点。
而且这两个条件之间使用“或”的关系。
测试⽤例设计--因果图1、为什么采⽤因果图测试⽤例的测试⽅法?判定表设计法在设计测试⽤例的过程中,考虑了输⼊与输⼊存在约束约束关系,没有考虑到输⼊与输出之间的约束关系。
简单的业务逻辑可以⽤判定表解决,复杂的约束关系就不太适合了。
2、什么是因果图设计法?因果图在软件测试⽤例的设计过程中,⽤于描述输⼊与输⼊、输⼊与输出之间存在的约束关系。
针对需求规格,将原因和影响分为2组4类:输⼊与输出、输⼊与输⼊。
输⼊与输出的关系主要有:恒等、⾮、与、或恒等:若输⼊条件发⽣,则⼀定会产⽣对应的输出,若输⼊条件不发⽣,则⼀定不会产⽣对应的输出⾮:若输⼊条件发⽣,则⼀定不会产⽣对应的输出,若输⼊条件不发⽣,⼀定会产⽣对应的输出与:多个输⼊条件,只有所有输⼊条件发⽣时,才会产⽣对应的输出或:在多个输⼊条件中,只要有⼀个发⽣,则会产⽣对应输出。
输⼊与输⼊之间同样存在异、或、唯⼀、要求等4种关系异(所有输⼊条件中⾄多有⼀个发⽣,可以⼀个条件条件也不发⽣)或(所有输⼊条件⾄少有⼀个输⼊条件发⽣,也可以多个条件共存)唯⼀(所有输⼊条件有且只有⼀个发⽣)要求(所有输⼊条件中只要有⼀个条件发⽣,其他的输⼊也会发⽣)3、因果图设计测试⽤例步骤?⼀、根据需求确定原因(输⼊)和结果(输出)⼆、根据需求中输⼊与输出的关系,输⼊与输⼊之间的关系,画出因果图三、画出判定表,根据因果图,得到最终的最终判定表四、根据判定表得到⽤例规则,在结合等价类和边界值⽤例设计⽅法细化测试⽤例4、因果图设计测试⽤例的优缺点?优点:能够帮助测试⽤例设计者快速了解需求,理解业务逻辑,然后快速设计判定表,从⽽得到所需的测试⽤例,在因果关系复杂的系统中,可采⽤该⽅法缺点:在使⽤规则的过程中注意规则的规模5、因果图设计测试⽤例⽰例?第⼀步:根据需求找出输⼊(原因)和输出(结果)输⼊(原因):第⼀列是A(C1)第⼀列是B(C2)第⼆列是数字(C3)中间结点:第⼀列为A或者B(C12)输出(果):输出M(E1),修改⽂件(E2),输出L(E3)第⼆步:把相同类型的原因放在⼀起,类似原因的中间节点连好线,对应的结果放在对⾯。