因果图分析法[通俗易懂]

因果图分析法[通俗易懂]目录一、因果图法1.理解二、因果图需要掌握的基本知识1.关系2.约束3.输出条件的约束4.输出条件的约束5.原因和结果表示6.中间节点三、因果图设计测试用例的步骤四、优缺点1.优点2.缺点五、实例1.案例2.分析案例六、为什么要有中间节点1.无中间节点因果图2.有中间节点因果图一、因果图法1.理解因果图是一种简化了的逻辑图,能直观的表明程序输入条件(原因)和输出动作(结果)之间的相互关系; 因果图法是借助图形来设计测试

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

目录

一、因果图法

1.理解

二、因果图需要掌握的基本知识

1.关系

2.约束

3.输出条件的约束

4.输出条件的约束

5.原因和结果表示

6.中间节点

三、因果图设计测试用例的步骤

四、优缺点

1.优点

2.缺点

五、实例

1.案例

2.分析案例

六、为什么要有中间节点

1.无中间节点因果图

2.有中间节点因果图


一、因果图法

1.理解

  • 因果图是一种简化了的逻辑图,能直观的表明程序输入条件(原因)和输出动作(结果)之间的相互关系;
  • 因果图法是借助图形来设计测试用例的一种系统方法;
  • 特别适用于被测试程序具有多种输入条件,程序的输出又依赖于输入条件的各种情况。

二、因果图需要掌握的基本知识

1.关系

  • 恒等

如果原因为真,那么结果必为真。

只有当两个原因都为真的时候结果才为真。

两个原因中,有一个为真,那么结果就为真。

只有原因为假,结果才为真。

因果图分析法[通俗易懂]

 

2.约束

  • 输入状态相互之间还可能存在某些依赖关系,称为约束;例如某些输入条件本身不可能同时出现;
  • 输出状态之间也往往存在约束;
  • 在因果图中,用特定的符号表明这些约束。

因果图分析法[通俗易懂]

3.输出条件的约束

有以下4类

  • 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。

4.输出条件的约束

  • M约束(强制):若结果a是1,则结果b强制为0.

5.原因和结果表示

  • Ci:表示原因
  • Ei:表示结果

6.中间节点

  • 一般都是根据分析需求得到的一个中间结果

三、因果图设计测试用例的步骤

  1. 分析所有可能的输入和可能的输出;
  2. 找出输入与输出之间的关系;
  3. 画出因果图;
  4. 把因果图转化为判定表;
  5. 把判定表对应到每一个测试用例。

四、优缺点

1.优点

  • 考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系;
  • 能够帮助测试人员按照一定的步骤,高效率的写测试用例;
  • 因果图法是将自然语言规格,转换成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。

2.缺点

  • 不同分析者对风险因素重要性的认识不同,会影响因果图分析的结论。

五、实例

1.案例

  • 淘宝在双十一推出打折优惠活动,订单已提交,订单金额大于300或有红包,则优惠。

2.分析案例

(1)对于这条业务规则,分析所有可能的输入和可能的输出,可以得到如下结果

输入(原因):

c1:订单已提交;

c2:订单金额大于300;

c3:有红包。

输出(结果):

e1:不优惠;

e2:优惠。

c:中间节点

(2)然后找出输入与输出之间的关系,通过分析得出以下对应关系

因果图分析法[通俗易懂]

c(中间节点)含义:订单已提交的情况下,有红包和订单金额大于300元满足任意一个的情况。

(3)画因果图

因果图分析法[通俗易懂]

(4)画判定表

因果图分析法[通俗易懂]

说明:0:否;1:是。

(5)把判定表中的每一列转换为测试用例

六、为什么要有中间节点

1.无中间节点因果图

因果图分析法[通俗易懂]

 

2.有中间节点因果图

清晰明了,而且更好转换为判定表。中间节点的含义根据分析需求得到。

因果图分析法[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170400.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JCF_jcf应用培训

    JCF_jcf应用培训JCF容器框架:对外接口:容器中所能存放的抽象的数据类型;接口实现:可复用的数据结构;算法:对数据的查找和排序;容器的框架优点:提高存储效率;避免程序员重复查找;JCF主要数据结构:列表、集合、映射。List:列表有序的Collection允许重复允虚嵌套List三大类:ArrayList:(不支持同步)利用索引快速定位。不适合指定位置的插入、删除操作。适合变动不大,主要用于查询的数据。容量可以动态调整容量填满时自动扩充容量的50%。Linke

    2025年8月15日
    3
  • [CV] Structure from motion(SFM)- 附我的实现结果

    [CV] Structure from motion(SFM)- 附我的实现结果【更新】我的新博客:www.ryuzhihao.cc,当然这个csdn博客也会更新本文在新博客中的链接:点击打开链接完成时间:2017年2月27日博客时间:2017年4月26日去年,我有幸了解到image-basedmodeling的相关知识。作为一个大三本科生,虽说自己此前也做过一些相关工作,但是要自己实现Structuref…

    2022年6月20日
    28
  • SpringBoot声明式事务的简单运用

    SpringBoot声明式事务的简单运用关于事物的基本概念等这里就不介绍了。Spring声明式事物的实现,有两种方式;第一种是配置xml,第二种是使用相关注解(这两种方式可详见《程序员成长笔记(一)》的相关章节)。SpringBoot中默认配置了第二种方式,所以,SpringBoot直接使用注解即可。下面介绍SpringBoot通过注解开启事物的使用。SpringBoot使用事物的步骤:第一步:在启动类上开启…

    2022年5月30日
    38
  • volatile关键字作用

    volatile关键字作用一、作用简述内存可见性:保证变量的可见性:当一个被volatile关键字修饰的变量被一个线程修改的时候,其他线程可以立刻得到修改之后的结果。当一个线程向被volatile关键字修饰的变量写入数据的时候,虚拟机会强制它被值刷新到主内存中。当一个线程用到被volatile关键字修饰的值的时候,虚拟机会强制要求它从主内存中读取。 屏蔽JVM指令重排序(防止JVM编译源码生成class时使用重排序)…

    2022年6月1日
    48
  • 简单的激光干涉测距仪原理——为什么只能测量相对距离「建议收藏」

    简单的激光干涉测距仪原理——为什么只能测量相对距离「建议收藏」为什么要用激光来测量距离呢?这一切都是因为激光的波长很短,同频率的光波叠加会在波长级的尺度上产生周期性的变化,因此用激光测量距离时,精度是波长级别的,这也是为什么通常选用波长较短的激光进行测距。将同一光束分成两束,其中一束状态不变,另一束经物体反射后与第一束合并,以光电探测器进行探测。物体每移动半个波长,探测器探测到的信号就会出现一个极值,通过数极值的数量就可以知道物体移动了多少。…

    2022年5月22日
    58
  • stm32f103替换_能力复用

    stm32f103替换_能力复用文章来源:刚接触STM32F103,在尝试编写“按键中断”和“PWM呼吸灯”程序的时候,发现例程都用到了管脚复用AFIO://打开管脚复用AFIORCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);写到“232USART串口通信”程序时,当我非常自信的写下上面这句代码后,发现例程里面却没有这句话,很让人摸不着头脑……查了很多资料,加上

    2022年10月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号