测试用例设计_因果图和判定表
- 格式:ppt
- 大小:1.70 MB
- 文档页数:19
测试⽤例设计⽅法之判定表和因果图⼀、判定表等价类边界值分析法主要关注单个或者多个输⼊类条件的测试,并未考虑到输⼊条件之间的各种组合,输⼊条件与输出结果之间有相互制约关系的测试1、概念: 存在多个输⼊条件、多个输出结果,输⼊和输⼊之间有组合关系,输⼊和输出之间有依赖或者制约关系2、判定表的组成: -条件桩:所有输⼊条件、如⽋费状态、关机状态 -动作桩:所有的可能的输出结果,如允许主被叫、不允许主被叫 -条件项:单个条件的取值范围,⼀般都是有效等价类和⽆效等价类 -表⽰⽅式 -字符: -真/有效等价类/Y -假/⽆效等价类/N -数字 -真/有效等价类/Y -假/⽆效等价类/N -动作项:基于每⼀种条件的组合,得到确认的结果,如打不通、打得通3、设计测试⽤例的步骤: 1、明确条件桩(找到所有的属兔条件) 2、明确动作桩(找到所有的输出结果) 3、对条件桩进⾏组合 4、明确每个组合对应的动作桩(每个输⼊条件组合的情况下的输出结果) 5、设计测试⽤例,每⼀⾏对应⼀条测试⽤例4、判定表的应⽤场景: -多输⼊组合场景,即输⼊与输⼊之间有组合案例⼀、若⽤户⽋费或者关机则不允许主被叫; 步骤:1、找到所有的输⼊条件 2、找到输⼊条件的组合 3、找到组合对应的输出结果案例⼆、订单状态订单检查,如果⾦额⼤于500元,⼜未过期,则发出批准单和提货单;如果⾦额⼤于500元,但过期了,则不发批准单与提货单;如果⾦额⼩于500元,则不论是否过期都发出批准单和提货单;在过期的情况下,不论⾦额⼤⼩还需要发出通知单。
案例三、⽂件修改如果想对⽂件进⾏修改,输⼊的第⼀列字符必须是A/B,第⼆列字符必须是⼀个数字,如果第⼀列字符不正确,则给出信息L;如果第⼆列字符不正确,则给出信息M。
⼆、因果图(扩展) ------------------ ⼀般直接⽤判定表 因果图设计⽅法是对判定表的扩展 -概念:⽤图解的⽅法表⽰输⼊的各组合关系,写出判定表,进⽽设计测试⽤例的⼀种⽅法 -适⽤范围:适⽤于分析程序输⼊条件的各种组合情况,以及输⼊和输出之间的依赖关系 -核⼼: -因:即输⼊条件 -果:即输出结果 -基本符号(重点掌握) -恒等:条件成⽴,结果成⽴ -⾮(~)NOT: 条件成⽴,结果不成⽴,条件不成⽴,结果成⽴ -或(V)OR:只要有⼀个条件成⽴,结果就成⽴;所有条件都不成⽴时,结果才不成⽴ -与 ^ and:多个条件必须同时成⽴,结果成⽴;只要有⼀个条件不成⽴,结果就不成⽴。
测试用例设计方法之因果图法与判定表1.因果图法1.1.前言从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。
因果图法即因果分析图,又叫特性要因图、石川图或鱼翅图,它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具。
1.2.定义因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。
因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。
因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。
因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。
1.3.因果关系因果图的表示中输入与输出间的因果关系有四种:1)恒等关系:当输入条件发生,会产生对应输出,当输入条件不发生时,不会产生都会应输出。
2)非关系:与恒等关系相反。
3)或关系:多个输入条件中,只要有一个发生,则会产生对应输出。
4)与关系:多个输入条件中,只有所有输入项发生时,才会产生对应输出。
特定的符号标明因果关系如下(图1.3.1):图1.3.1因果图的表示中输入与输入间的约束关系有四种:1)异(E):所有输入中至多一个输入条件发生。
2)或(I):所有输入中至少一个输入条件发生。
3)唯一(O):所有输入中有且只有一个输入条件发生。
4)要求(R):所有输入中只有一个输入条件发生,则其它输入也会发生。
特定的符号标明输入与输入间约束关系如下(图1.3.2):图1.3.2因果图的表示中输出条件约束类型(见图1.3.2):1)输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。
第三部分任务3-3附2因果图法附2作业:因果图法测试作业.1、象棋游戏规则(针对棋子“馬”):1)如果落点在棋盘外,则不移动棋子2)如果落点与起点不构成日字型,则不移动棋子。
3)如果落点处有自己方棋子,则不移动棋子。
4)如果落点方向的临近交叉点有棋子(绊马腿),则不移动棋子。
5)如果不属于1-4条,且落点处无棋子,则移动棋子。
6)如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子。
7)如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
(1)使用因果图法列出原因和结果(2)画出因果图,修改为最简洁的图。
注意分析原因之间、结果之间是否有约束关系。
(3)根据因果图列出判定表(4)根据判定表的中得出的输入数据,写出规范的。
参考步骤:(1)分析数据原因:1————2————。
结果:A————B————。
(2)因果图(3)判定表(4)测试用例测试用例格式可参照下表2(附加)、有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下:若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
(每次只投入一个硬币,只押下一种饮料的按钮)如投入5角的硬币,按下按钮后,总有饮料送出。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。
若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
(1)使用因果图法列出原因和结果(2)画出因果图,修改为最简洁的图。
注意分析原因之间、结果之间是否有约束关系。
(3)根据因果图列出判定表(4)根据判定表的中得出的输入数据,写出规范的测试用例。
参考步骤:(1)分析数据原因:1————2————。
结果:A————B————。
(5)因果图(6)判定表(7)测试用例测试用例格式可参照下表。
测试⽤例(因果图法)⼀、应⽤场合在⼀个界⾯中,有多个输⼊条件,输⼊之间存在组合关系,不同的输⼊组合会产⽣不同的输出结果的组合,为了弄清输⼊和输出的关系,使⽤因果图 (控件组合)⼆、核⼼概念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——因果图判定表判定表法判定表是分析和表达多种输入情况下执行不同动作的工具,判定表方法主要用于处理程序输入条件的不同组合,但是要求条件的组合必须是bool类型,而且条件和预期的结果都是可以分析出来的。
判定表能够有效地弥补等价类和边界值方法的不足,使得输入条件之间的组合和相互影响得到充分的测试。
使用判定表的一般思路是:1、需求分析,分析出条件和结果之间的各种组合2、将条件和结果分别填入判定表3、讲条件和结果进行二进制排列4、针对每一项组合,分析出结果,并去除无效项,是判定表得到简化。
在合并判定表时,如果条件之中只有一个不同,则可以合并。
如果判定表的组合不够多,建议不要进行合并,这样可以测试的充分一些。
5、每一列生成一个测试用例以阅读指南的例子来设计一个判定表:从例子中可以看到,不同的条件组合使用判定表方法可以充分弥补等价类边界值得不足,但是当输入条件过多时,使用判定表会产生大量测试用例。
而其无效用例不易发现,更不能覆盖条件之间的先后关系。
因此,在一定情况下,使用判定表还需要因果图的帮忙。
--------------------------------------------------------------------------------因果图因果图用于描述系统之间的输入输出,输入输出之间的约束关系和因果关系。
因果图与判定表往往结合使用,使用因果图可以得到判定表。
使用因果图的方法:1、分析输入输出并进行标识2、分析输入和输入、输入和输出之间的关系3、将得到的关系使用因果图的方法表示出来4、根据因果图得到判定表5、依据判定表生成测试用例这里分析一个自动售货机的因果图分析方法:条件:有一个处理单价为5角的自动售货机,当投入5角或1元硬币时,选择橙汁或啤酒,饮料出来;若自动售货机没有零钱,则显示零钱照完,亮红灯,这时候投入的1元被退出来,饮料不送出来。
如果有零钱,则出饮料并找5角钱。
⿊盒测试⽤例设计⽅法⼆(因果图法、判定表法、场景法)测试步骤⼀、因果图法1.1什么是因果图法因果图是⼀种适合于描述对于多种输⼊条件组合的测试⽅法根据输⼊条件的组合、约束关系和输出条件的因果关系,分析输⼊条件的各种组合情况,从⽽设计测试⽤例的⽅法它适合于检查程序输⼊条件涉及的各种组合情况。
1.2因果图步骤第⼀步:根据功能说明书中规定的原因和结果之间的关系画出因果图恒等:原因A成⽴,结果B⼀定成⽴⾮:愿意A成⽴时,结果B⼀定不成⽴或:原因A、B、C三者只要有⼀个成⽴,结果D就⼀定成⽴与:原因A、B、C都成⽴时,结果D才会出现第⼆步:根据功能说明在因果图中加上约束条件其中互斥、包含、唯⼀、要求是对原因的约束,屏蔽是对结果的约束。
它们的含义如下:1、互斥(exclusive):表⽰不同时为1,即a,b,c中⾄多只有⼀个12、包含(include):表⽰⾄少有⼀个1,即a,b,c中不同时为03、唯⼀(only):表⽰a,b,c中有且仅有⼀个14、要求(request):表⽰若a=1,则b必须为1。
即不可能a=1且b=05、屏蔽(mask):表⽰若a=1,则b必须为0(当你收到注册成功的提⽰,就⼀定不会收到数据填写错误的提⽰)1.3因果图使⽤实例例:阅读和分析功能说明书,识别出“原因”和“结果”,并加以编号(1)有⼀个饮料⾃动售货机(处理单价为5⾓钱)的控制处理软件,它的软件规格说明如下若投⼊5⾓钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。
若投⼊1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则⾃动售货机在送出相应饮料的同时退回5⾓钱的硬币。
分析原因和结果画出原因和结果之间的关系(部分关系)按照需求描述原因、结果的约束因果图使⽤中的局限性:当原因和结果很多的时候,它们之间的关系连线就会很多,导致因果图的可读性变差。
因此⽤作局部的⼩功能(原因和结果不是很多的时候)分析。
列出所有的原因和结果的列表,设计初步的测试⽤例步骤C5:这是⼀种bug,不能做测试设计。
测试用例设计--因果图定义因果图法就是从程序规格说明书的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例。
首先我们来了解一下因果图的基本符号: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;再加上落点有自方棋子的状况。
测试用例设计方法的介绍—因果图前言为什么需要测试用例 (2)1.测试用例设计的方法分类 (2)1.1.黑盒测试 (2)1.2.白盒测试 (2)1.3.灰盒测试 (3)2.因果图的具体介绍 (3)2.1.为什么么需要因果图 (3)2.2.因果图概念介绍 (4)2.2.1.布尔逻辑运算符 (4)2.2.2.因果图的约束关系表示法 (6)2.3.使用因果图设计测试用例的步骤 (8)2.3.1.分析需求 (8)2.3.2.确定原因和结果 (8)2.3.3.确定逻辑关系 (8)2.3.4.确定约束关系 (8)2.3.5.把因果图转换为决策表 (8)2.3.6.根据原因给出结果 (9)2.3.7.设计测试用例 (9)2.4.举例说明 (9)2.4.1.例子1 (9)2.4.2.例子2 (12)3.使用因果图的好处 (14)4...................................................................................................... 错误!未定义书签。
前言为什么需要测试用例测试的目的是在有限的资源下,尽可能多的找出系统的缺陷。
这就要求在测试中,尽可能完全的走完系统的所有流程,保证所有的分支都经过测试。
而测试过程是由人来执行的,不可能避免的会遗漏一些应该测试内容,这样就很容易出现测试不全面的问题。
再者,现有的软件开发大多都是迭代式进行的,需要对同一个功能反复测试多遍。
很有可能第一轮测试得比较全面,当进行第二轮的时候,可能也会遗漏某些点。
这种情况下,测试过程是由人控制的,具有盲目性,是不可控制的。
而测试用例就是把软件测试行为做一个科学化的组织和归纳,用来指导测试行为。
一般需求入基线后,测试人员开始介入项目,对需求进行分析,并根据自己对需求的理解设计出详细的测试用例。
这样在测试执行时,按照设计好的过程去执行,避免由于人为的原因使测试不全面。
测试⽤例--因果图、判定表法因果图、判定表法⼀、应⽤场合 在界⾯中有多个控件,控件之间有组合或限制关系,不同的输⼊组合会对应不同的输出结果,如果想弄清楚不同的输⼊组合到底对应哪些输出结果,可以使⽤因果图/判定表法。
(因果图/判定表法⽐较适合测试组合数量较少的情况,⼀般少于20种)⼆、因果图 因(原因):输⼊条件 果(结果):输出结果 因果图:就是通过画图的⽅式来表⽰输⼊条件(因)和输出结果(果)之间的关系。
三、因果图中的图形符号 1、基本图形符号 表⽰的是因与果之间的关系 恒等 如果a=1 ,那么b=1 如果a=0,那么b=0 与 与的含义:只有所有条件都为1时,结果为1,有任何⼀个条件为0(或者所有条件为0)那么结果为0. 简化:全1为1,有0为0 分析过程如下图: 与的图形符号: 或 或的含义:只有所有条件都为0时,结果为0,有任何1个条件为1(或者所有条件为1)时,结果为1 简化:全0为0,有1为1 或的关系图形符号: ⾮:取反 如果a=1,那么b=0 如果a=0,那么b=1 2、限制关系图形符号 限制关系图形要么在因(输⼊条件)之间,要么在果(输出结果)之间。
互斥(E-exclude) 含义:可以不选,如果选只能选1个 唯⼀(O-Only) 含义:有且只有1个(必须要选,⽽且只能选1个) 唯⼀和互斥的区别: 互斥可以不选 唯⼀必须要选1个 包含(I-include) 含义:⾄少选1个(可以多选,不能不选,最少得选1个) 要求(R-required) 含义:如果a=1 那么要求b必须是1,反之如果a=0,那么b值⽆所谓 屏蔽(M-masked) 含义:当a=1时,b=0 当a=0,b的值有可能是1,也有可能是0四、测试步骤 被测程序:交通⼀卡通充值模拟系统 步骤1:了解需求,找出所有的输⼊条件(因) 投币50元 投币100元 充值50元 充值100元 步骤2:找出所有的输出结果(果) 成功充值并退卡 找零 错误提⽰并退卡 将因和果填⼊《判定表》中 步骤3:找出输⼊条件之间的组合和限制关系。
测试⽤例设计⽅法之判定表、因果图判定表法概念:分析和表达多种输⼊条件下系统执⾏不同动作的⼯具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体⼜明确判定表法设计⽤例的步骤:列出所有的条件桩和动作桩填⼊条件桩、条件项填⼊动作桩、动作项化简,合并相似规则将每条规则转化为⽤例优缺点分析:优点:能把复杂的问题按各种可能的情况⼀⼀列举出来,简明⽽易于理解,也可避免遗漏缺点:系统庞⼤时,列条件桩是体⼒活;合并存在漏测的风险。
⼀个显然易见的原因是,虽然某个输⼊条件在输出接⼝上是⽆关的,但是在软件设计上,内部针对这个条件⾛了不同的程序分⽀适⽤范围:多个输⼊判断条件存在逻辑关系,且不分先后的情况。
实例演习1、如果【觉得疲倦】并且对书的内容【感兴趣】,同时书中的内容让你【糊涂】的话,回到本章重读2、如果【觉得疲倦】并且对书的内容【感兴趣】,同时书中的内容【不让你糊涂】,继续读下去3、【不觉得疲倦】并且对书的内容【感兴趣】,但是书中的内容让你【糊涂】的话,回到本章重读4、如果【觉得疲倦】并且对书中的内容【不感兴趣】,同时书中的内容不让你糊涂,请停⽌阅读,休息5、如果【觉得疲倦】并且对书的内容【不感兴趣】,并且书中的内容让你糊涂,请停⽌阅读,休息6、【不疲倦】,对书的内容【感兴趣】,书中的内容不糊涂,继续读下去7、【不疲倦】,【不感兴趣】,书中内容糊涂,跳到下⼀章去读8、【不疲倦】,【不感兴趣】,书中内容不糊涂,跳到下⼀章去读解析:列出所有条件桩、动作桩化简合并因果图法概念:因果图⽅法最终⽣成的就是判定表判定表法设计⽤例的步骤:把⼤的系统规格划分解成可以测试的规格⽚段分析分解后待测的系统规格,找出原因、结果画出因果图把因果图转换成判定表简化判定表⽤判定表中的每⼀项⽣成测试⽤例优缺点分析:优点:因果图法能够帮助我们按照⼀定步骤,⾼效的选择测试⽤例,设计多个输⼊条件组合⽤例因果图分析还能为我们指出,程序规格说明描述中存在什么问题缺点:输⼊条件与输出结果的因果关系,有时难以从软件需求规格说明书得到即使得到了这些因果关系,也会因为因果关系复杂导致因果图⾮常庞⼤,测试⽤例数⽬及其庞⼤适⽤范围:多个输⼊条件组合实例演习采⽤基于因果图的⽅法为下列程序设计测试⽤例某⼀程序的规格说明:第⼀列字符必须是A或者B,第⼆列字符必须是⼀个数字,在此情况下进⾏⽂件的修改。
测试⽤例设计--判定表
⼀. 判定表
1. 定义
判定表通常由四部分组成,如上图:
条件桩 : 它列出决定⼀组条件的对象;
条件项: 它列出各种可能的条件组合;
动作桩: 它列出所有的操作;
动作项: 它列出在对应的条件组合下的动作.
1. 应⽤的范围
在多个条件决定多个动作,并且每个条件的取值只有两种情况下,我们就可以采⽤判定表⽅法。
1. 步骤
1) 识别条件和动作
2) ⽣成判定表
3) 简化判定表
1. 案例
订购单的检查。
如果⾦额超过500元,⼜未过期,则发出批准单和提货单;如果⾦额超过500元,但过期了,则不发批准单;如果⾦额低于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。
判定表—分析过程
1) 识别条件和动作
2) ⽣成判定表
3) 简化判定表
在很多情况下,⼀个判定表写出来以后,是很复杂的,我们需要对其进⾏简化。
如果表中有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,我们就可以将其合并。
这⾥在引⼊⼀个概念,规则,以上判定表⾥,右部的每⼀列(条件项和对应的动作项)都是⼀条规则。
以上判定表⾥每⼀条规则都可以转化为测试⽤例。
测试用例设计方法之因果图法(一)因果图法的来源➢大家熟悉的等价类划分法和边界值分析法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等;➢但是,如考虑所输入条件之间的相互组合,会由于组合情况数目相当大,需要大量的测试用例;➢因果图法,是一种帮助人们系统地选择一组高效率测试用例的方法。
(二)因果图法的特点➢考虑输入条件间的组合关系;➢考虑输出条件对输入条件的信赖关系,即因果关系;➢测试用例发现错误的效率高;➢能检查出功能说明中的某些不一致或遗漏;➢因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。
(三)因果图法基本步骤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。