上一次我们介绍了判定表法设计测试用例,这里我们介绍一个经常与判定表一起使用的测试用例设计方法——因果图法。

因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况进行相应的操作。但是,由于一些软件输入条件的组合比较复杂,且存在相互制约的关系,因此,我们需要利用因果图这种逻辑模型快速得到判定表。

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

采用因果图方法能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描述中存在的一些设计问题。

因此,使用因果图法具有以下优点:
(1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。
(2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。
(3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。

因果图中用来表示4种因果关系的基本符号:

因果图中的4种基本关系:在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci 与 ei 取值0或1,0表示某状态不出现,1则表示某状态出现。
恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。
非:若 c1 是1,则 e1 为0,否则e1为1。
或:若 c1 或 c2 或 c3 是1,则 e1 为1,否则 e1 为0。“或”可有任意个输入。
与:若 c1 和 c2 都是1,则 e1 为1,否则 e1 为0。“与”也可有任意个输入。

因果图中的约束:在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。

对于输入条件的约束有E、I、O、R四种约束:
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,即a为1时,b不能为0。

对于输出条件的约束只有M约束:
M约束(强制):若结果a为1,则结果b强制为0。

因果图法最终生成的是判定表。利用因果图生成测试用例的基本步骤如下:
(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系, 根据这些关系画出因果图。
(3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
(4)把因果图转换为判定表。
(5)根据判定表中的每一列设计测试用例。

例:使用因果图法为以下程序设计测试用例。
程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。

解题步骤:
(1)分析程序的规格说明,列出原因和结果。
(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。
(3)将因果图转换成决策表。
(4)根据(3)中的决策表,设计测试用例的输入数据和预期输出。
原因:
1——第一个字符是#;
2——第一个字符是*;
3——第二个字符是一个数字。
结果:
21——修改文件;
22——给出信息N;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

对应的判定表及测试用例如下:

表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,所以要排除这两种情况。表的最下一栏给出了6种情况的测试用例及需要测试的数据。

因果图方法小结
判定表法经常和因果图法一起用,先进行因果图分析,再结合判定表,最后完成测试用例。
在多个条件决定多个动作,并且每个条件的取值只有两种情况下,我们就可以采用因果图和判定表方法。
条件和动作之间的逻辑关系是明确的,可以直接使用判定表法;如果条件和动作关系不明确,则要先得到因果图,再确定判定表 。

测试用例设计——因果图法相关推荐

  1. 黑盒测试用例设计--因果图法

    因果图法 因果图概念:因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合.约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入 ...

  2. [转摘]测试用例设计—因果图法

    因果图法 1.引言 等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系.相互组合等.考虑输入条件之间的相互组合,可能会产生一些新的情况.但要检查输入条件的组合不是一件容易 ...

  3. 黑盒测试用例设计 - 因果图法

    说明 因果图法是一种适合于描述对多种输入条件组合的测试方法 根据输入条件的组合.约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法 它适合于检查程序输入条件涉及的各种组合 ...

  4. C语言正交表测试用例,测试用例设计—正交试验法

    测试用例设计-正交试验法[烟三修整]上一篇 / 下一篇 2008-05-23 14:25:19 / 个人分类:测试理论 查看( 1930 ) / 评论( 3 ) / 评分( 0 / 0 ) 1.概念 ...

  5. 【3】测试用例设计-因果图

    等价类划分法.边界值分析法.正交法,主要侧重于输入条件,却没有考虑这些输入之间的关系,业务逻辑性不强,主要是对合法非法字符输入的检查.除了输入框之外,还存在各类按钮,而且这些按钮之间存在相互关联和制约 ...

  6. 测试用例设计--因果图

    定义 因果图法就是从程序规格说明书的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例. 首先我们来了解一下因果图的基本符号: 2. ...

  7. 【8】测试用例设计-边界值法

    对于软件来说,错误经常发生在输入或输出值的关键点.边界值分析法是对软件的输入或输出边界进行测试的一种方法,它的所有测试用例都是在等价类的边界处设计. 边界值分析需要选择一个或多个元素,以便等价类的每个 ...

  8. 场景法设计测试用例atm_测试用例设计--场景法

    定义 现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流.这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发 ...

  9. 测试用例设计方法——因果图法

    从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表. 因果图法即因果分析图,又叫特性要因图.石川图或鱼翅图,它是由日本东京大学教授石川馨提 ...

最新文章

  1. 燃爆,100个Python实战小项目汇总!
  2. 小评 XenServer 6.0功能
  3. TLE5012的使用和3线SPI通信(SSC)说明
  4. 安卓MediaPlayer框架之Binder机制
  5. 《数据库SQL实战》获取所有员工当前的manager
  6. html div float center,跨浏览器实现float:center
  7. 大数据处理工具Kafka、Zk、Spark
  8. java连接weblogic数据源_使用weblogic数据源大全
  9. Visual Studio 2010 中编写C代码的一些常见问题
  10. java复制行_Java 复制Word表格中的行或列
  11. 【英语-同义词汇词组】study和research的用法及区别
  12. Java输出字符串中的叠词_java中正则表达式的简单运用 | iamxiarui
  13. shell 参数的分组读取
  14. 关于跑步,总感觉得写点什么!
  15. 【pingce360】传小米平板MIPAD采用MTK8125四核 或售999元
  16. 电脑缺失ACPI.sys
  17. 极米发布极光RS Pro、H3、Z8X三款新品
  18. Java泛型比较大小
  19. Java修饰符都有什么
  20. 在ubuntu下烧写映像文件到SD卡--基于三星210开发板

热门文章

  1. 锐龙r5 4600h和r74800h哪个好 锐龙r5 4600h和r74800h对比差距大吗
  2. html右上角提醒代码,html在消息按钮上增加数量角标的实现代码
  3. Java从0到Hello World(一)-手把手教你做JDK环境变量配置
  4. 【04】进阶:Git系统中的分支操作与管理
  5. TOEFL阅读——句子改写题
  6. 《Essential Linux Device Drivers》中文版第2章
  7. MySQL查看表结构和注释
  8. 【杂·如何给女友普及计算机二进制,一篇就够了】
  9. 五年级上学期计算机教案,新湘教版五年级上册信息技术教案
  10. parted命令分区操作