因果图法设计测试用例

因果图法设计测试用例因果图法设计测试用例 1 nbsp 定义 因果图法是一种利用图解法分析输入的各种组合情况 从而设计测试用例的方法 他适合与检查程序输入条件的各种组合情况 2 nbsp 意义 等价类划分和边界值分析方法都是着重考虑输入条件 但没有考虑输入条件的各种组合 输入条件之间的相互制约关系 这样虽然各种输入条件可能出错的情况已经测试测试到了 但多个输入条件组合起来可能出错的情况却被疏忽了 3 nbsp 认识因果图 如果

因果图法设计测试用例

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

2. 意义:等价类划分和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试测试到了,但多个输入条件组合起来可能出错的情况却被疏忽了。

3. 认识因果图

·如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)

·因果图常用符号有以下2中:

1)CI:原因

2)EI:结果

(注意:其中I取“0”表示状态不出现,“1”表示状态出现,若有多状态,可取大于1的多个值表示。)

4. 因果图四种关系(左输入右输出)

 因果图法设计测试用例

1)恒等:原因结果同时出现,若c11,则e1也是1;否则e10.

2)~:原因出现,结果不出现;原因不出现,结果出现。若c11,则e10;否则e1 1

3)V:原因只有一个出现,结果就出现;原因都不出现,结果就不出现。

c1c2c31,则e11;否则e10。“或”可有任意个输入

4)/^:原因都出现,结果才出现。若c1c2都是1,则e11;否则e10

“与”也有任意个输入

5. 因果图约束条件

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

·从输入考虑

1)E(互斥/异或):表示ab两原因不会同时成立,最多一个能成立

2)I(包含):abc三个原因中至少有一个必须成立

3)O(唯一):ab当中必须有一个,且仅有一个成立

4)R(要求):当a出现时,b必须也出现,不可能a出现b不出现;

·从输出考虑——M(强制或屏蔽)

1)结果a1时,结果b必须是0

2)结果a0时,结果b的值不定;

 因果图法设计测试用例

例子:

因果图法设计测试用例

男士,女士:互斥

隐藏一定属于宁夏:要求

固定电话,小灵通,手机号:包含

6. 因果图法设计测试用例的步骤:

1)提取因果,赋予标识符:分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

2)提取因果关系,表示因果图:分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系,画出因果图。

3)表名约束条件:由于语法或环境限制,有些原因与原因之间,原因与结果之间的结合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。

4)转换成判定表:把因果图转换成判定表

5)设计测试用例:把判定表的每一列拿出来作为依据,设计测试用例。

7. 例子:文件修改程序

·某软件规格说明书包含这样的要求:输入的第一个字符必须是#*,第二个字符必须是一数字,此情况下进行文件的修改;若第一个字符不是#*,则给出信息N,若第二个字符不是数字,则给出信息M

分析:

1)分析需求,列出原因和结果

 因果图法设计测试用例

2)找出因果关系、原因与原因之间的约束关系,画出因果图

 因果图法设计测试用例

10:表示中间状态,可以作为一种结果,存在c1c2的关系或,要么c1出现要么c2出现,表示中间出现了一个,要么是#要么是*,表示其中一个。

3)将因果图转换成决策表

 因果图法设计测试用例

不可能表示:c1c2同事出现,就是不可能的

 

4)根据(3)中的决策表,设计用例的输入数据和预期输出

8. 应用场合和局限性

·应用场合:当软件输入条件过多时,可以考虑输入的所有排列组合情况,考虑条件之间和条件结果之间关系,防止遗漏。

·局限性:测试用例数目可能会很大,不便于维护。如果是m个输入条件,则会有2m次方种组合。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

(0)
上一篇 2026年3月17日 下午5:02
下一篇 2026年3月17日 下午5:03


相关推荐

  • 字节跳动发布豆包大模型1.6、图像编辑模型3.0、同声传译模型2.0

    字节跳动发布豆包大模型1.6、图像编辑模型3.0、同声传译模型2.0

    2026年3月12日
    2
  • Java事务管理[通俗易懂]

    Java事务管理[通俗易懂]事务的ACID属性:原子性(Atomicity)、一致性(Consistency)、隔离性或独立性(Isolation)和持久性(Durabilily)一、Java事务管理Java事务管理有三种类型:JDBC事务、JTA(JavaTransactionAPI)事务、容器事务1.1JDBC事务JDBC的一切行为包括事务是基于一个Connection的,JDBC通过Connec…

    2022年10月9日
    5
  • vue父组件操作子组件的方法_vue子组件向父组件传值的三种方式

    vue父组件操作子组件的方法_vue子组件向父组件传值的三种方式父组件和子组件我们经常分不清什么是父组件,什么是子组件。现在来简单总结下:我们将某段代码封装成一个组件,而这个组件又在另一个组件中引入,而引入该封装的组件的文件叫做父组件,被引入的组件叫做子组件。具

    2022年8月7日
    6
  • tomcat打印日志乱码,入库数据正常_tomcat输出日志乱码

    tomcat打印日志乱码,入库数据正常_tomcat输出日志乱码Tomcat后台日志乱码问题文章目录Tomcat后台日志乱码问题一、找到乱码原因二、Tomcat端乱码处理三、IDEA端设置小结一、找到乱码原因  基本上我们安装的windows系统本地语言都是中文,用的是GBK编码,而我们IDEA和Tomcat日志选择的是utf8编码,因此编码方式不一致造成了我们的中文乱码问题。二、Tomcat端乱码处理  既然原因已经找到了,接着就是解决问题了,分别设置IDEA和Tomcat的编码就ok了。先对Tomcat进行处理,如下:  1.找到Tomcat的安装目录

    2026年4月13日
    3
  • 腾讯云服务器搭建NextCloud云盘[通俗易懂]

    腾讯云服务器搭建NextCloud云盘[通俗易懂]初衷我相信每个人都想要创造一点个人的小空间,存放某种东西(你懂的)。为了达到这个目的,顺便学习一下服务器的搭建,折腾了几天,终于算是搞定了,便记录如下。一准备思路:使用腾讯云服务器,部署LAMP。其实使用本地的电脑也是可以的,只是为了方便跨局域网访问,因为还没有学会如何绑定域名,如何用Nginx穿透局域网,所以只能借助别人的方便了。购买云服务器,略;给云服务器…

    2022年5月23日
    40
  • pycharm21.2.3激活码_最新在线免费激活「建议收藏」

    (pycharm21.2.3激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~EC…

    2022年3月31日
    718

发表回复

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

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