因果图判定表法
因果图&判定表法
在了解了等价类和边界值比较适宜搭档的测试用例方法之后
接下来我们来了解另外一队就是因果图和判定表
因果图会产生判定表法
因果图法
- 等价类划分法和边界值分析方法都是着重考虑输入条件
- 而不考虑输入条件的各种组合、输入条件之间的相互制约关系。例如地区的选择
- 如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字
- 因此必须考虑采用一种适合于描述多种条件的组合、产生多个相应动作的测试方法,这就需要利用因果图(逻辑模型)
因果图-判定表
- 因果图法基于这样的思想:一些程序的功能可以用决策表的形式来表示,并根据输入条件的组合情况规定相应的操作
- 因此,可以考虑为决策表中的每一列设计一个测试用例,以便测试程序在输入条件的某种组合下的输出是否正确
- 概括的说,因果图法就是从程序规格说明书的描述中找出因(输入条件)和果(输出结果或程序状态的改变)
- 将因果图转换为判定表,为判定表(也叫做决策表)中的每一列设计一个测试用例
- 这种方法考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系(那些有互斥,那些无互斥这种情况)
判定表
- 判定表(decision table)是分析和表达多逻辑条件下执行不同操作的工具
- 在程序设计发展的初期,判定表就已被当做编写程序的辅助工具
- 因为他可以把复杂的逻辑关系和多种条件组合的情况表达得具体
- 判定表通常由四个部分组成
- 条件桩:列出了问题的所有条件,通常认为列出的条件的次序无关紧要。类似于你感到疲惫吗?你对内容感兴趣吗?
- 动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束,这些结果一般都是互相排斥的。例如请回到本章开头重读,继续读下去
- 条件项:列出针对他左列条件的取值,在所有可能情况下的真假值
- 动作项:列出在条件项的各种取值情况下应该采取的动作
设计步骤
- 分析软件规格说明中那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给予每个原因和结果赋予一个标识符
- 分析软件规格说明中语义的内容,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。==直接画出判定表
- 由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特定的情况,在因果图上使用一些记号表明约束或限制条件
- 把因果图转换为判定表
- 根据判定表中的每一列设计测试用例
注意,虽然这些都是约定速成的,但是我们可以进行简化
实战
- 使用因果图+判定表设计测试用例测试两位数加法计算器
当然,这个例子可能不是那么那么标准。但是不要紧,后面还用一些例子进行补充,
- 输入1:
- 条件1:0<=x<=99
- 条件2: -99<=x<0
- 条件3: x<-99
- 条件4: x>99
- 输入2:
- 条件1:0<=x<=99
- 条件2: -99<=x<0
- 条件3: x<-99
- 条件4: x>99
- 输出
- 正确计算
- 错误提示
分析条件互斥
- 输入
- 输入1:
- 1 2 3 4 互斥
- 输入2:
- 1 2 3 4 互斥
- 输入1:
- 输出
- 输出结果正确和错误互斥
跳过因果图
分析、简化并画出判定表
这里的“-”是具有普适性的。也就是说当条件3成立,输入2里不管什么值该输出结果都是错误提示。
条件1 2 是有效等价类, 条件 3 4 是无效等价类
有效等价类会产生4种结果,无效的也是4种结果
以列为单位,写出测试用例。比如第一列,可能取值为90 + 90 = 180
以此类推,取出8层测试用例额
因果图法用例设计联系

- 同理我们将同一测试需求用因果图设计
- 余额宝提现到银行卡增加新规则:快速到账(2小时)日限额1w元,超过1w元只能选择普通到账
- 按照y因果图法设计测试用例
分析输入条件和输出条件
- 输入
- 输入1:
- a1:快速体现
- a2:普通体现
- 输入2:
- a1:0<x<=10000
- a2: x<=0
- a3: x>10000
- 输入1:
- 输出
- b1:提现成功
- b2:提现失败
分析、简化并画出判定表
这三类条件都是互斥的
经典因果图-判定表面试题
- 问题:某厂工资发放
- 描述、分析:
- 工资分为年薪制a1,月薪制a2
- 错误程度分为普通a3,严重a4
- 工资为a1的员工犯普通错误扣工资2%(b1),犯严重错误扣工资6%(b2)
- 工资为a2的员工犯普通错误的扣工资4%(b3),犯严重错误扣工资8%(b4)
- 其中a1和a2为互斥,b1 b2和 b3 b4是互斥,a3 a4可以同时具备
输入 | ||||||||
---|---|---|---|---|---|---|---|---|
a1 | T | T | T | T | F | F | F | F |
a2 | F | F | F | F | T | T | T | T |
a3 | T | F | T | F | T | F | T | F |
a4 | F | T | T | F | F | T | T | F |
输出 | ||||||||
b1 | × | × | ||||||
b2 | × | × | ||||||
b3 | × | × | ||||||
b4 | × | × |
相关文章:

因果图判定表法
因果图&判定表法 在了解了等价类和边界值比较适宜搭档的测试用例方法之后 接下来我们来了解另外一队就是因果图和判定表 因果图会产生判定表法 因果图法 等价类划分法和边界值分析方法都是着重考虑输入条件而不考虑输入条件的各种组合、输入条件之间的相互制约关系。例…...
Oracle 数据库相关信息清单列表
Oracle 数据库相关信息清单列表 一、设置Oracle安装目录 Oracle基目录(ORACLE_BASE):D:\databases\oracle\oracle_11g\app\Administrator 软件位置(ORACLE_HOME):D:\databases\oracle\oracle_11g\app\Administrator\product\11.2.0\dbhome_1 数据库文件位置:D:\databa…...

射频资料搜集--推荐几个网站和链接
https://picture.iczhiku.com/resource/eetop/wHKYFQlDTRRShCcc.pdfhttps://picture.iczhiku.com/resource/eetop/wHKYFQlDTRRShCcc.pdfVCO pulling的资料 模拟滤波器与电路设计手册 - 射频微波仿真 - RF技术社区 Practical RF Amplifier Design Using the Available Gain Pr…...
B1048 数字加密
decription 本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 …...
Qt使用FFmpeg播放视频
一、使用场景 因为项目中需要加载MP4播放开机视频,而我们的设备所使用的架构为arm架构,其中缺乏一些多媒体库。安装这些插件库比较麻烦,所以最终决定使用FFmpeg播放视频。 二、下载编译ffmpeg库 2.1 下载源码 源码下载路径:http…...

Win32 ListBox控件
Win32 ListBox控件 创建ListBox控件 创建窗口函数 HWND CrateWindowEx(DWORD dwExStyle , // 窗口的扩展风格,基本没用LPCTSTR lpClassName, // 已经注册的窗口类名称LPCTSTR lpWindowName, // 窗口标题栏的名字DWORD dwStyle, // 窗口的基本风格int x, // 左上角水平坐标int …...

最大值池化与均值池化比较分析
1 问题在深度学习的卷积网络过程中,神经网络有卷积层,池化层,全连接层。而池化层有最大值池化和均值池化两种情况,而我们组就在思考,最大值池化和均值池化有什么区别呢?两者的模型准确率是否有所不同&#…...
统计学 多元线性回归
文章目录统计学 多元线性回归多元线性回归模型拟合优度显著性检验线性关系检验回归系数检验多重共线性及其处理多重共线性的问题多重共线性的识别与处理变量选择利用回归方程进行预测哑变量回归统计学 多元线性回归 多元线性回归模型 多元线性回归模型:设因变量为…...

tar和gzip压缩和解压
打包和压缩的区别:打包:将多文件 封装在一起压缩:将多文件 封装在一起 通过特定的算法 将冗余的数据 进行删除tar默认是打包命令,如果想用tar进行压缩 必须加选项1、gzip格式压缩:tar zcvf 压缩包包名 文件1 文件2 文件…...

搭建Docker企业私有仓库
什么是仓库 仓库(Repository)是存储和分发 Docker 镜像的地方。镜像仓库类似于代码仓库,Docker Hub 的命名来自 GitHub,Github 是我们常用的代码存储和分发的地方。同样 Docker Hub 是用来提供 Docker 镜像存储和分发的地方。 谈…...

[NOIP2009 提高组] 最优贸易(C++,tarjan,topo,DP)
题目描述 $C 国有国有国有 n 个大城市和个大城市和个大城市和 m$ 条道路,每条道路连接这 nnn个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 mmm 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的…...

计算机网络:移动IP
移动IP相关概念 移动IP技术是移动结点(计算机/服务器)以固体的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游中不发生任何改变。移动结点:具有永久IP地址的设备。归属代理(本…...
binutils工具集——GNU binutils工具集简介
以下内容源于网络资源的学习与整理,如有侵权请告知删除。 GNU binutils是一个二进制工具集,主要包括: ld,GNU链接器。as,GNU汇编器。addr2line,把地址转化为文件名和行号。nm,列出目标文件的符…...
Golang编译选项(ldflags)有趣应用
本文介绍如何在构建时使用ldflags选项给Golang应用程序注入变量,用于给Go可执行文件增加版本标识或GIT提交摘要等信息。 应用程序的版本信息 我们首先查看Docker Cli 包含的提交信息: docker version 返回结果: Server: Docker Engine - Co…...
AIR32F103(十一) 在AIR32F103上移植微雪墨水屏驱动
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告AIR32F103(二) Linux环境和LibOpenCM3项目模板AIR32F103(三) Linux环境基于标准外设库的项目模板AIR32F103(四) 27倍频216MHz,CoreMark跑分测试AIR32F103(五) FreeRTOSv202112核心库的集成和示例代码AIR32F103(六) ADC,I2S…...
Uipath Excel 自动化基础系列文章
Uipath Excel 自动化基础系列文章已发布到CSDN,网址:https://blog.csdn.net/Marshaljun?typeblog (3月份会在CSDN博客发布Uipath Excel 实战课程及经验分享) Uipath Studio流程设计器介绍 https://blog.csdn.net/Marshaljun/article/details/128699022 Uipath St…...
神经网络优化器之随机梯度下降法的理解
随机梯度下降法(SGD)随机梯度下降方法,在每次更新时用1个样本,随机也就是说我们用样本中的一个例子来近似我所有的样本,由于计算得到的并不是准确的一个梯度,因而不是全局最优的。但是相比于批量梯度&#…...

记录一次WIN11开机在登录页面循环的问题
记录一次由于未进行win密码设置,导致开机后卡在登录界面无法登录进去的问题。最后完美解决了。 1. 背景 开机后,显示用户登录界面,但是和以往不同,没有了密码输入框,只有一个“登录”按钮孤零零地显示在屏幕中间&…...
始终从最不易改变的方面开始
在你刚开始新工作、转换职业或者是加入新项目时,始终从最不易改变的方面开始。 在工作中,这可能意味着与团队成员建立关系,了解公司的流程和文化,或者熟悉公司的产品或服务。 在一项新项目中,这可能意味着了解项目范…...
4、Httpclient源码解析之HTTP协议
初始化CloseableHttpClient过程中涉及ExecChainHandler & DefaultHttpProcessor,即典型客户端责任链中的请求执行处理器。 责任链中各节点涉及请求处理器【ExecChainHandler】顺序如下:RedirectExec、ContentCompressionExec、HttpRequestRetryExec…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...