-
2019-09-30 22:27:16
1、因果图法定义:因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
2、因果图特点:考虑输入条件的相互制约及组合关系;考虑输出条件对输入条件的依赖关系。
3、因果图的背景:
(1)等价类划分方法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
(2)如果在测试时必须考虑输入条件的各种组合,则可能的组合数目是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
4、因果图的核心:
(1)因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
- 因果图的“因”----输入条件
- 因果图的“果”----输出结果
(2)因果图法要注重考虑:
- 所有输入/输出条件的相互制约关系以及组合关系
- 输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”
5、因果图中基本符号:
(1)恒等
若原因出现,则结果出现;
若原因不出现,则结果也不出现;
--若c1=1,则e1=1;
--若c1=0,则e1=0;
取钱、打印等
(2)非 ~
若原因出现,则结果不出现;
若原因不出现,则结果出现;
--若c1=1,则e1=0;
--若c1=0,则e1=1;
若果存在,则不提示错误,若果不存在,则提示错误。
(3)或 ∨
若几个原因中出现一个,则结果出现;
若几个原因都不出现,则结果不出现;
需求:若买的商品总金额大于等于60元,则有一次抽奖的机会,
小明买的商品总金额为60元,2个原因中出现一个,满足抽奖的机会,可以抽奖;
小明买的商品总金额为40元,2个原因中都未满足,不具备抽奖的机会,不可以抽奖;
(4)与 ∧
若几个原因都出现,则结果出现;
若其中的一个原因不出现,则结果不出现;
若a=true且b=true,则c=true;
若a=true或b=false,则c=false;
男的、帅的、大高个==帅哥
女的、大高个!=帅哥
6、因果图中的约束条件
(1)互斥:最多有一个可能成立(下拉菜单)
(2)包含:至少有一个成立(下拉菜单)
(3)屏蔽:a成立时,b不成立;a不成立时,b的值不一定
元旦不上班;不是元旦,一定上班;
(4)唯一:三个或多个原因中有且只有一个成立(下拉菜单)
(5)要求:一个出现,另一个一定出现
今天是星期五,明天肯定是星期六
7、因果图法基本步骤
利用因果图法导出测试用例的几个步骤:
(1)找出所有原因,原因即输入条件或输入条件的等价类;
(2)找出所有的结果,结果即输出条件
(3)明确所有输入条件之间的制约关系以及组合关系
那些条件可以组合在一起,哪些条件不可以组合在一起
(4)明确所有输出条件之间的制约关系以及组合关系
那些输出结果可以同时输出,那些输出结果不能同时输出
(5)找出什么样的输入条件组合会出现那种输出结果
(6)把因果图转换成判定表/决策表
(7)为判定表或决策表中的每一列表示的情况设计测试用例。
更多相关内容 -
因果图法设计测试用例.ppt
2020-05-13 11:03:51因果图是设计测试用例的一种工具,着重检查各种输入的组合能够造成什么样的输出。前面几种方法并没有考虑到条件输入组合的情况。 要检查输入条件的组合,应首先把所有的输入条件划分成等价类,他们之间的组合情况... -
黑盒测试:决策表法、因果图法.zip
2019-06-19 18:39:45黑盒测试的决策表法和因果图法,可以提供给正在学习软件测试的学弟学妹们借鉴和参考! -
因果图法用例设计
2022-05-30 16:54:47因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的方法.对照规格说明书利用图解法分析输入条件的组合、约束关系和输出条件的因果关系,从而设计测试用例的方法,它适合于检查程等价类划分法和边界值法着重考虑输入条件,而不考虑输入条件的组合,决策表考虑了输入条件的组合情况,但没有考虑输入条件之间的相互制约的关系。
在查看程序规格说明时,如果发现输入之间有关系,相应会产生多个动作.需要考虑条件组合的情况,又发现条件之间存在相互制约,可以考虑使用因果图法。
因果图法概述
(1)因果图法相关概念
因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的方法.对照规格说明书利用图解法分析输入条件的组合、约束关系和输出条件的因果关系,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
因果图法从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),因果图法最终生成的是决策表,再通过决策表设计测试用例。
(2)因果图的关系符号
因果图主要使用图解的方式来分析输入条件的组合以及与输出之间的关系,在处理关系的时候有特定的符号。
(3)因果图的约束符号
在软件测试中,如果程序有多个输入那么除了输入与输出之间的作用关系之外,这些输入之间往往也会存在某些依赖关系;
某些输入条件本身不能同时出现,某一种输入可能会影响其他输入,这些关系称之为"约束"。
例如某一软件用于统计体检信息,在输入个人信息时,性别只能输入男或女,这两种输入不能同时存在,而且如果输入性别为女,那么体检项就会受到限制。
约束符号只在输入与输入之间,或者输出与输出直接产生约束,一般用虚线连接,有特殊含义的用带箭头的虚线连接。
①E约束(Exclusive,异)∶a和b中最多只能有一个为1,即a和b不能同时为1。如下图所示。
②I约束(at least one,或)∶a、b和c中至少有一个必须是1,即a、b、c不能同时为0。
如图所示。
③O约束((one and only one,唯一)∶a和b有且仅有一个为1。
如图所示。
④ R约束(Requires,要求)∶a和b必须保持一致即a为1时,b也必须为1a为0时,b也必须为0,这里有了一个前后的制约关系故用了带箭头的虚线。
如图所示。
⑤M约束(Mask,强制)∶若结果a为1,则结果b必须为0。这是唯一的一个对输出的约束,前面的4个都是对输入的约束。
这里也有前后的关系,而且是输出的约束,故用带虚线的箭头并且箭头在右侧。如图所示。
(4)使用因果图设计测试用例的步骤
①分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件)并给每个原因和结果赋予一个标识符。
②分析软件规格说明描述中的语义,找出原因与结果之间原因与原因之间对应的是什么关系?
根据这些关系,画出因果图。有些时候,原因和结果之间需要多步操作或组合,则可以添加中间节点,导出进一步的中间原因节点。
③由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。
为表明这些特殊情况在因果图上用一些记号标明约束或限制条件。
④把因果图转换成决策表。转换时原因就是条件桩,结果就是动作桩。
中间节点也放到条件桩中,记录中间值,它既是上一步的结果,又是下一步的原因。
⑤把决策表表的每一列拿出来作为依据,设计测试用例。
3.4.2 因果图法测试用例设计举例
(1)实例1∶某软件对修改文件要求
现有一款软件,其规格说明书要求,要对文件进行修改,必须先输入特定符号,才能修改,否则给出相应提示。输入符号的要求如下∶输入的第一个字符必须是#或*,第二个字符必须是一个数字此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息"类型错误",如果第二个字符不是数字,则给出信息"序号错误"。
根据因果图测试用例设计步骤,设计如下。
①分析软件规格说明书,找出原因和结果。
②找出原因与结果之间的因果关系,原因与原因之间的约束关系,画出因果图。
把每个原因分别作为一个节点,从上到下放在左侧,每个结果也分别作为一个节点,从上到下放在右侧。
由于第一个字符是#或*,不确定,要与第二个字符进行判断,而且还与两种结果有关系,图画出来线非常多,非常乱。
仔细分析,其实最终的结果这是判断第一个字符和第二个字符,这里就可以先判断一下第一个字符的情况,得到一个中间节点,然后再与第二个字符一起判断。
这就是"或"节点或"与"节点相关的启发方法。因
果图如下图所示,节点m1就是中间节点。
③因为原因c;和c,不能同时成立,所以在因果图上要施加E约束。
④把因果图转换为决策表。根据因果图建立决策表,有三个条件,则有规则8条。
由于中间节点起到承上启下的作用,需要放到决策表中,有助于动作桩的具体结果的产生。
这里由于c;和c,具有E约束,不能同时成立,即不能同时取1所以决策表的第1列和第2列不可能存在,由此,动作桩中添加了"不可能"这一项,以此来体现E约束的作用。
在做测试用例的时候不用写,因为这是不可能存在的情况。
具体决策表如下:
另外,分析这个决策表,表面上看可以进行简化,但是由于第1列和第2列不存在,不写测试用例,不用再进一步简化。
再加上因为存在E 约束等情况其余情况也不能再一步进行简化,即上表可以作为最终的决策表了。
编写测试用例如下:
(2)实例2∶自动售货机
假设有一个处理单价为5角钱的饮料自动售货机,请完成其软件测试用例的设计。
其规格说明如下。
若投入5角钱或1元钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若售货机没有零钱找,则显示“零钱找完”的红灯会亮,这时如果再投入1元硬币并按下按钮后,饮料不会送出来,同时1元硬币会退出来;若有零钱找,则显示“零钱找完”的红灯是不亮的,在送出饮料的同时退还5角硬币。
根据因果图测试用例设计步骤,设计如下。
①分析软件规格说明书,找出原因和结果。
②找出原因与结果之间的因果关系,原因与原因之间的约束关系,画出因果图。
如图下所示。
这里原因比较多,结果也比较多,而且互相之间都有关系,需要建立中间节点,表示处理中间状态,这里加了4个,具体如下。
④ 把因果图转换为决策表。根据因果图建立决策表,有5个条件,则有规则2^5=32条。
由于有E约束,动作桩中添加了"不可能"这一项,来体现E约束的作用,所以动作桩变成了6项。
具体见下表。
决策表中有E约束的情况,表格中会以灰色背景标识,最终结果都是不可能存在的情况。
得到初始决策表后.按照决策表步骤.下一步要进行简化。
上面决策表中有这样的几列没投入钱只按下了随意一款饮料或没按下任何饮料按钮,规格说明中没有任何结果,可以合并。
局部合并下如图所示。
另外由于表中有很多不可能出现的情况,可以把这些去掉后,让表的数据减少。
其实,有的读者可能发现,这个题目的规格说明其实不是很完善,如决策表中序号为24、20、8和4的这4列中,投了1元钱或5角钱后,没有进行任何的其他操作,按实际情况,应等待一定时间后(比如说30s)无操作,就应该退出相应的1元钱或5角钱。
再比如决策表中序号为18、17、2和1的这4列中,只是选了饮料,但没有投入钱币,等待一段时间后,应该提示投入钱币,如果超过一定时间不投入机器回归初始状态。
但是这个题目中没有任何说明,显然不合适。
建议读者试着添加需求后画出相应决策表。
⑤写出测试用例。根据决策表,去掉不可能的情况按照上图合并后,此自动饮料售货机的测试用例如下表所示。
1、恒等 有因就有果,没有因就没有果。
2、非 有因没有果,没有因有果。
3、或 条件有一个是真,结果就是真,条件都是假,结果才是假。
4、且(与) 条件都为真,结果才是真,一个条件为假,结果就是假。
利用因果图导出测试用例需要经过以下几个步骤∶
-①找出所有的原因,原因即输入条件或输入条件的等价类。
-②找出所有的结果,结果即输出条件。
-③明确所有输入条件之间的制约关系以及组合关系。
·哪些条件不能组合到一起,哪些条件可以组合到一起
④明确所有输出条件之间的制约关系以及组合关系。
·哪些输出结果不能同时输出,哪些输出结果可以同时输出
-⑤找出什么样的输入条件组合会产生哪种输出结果
-⑥把因果图转换成判定表/决策表。
-⑦ 为判定表/决策表中的每一列表示的情况设计测试用例。
-
【软件测试】: 测试用例:因果图法设计测试用例.doc
2021-04-01 23:39:48【软件测试】: 测试用例:因果图法设计测试用例.doc -
移动互联软件测试-2017 因果图法 因果图法-说课稿.docx
2020-11-01 08:35:16因果图法 PAGE 4 [文档标题 因果图法-说课稿 编号 幻灯片 说课稿 幻灯片01 今天我们来学习因果图法进行测试用例的设计 幻灯片02 因果图又称鱼骨图在软件测试用例设计过程中用于描述被测对象输入与输入输入与输出之间... -
常见的测试用例设计方法7---因果图法
2022-03-25 20:19:14一,因果图法的定义 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,他适合与检查 程序输入条件的各种组合情况。 二,因果图法的意义 等价类划分和边界值分析方法都是着重考虑输入...目录
一,因果图法的定义
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,他适合与检查
程序输入条件的各种组合情况。
二,因果图法的意义
等价类划分和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条
件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试测试到了,但多个输入
条件组合起来可能出错的情况却被疏忽了。
三,因果图法的适用场合
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采
用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要
利用因果图(逻辑模型)
四,因果图法的表示
- CI:原因
- EI:结果
注意:其中I取“0”表示状态不出现,“1”表示状态出现,若有多状态,可取大于1的多个值表示。
五,因果图法的四种关系
- 恒等:原因结果同时出现,若c1是1,则e1也是1;否则e1为0.
- 非~:原因出现,结果不出现;原因不出现,结果出现。若c1是1,则e1是0;否则e1 是1;
- 或V:原因只有一个出现,结果就出现;原因都不出现,结果就不出现。若c1或c2或c3是1,则e1是1;否则e1为0。“或”可有任意个输入
- 且/与^:原因都出现,结果才出现。若c1和c2都是1,则e1为1;否则e1为0。
六,因果图的基本约束
约束:是指输入状态还存在这某种依赖关系,这种关系称作为约束。
E约束(异):表示a,b两原因不会同时成立,最多一个能成立。
I约束(或):a、b、c三个原因中至少有一个必须成立。
O约束(唯一):a、b当中必须有一个,且仅有一个成立
R约束(要求):当a出现时,b必须也出现,不可能a出现b不出现
M约束(屏蔽):表示当a是1时,b必须是0。而当a为0时,b的值不定
七,因果图的分析步骤及案例
- 分析需求,获取条件和动作
- 分析条件与条件,条件与动作之间的关系
- 通过关系画出因果图
- 将因果图转化为判定表
需求
- 输入手机号或者电子邮箱作为账户名
- 输入正确验证码
- 两项验证成功,填写账户信息
- 如果一项验证不正确(输入手机号或电子邮箱格式错误),报错L
- 验证码输入错误,报错M
1 2 3 4 条件 第一项 输入手机号 x 0 1 0 输入电子邮箱 x 0 0 1 第二项 输入正确验证码 0 x 1 1 操作 填写账户信息 √ √ 报错L √ 报错M √
了解更多🙂测试用例设计方法🙂,可以关注博主或者专栏哦!
常见的测试用例设计方法1---等价类划分,请戳下面链接!
常见测试用例设计方法1---等价类划分_小宝的宝呢的博客-CSDN博客
常见的测试用例设计方法2---边界值划分,请戳下面链接!
常见测试用例设计方法2---边界值划分_小宝的宝呢的博客-CSDN博客
常用测试用例设计方法3-判定表法,请戳下面链接!
常用测试用例设计方法3-判定表法_小宝的宝呢的博客-CSDN博客
常用测试用例设计方法4-场景法,请戳下面链接!
常用测试用例设计方法4-场景法_小宝的宝呢的博客-CSDN博客
常用测试用例设计方法5-错误推算法,请戳下面链接!
常用测试用例设计方法5-错误推算法_小宝的宝呢的博客-CSDN博客
常用测试用例设计方法6-状态迁移法,请戳下面链接!
常用测试用例设计方法6-状态迁移法_小宝的宝呢的博客-CSDN博客
常用测试用例设计方法7-因果图法,请戳下面链接!
常见的测试用例设计方法7---因果图法_小宝的宝呢的博客-CSDN博客
常用测试用例设计方法8-正交试验法,请戳下面链接!
https://blog.csdn.net/weixin_53436351/article/details/123747925
-
黑盒测试——因果图法
2022-04-26 18:31:42因果图法就是帮助系统地选择一组高效测试用例的方法,既考虑了输入条件的组合关系,又考虑了输出对输入条件的依赖关系,即因果关系。 因果图: 在因果图中常用Ci表示原因,Ei表示结果。 原因和结果在图中用节点...等价类划分和边界值这两种方法中主要考虑各种输入条件,没有考虑各种输入条件的组合。
因果图法就是帮助系统地选择一组高效测试用例的方法,既考虑了输入条件的组合关系,又考虑了输出对输入条件的依赖关系,即因果关系。
因果图:
在因果图中常用Ci表示原因,Ei表示结果。
原因和结果在图中用节点表示,当原因、结果出现时,节点值为1,否则为0.
原因与结果关系:
(1)恒等(-):若原因出现,则结果出现;原因不出现,结果不出现。
(2)非(~):若原因出现,则结果不出现;原因不出现,则结果出现。
(3)或(∨):若几个原因有一个出现,则结果出现;若几个原因一个都不出现,则结果不出现。
(4)与(∧):若几个原因都出现,则结果出现;若几个原因有一个不出现,则结果不出现。
原因和原因以及结果与结果之间的关系:
用因果图法做测试用例:
(1)分割说明书
分析规格说明书中的功能说明,将输入条件分成若干组,然后分别对每一组使用因果图,这样可以减少输入条件组合的数目。
(2)识别原因和结果,并进行编号
(3)根据规格说明中的原因和结果关系画出因果图。
(4)根据因果图画出判定表。
(5)根据判定表设计测试用例。
举例:
在文件的第一列字符必须是A或B,在文件的第二列字符必须是一个数字。
这种情况下,文件被修改了。
若文件第一个字符不正确,则打印“X12”消息。
若第二个不是数字,则打印“X13”消息。
得到判定表:
注意,原因没有110和111,是因为互斥,不会出现,这样就减少了测试用例。
最后选择结果全部出现一次对和错的条件就好。
即1和6或者1和4.
最后生成测试用例:
-
软件测试之因果图法练习(象棋软件)
2015-11-17 13:37:02根据以下关于中国象棋软件中关于走马的规则的描述,分析其因果图,并设计用例... -
软件测试-因果图法
2018-03-20 15:31:11因果图(Cuase-effect Graph)是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 -
软件测试—因果图法
2022-04-26 14:47:04因果图法是从用自然语言书写的程序规格说明的描述中找出因和果,它适合于检查软件的输入条件涉及的各种组合情况,最终生成的是判定表。 意义:等价类划分和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件... -
黑盒测试 之 因果图法
2020-08-22 15:33:15因果图法是一种利用图解法分析输入条件的各种组合情况,写出判定表,从而设计测试用例的方法。 因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系... -
因果图法和正交方法
2022-05-19 17:19:45因果图法 概念:所谓的因果图,其实就是用图解的方法g表示的各组合关系然后将这个图转换成判定表,最后得到而测试用例的一种方法一种黑盒测试方法。 适用场景:有多个条件输入的条件下。 符号: -恒等,表示当... -
测试用例设计方法_因果图法(游戏向)
2021-06-17 14:27:16一、因果图法简介 1.1 什么是因果图法? 因果图(Cuase-effect Graph)是一种描述输入条件的组合以及每种组合对应的输出的图形化工具。在因果图的基础上可以设计测试用例。 因果图法也是黑盒测试中非常... -
因果图法基础知识
2021-03-07 23:54:571.因果图法简介 2.因果图法核心 3.因果图中的基本符号 (1)恒等 (2)与 (3)或 (4)非 4.因果图中的约束符号 (1)互斥 (2)唯一 (3)要求 (4)屏蔽 (5)包含 5.因果图法步骤概述 ... -
因果图法设计测试用例(示例代码)
2021-07-23 04:49:01一、使用因果图的好处1 考虑了多个输入之间的相互组合、相互制约关系2 能够帮助我们按一定步骤,高效率地选择用例,同时还能为我们指出,程序规格说明描述中存在着什么问题二、利用因果图导出1.分析程序规格说明的... -
黑盒测试用例设计方法二(因果图法、判定表法、场景法)
2021-11-01 08:48:41文章目录一、因果图法1、什么是因果图法2、因果图步骤3、因果图使用实例二、判定表法三、场景法四、正交实验法五、功能图法 一、因果图法 1、什么是因果图法 因果图是一种适合于描述对于多种输入条件组合的测试方法... -
测试用例经典设计方法之 因果图法
2022-03-17 15:14:4401 因果图设计测试用例的步骤 1、分析需求 阅读需求文档,如果User Case很复杂,尽量将它分解成若干个简单的部分。这样做的好处是,不必在一次处理过程中考虑所有的原因。没有固定的流程说明究竟分解到何种程度才算... -
常用黑盒测试用例设计方法-因果图法
2021-03-10 20:47:15因果图(Cause-EffectGraphing)提供了一个把规则转化为判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出 因果图方法... -
售货机-黑盒测试-因果图法.zip
2020-05-19 21:22:00关于...该程序有GUI,用户按照提示输入投币值,选择饮料,由程序做出反应,根据输入情况判断是否出售饮料和找零,该程序设计故意存在不严谨的地方,可用于黑盒测试,因果图法的测试用例的验证。 -
软件测试之因果图法(P24——P26)
2021-12-05 16:21:10定义:因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 特点:考虑输入条件的相互制约及组合关系;考虑输出条件对输入条件的依赖关系。 背景...