怎么画因果图?因果图绘图步骤详解

2023-11-02

因果图设计法

因果图法是一种利用图解法分析输人的各种组合情况的测试方法,它考虑了输入条件的各种组合及输入条件之间的相互制约关系,并考虑输出情况。例如,某一软件要求输人地址,具体到市区,如“北京→昌平区”“天津→南开区”,其中第2个输人受到第1个输入的约束,输人的地区只能在输人的城市中选择,否则地址就是无效的。像这样多个输人之间有相互制约关系,就无法使用等价类划分法和边界值法设计测试用例。因果图法就是为了解决多个输人之间的作用关系而产生的测试用例设计方法。

下面介绍如何使用因果图展示多个输人和输出之间的关系,并且学习如何通过因果图法设计测试用例。

1. 因果图

因果图需要处理输入之间的作用关系,还要考虑输出情况,因此它包含了复杂的逻辑关系,这些复杂的逻辑关系通堂用图示来展现,这些图示就是因果图。

因果图使用一些简单的逻辑符号和直线将程序的因(输人)与果(输出)连接起来,一般原因用ci表示,结果用ei表示,ci与ei可以取值“0”或“1”,其中“0”表示状态不出现,“1”表示状态出现。

ci与ei,之间有恒等、非(~)、或(V)、与(A)4种关系,如图下图所示。

上图中展示了因果图的4种关系,每种关系的具体含义如下所示。

(1)恒等:在恒等关系中,要求程序有1个输人和1个输出,输出与输入保持一致。若ci为1,则ei也为1;若ci为0,则ei,也为0。

(2)非:非使用符号“~”表示,在这种关系中,要求程序有1个输人和1个输出,输出是输入的取反。若ci为1,则ei为0;若ci为0,则ei为1。

(3)或:或使用符号“∨”表示,或关系可以有任意个输入,只要这些输入中有一个为则输出为1,否则输出为0。

(4)与:与使用符号“∧”表示,与关系也可以有任意个输入,但只有这些输入全部为输出才能为1,否则输出为0。

在软件测试中,如果程序有多个输入,那么除了输入与输出之间的作用关系之外,这些输人之间往往也会存在某些依赖关系,某些输入条件本身不能同时出现,某一种输人可能会影响其他输人。例如,某一软件用于统计体检信息,在输人个人信息时,性别只能输入男或女,这两种输人不能同时存在,而且如果输入性别为女,那么体检项就会受到限制。这些依赖关系在软件测试中称为“约束”,约束的类别可分为4种:E(Exclusive,异)、I(at least one,或)、O(one and only one,唯一)、R(Requires,要求),在因果图中,用特定的符号表明这些约束关系,如图所示。

上图展示了多个输入之间的约束符号,这些约束关系的含义具体如下所示。

(1) E(异):a和b中最多只能有一个为1,即α和b不能同时为1。

(2) I(或):a、b和c中至少有一个必须是1,即a、b、c不能同时为0。

(3)O(唯一):a和b有且仅有一个为1。

(4) R(要求):a和b必须保持一致,即a为1时,b也必须为1;a为0时,b也必须为0。

上面这4种都是关于输入条件的约束。除了输入条件,输出条件也会相互约束,输出条件的约束只有一种——M(Mask,强制),在因果图中,使用特定的符号表示输出条件之间的强制约束关系,如下图所示。

 

在输出条件的强制约束关系中,如果a为1,则b强制为0;如果a为0,则b强制为1。

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

使用因果图法设计测试用例需要经过以下几个步骤。

(1)分析程序规格说明书描述内容,确定程序的输入与输出,即确定“原因”和“结果”。

(2)分析得出输入与输入之间、输入与输出之间的对应关系,将这些输入与输出之间的关系使用因果图表示出来。

(3)由于语法与环境的限制,有些输入与输入之间、输入与输出之间的组合情况是不可能出现的,对于这种情况,使用符号标记它们之间的限制或约束关系。

(4)将因果图转换为决策表。决策表将在下一小节介绍。

(5)根据决策表设计测试用例。

因果图法考虑了输入情况的各种组合以及各种输入情况之间的相互制约关系,可以帮助测试人员按照一定的步骤高效率地开发测试用例。此外,因果图是由自然语言规格说明转化成形式语言规格说明的一种严格方法,它能够发现规格说明书中存在的不完整性和二义性,帮助开发人员完善产品的规格说明。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎么画因果图?因果图绘图步骤详解 的相关文章

  • 等价类划分法

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 软件测试面试题分享 1000道软件测试面试题及答案 软件测试实战项目分享 纯接口项目 完整接口文档 软件测试实战项目分享 WEB 测试自动化项目实战 软件测试学习教程推荐
  • 真的干不过,00后整顿职场已经给我卷麻了,想离职了...

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 使用Hypothesis生成测试数据

    Hypothesis是Python的一个高级测试库 它允许编写 测试用例 时参数化 然后生成使测试失败的简单易懂的测试数据 可以用更少的工作在代码中发现更多的bug 安装 pip install hypothesis 如何设计 测试数据 通
  • Jmeter 压测-性能调优5大注意

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 小白也能学会的创建Git仓库实操

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试/测试开发/全日制/测试管理丨Python关键字

    Python 语言有一些关键字 它们具有特殊的含义 不能被用作标识符 变量名 函数名等 False 布尔类型的假值 None 表示一个空对象或无值 True 布尔类型的真值 and 逻辑与操作符 as 用于给导入的模块起别名 assert
  • Python自动化操作:简单、有趣、高效!解放你的工作流程!

    今天跟大家分享一套自动化操作流程解决方案 基于 Python语言 涉及 pyautogui pyperclip pythoncom win32com 依赖包 安装命令为 pip install pyautogui pip install p
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 19年通过校招进入广州某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 一篇文章带你了解Python常用自动化测试框架——Pytest

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯式性能指标监听

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关

随机推荐

  • C++数组(数组定义方式、数组名作用、数组地址)

    文章目录 1 数组概述 2 一维数组 2 1 一维数组定义方式 2 2 一维数组数组名 2 2 1 一维数组名称的作用 2 2 2 一维数组名的2种特例情况 2 3 一维数组的地址 2 4 冒泡排序 3 二维数组 3 1 二维数组定义方式
  • logback--基础--03--配置--logger

    logback 基础 03 配置 logger 代码位置 https gitee com DanShenGuiZu learnDemo tree master logback learn 1 设置logger 1 1 lt root gt
  • 整理6个超好用的在线编辑器!

    随着 Web 开发对图像可扩展性 响应性 交互性和可编程性的需求增加 SVG 图形成为最适合 Web 开发的图像格式之一 它因文件小 可压缩性强并且无论如何放大或缩小 图像都不会失真而受到欢迎 然而 为了编辑 SVG 图像 需要使用 SVG
  • linux下显示隐藏文件

    linux下显示隐藏文件有两种可能 显示所有文件 包括隐藏文件 仅显示隐藏文件 显示所有文件 包含隐藏文件 ls A 只显示隐藏文件 l 或者 ls d
  • react + typescript解决TS2339:Property ‘..‘ does not exist on type ‘Readonly<{}>‘错误

    说来比较惭愧 已经两个多月没有更新博客了 由于手头上的项目快进入收尾阶段了 一直没有时间与欲望更新博客 前几天boss又下发了一个新的项目 采用taro react reflux typescript taroUI做一个微信小程序 说多了都
  • MS Chart 控件学习(二) 数据绑定

    Chart的数据绑定非常灵活支持多种形式的数据绑定 现在主要介绍几种常见的 一 关于数据源 可以在图表的设计界面 在属性设置窗口中的Series属性下的Points中添加需要的数据 可以在图表的设计界面中 在属性中绑定一个数据源 可以在后台
  • Spring框架基础学习

    Spring是什么 Spring是分层的Java SE EE应用 full stack轻量级开源框架 以IoC Inverse Of Control 反转控制 和AOP Aspect Oriented Programming 面向切面编程
  • Spring Boot框架基础概览

    基本概述 Spring Boot是所有基于Spring开发的项目的起点 Spring Boot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件 它采用了 习惯优于配置 的理念 就像Maven整合了所有的JAR包
  • Ubuntu下的进程管理和启动项管理工具

    sudo apt get install bum
  • tkinter创建真正的嵌套子窗口

    tkinter创建真正的嵌套子窗口 引言 获取窗口句柄 方法一 方法二 创造嵌入窗口 嵌套在组件中 一些问题 一个简单的例子 2022 7 22问题解决 结语 引言 在我之前的这篇纯tkinter创建嵌套子窗口的文章中 只提及了3种方法 原
  • 选择排序 简单选择排序 直接选择排序的区别

    选择排序 图示过程如下 区分 直接选择排序每次遇到n 1 gt n 的时候就要发生交换 简单选择排序则只是记录下较大那个元素的位置 这样一轮过后这个记录变身本轮所要选取的最大值 而每轮需要确定的位置已由外层循环确定 只需将最大元素位置记录所
  • face alignment (人脸对齐)

    face alignment 是计算机视觉的一个热点研究问题 人脸对齐作为人脸识别系统中的一个重要组成部分 人脸对齐的性能在人脸识别系统起着举足轻重的作用 人脸对齐的目的是定位出人脸面部关键点的位置 这些关键点通常是人脸中具有语义的器官 比
  • 【人工智能】推荐系统算法

    推荐系统算法详解 一 推荐系统详解 1 基于人口统计学的推荐算法 基于人口统计学的推荐机制 Demographic based Recommendation 是一种最易于实现的推荐方法 它只是简单的根据系统用户的基本信息发现用户的相关程度
  • 第一次用上 Android Studio 2.3 过程及错误解决

    因为要开发Android5 0的缘故 抛弃了eclipse转到了Android Studio 第一次使用就是遇到了许多问题 终于是解决问题了 特意写一篇博文给各位要准备从eclipse转到Android Studio 由于之前使用eclip
  • Archiving With Multiple Destinations Fails With ORA-16040

    fact Oracle Server Enterprise Edition 9 0 fact Oracle Server Enterprise Edition 8 1 symptom Archiving fails symptom ORA
  • 【开源】团队版 ChatGPT Web 应用,多用户,免登录

    Muchat 团队版 ChatGPT Web 应用 多用户 免登录 适合公司 组织或小团体内部使用 有人乍一看目录觉得只是发布了个 exe 但实际代码在各个子仓库中 本仓库只是一个入口 特性 无需登录 输入卡密即可使用 支持匿名试用 可设置
  • Unity中烘焙光照,同mesh同uv的模型烘焙光照时共用一张光照贴图

    我们再开发中 经常会遇到需要烘焙场景光照的情况 但是尴尬的是 一个场景中你好几个物体用的都是一个贴图 但是不同mesh 或者是相同mesh 你都会如下图 多出一张光照贴图 正常unity开发的解决办法是合并mesh 来降低光照贴图数量 但是
  • vnc 连接不上,出现Warning: zhouziqi:1 is taken because of /tmp/.X11-unix/X1

    楼主不知道怎么回事 突然就边不上VNC了 我就打算重新启动服务 发现服务启不来 我用 journalctl xe命令出现下面的东西 Apr 24 21 30 24 zhouziqi runuser 23390 pam unix runuse
  • ScriptManager的用法

    脚本管理控件 ScriptManger 是ASP NET AJAX中非常重要的控件 通过使用ScriptManger能够进行整个页面的局部更新的管理 ScriptManger用来处理页面上局部更新 同时生成相关的代理脚本以便能够通过Java
  • 怎么画因果图?因果图绘图步骤详解

    因果图设计法 因果图法是一种利用图解法分析输人的各种组合情况的测试方法 它考虑了输入条件的各种组合及输入条件之间的相互制约关系 并考虑输出情况 例如 某一软件要求输人地址 具体到市区 如 北京 昌平区 天津 南开区 其中第2个输人受到第1个