肖sir__设计测试用例方法之因果图07_(黑盒测试)

news2025/3/3 18:18:01

设计测试用例方法之因果图
一、定义:因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其 中,原因是表示输入条件,结果是对输入执 行的一系列计算后得到的输出。
二、因果图方法最终生成的就是判定表。它适合于检查软件输入条件的各种组合情况
三、因果图的步骤:
1.把大的系统规格划分解成可以测试的规格片段
2.分析分解后待测的系统规格,找出哪些是原因,哪些是结果
3.画出因果图
4.把因果图转换成判定表
5.简化判定表
6.用判定表中的每一列生成测试用例
四、因果图的符号
在这里插入图片描述
例如
恒等:有钱富人
非: 有钱 =穷人
或: v 满足其中一个条件
有存款、有车、有房 有其中一个或多个
富人
与: ∧ 满足所有的条件
有存款、有车、有房 同时满足 富人
E异:a和b中最多有一个为1,即a和b不能同时为1.
开关: 开关两个按钮 ,只有开 或,只有关i或:a\b\c中至少有一个必须为1,即a、b、不能同时为0
有存款、有车、有房 有其中一个或多个
富人
有存款
富人
有车======================富人
有房 富人
有存款、有车
富人
有存款、有房 ======================富人

o唯一:a必须有一个1;
有钱====富人
r约束: (要求) a是1时,b必须是1,即a为1时,b不能为0 。
例如:
父子 (有钱) =========儿子(有钱)
夫妻关系: a:结婚状态 b结婚状态
m强制:结果a为1,则结果b强制为0.
例如:
两个比赛
1个人胜利,另1个失败
详解:
果图中的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四种 约束,
对于输出条件的约束只有M约束。
Ø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约束(强制):若结果a为1,则结果b强制为0。

五、因果图的优点/缺点
优点:

  1. 等价类法尽管各个输入条件可能出错的情况都考虑 到了,但是多个输入条件组合起来出错的情况却被 忽略了
  2. 因果图法能够帮助我们按照一定步骤,高效的选择 测试用例,设计多个输入条件组合用例
  3. 因果图分析还能为我们指出,程序规格说明描述中 存在什么问题
    缺点:
  4. 输入条件与输出结果的因果关系,有时难以从软件 需求规格说明书得到
  5. 即使得到了这些因果关系,也会因为因果关系复杂 导致因果图非常庞大,测试用例数目及其庞大

六、
因果图转换判定表的方法:

  1. 将因果图中的所有条件(因)填入判定表 的条件桩中;
  2. 将因果图中的所有动作(果)填入判定表 的动作桩中;
  3. 根据因果图确定各个条件组合对应的动作, 并且确定判定表中各个规则的条件项和动 作项,在需要时优化判定表
    七、案例:
    (1)题目
    一个处理单价为5角钱的饮料的自 动售货机。
    其规格说明如下:
    若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
    (2)找出原因和结果
    在这里插入图片描述

(3)因果图
在这里插入图片描述
在这里插入图片描述
判定表:
在这里插入图片描述
作业:
案例;
某软件规格说明书包含这样的要求:
第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一个数字。
结果:
21——修改文件;
22 ——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/981058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rhcsa4 进程和SSH

tree命令。用于以树状结构显示目录和文件。通过运行 “tree” 命令可视化地查看文件系统中的目录结构。 tree / systemd是第一个系统进程(pid1)不启动,其他进程也没法启动, 用pstree查看进程树 我们可以看到所有进程都是syste…

蓝桥杯打卡Day3

文章目录 吃糖果递推数列 一、吃糖果IO链接 本题思路:本题题意就是斐波那契数列&#xff01; #include <bits/stdc.h>typedef uint64_t i64;i64 f(i64 n) {if(n1) return 1;if(n2) return 2;return f(n-1)f(n-2); }signed main() {std::ios::sync_with_stdio(false);s…

GRU门控循环单元

GRU 视频链接 https://www.bilibili.com/video/BV1Pk4y177Xg?p23&spm_id_frompageDriver&vd_source3b42b36e44d271f58e90f86679d77db7Zt—更新门 Rt—重置门 控制保存之前一层信息多&#xff0c;还是保留当前神经元得到的隐藏层的信息多。 Bi-GRU GRU比LSTM参数少 …

服务器数据恢复-阵列崩溃导致LVM结构破坏的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有两组分别由4块SAS硬盘组建的raid5阵列&#xff0c;两组阵列上层划分LUN组建LVM结构&#xff0c;并被格式化为EXT3文件系统。 服务器故障&检测&#xff1a; RIAD5阵列中有一块硬盘故障离线&#xff0c;热备盘激活上线顶替离线…

西门子PLC的优势在哪呢?

今日话题&#xff0c;西门子PLC有何优势以至于能够在竞争中超越三菱和欧姆龙&#xff1f;西门子PLC作为德国品牌&#xff0c;具有独特的优势。视频后方有学习资料免费发放&#xff0c;有兴趣的移步自取。首先&#xff0c;尽管其指令相对抽象&#xff0c;学习难度较高&#xff0…

2.k8s账号密码登录设置

文章目录 前言一、启动脚本二、配置账号密码登录2.1.在hadoop1&#xff0c;也就是集群主节点2.2.在master的apiserver启动文件添加一行配置2.3 绑定admin2.4 修改recommended.yaml2.5 重启dashboard2.6 登录dashboard 总结 前言 前面已经搭建好了k8s集群&#xff0c;现在设置下…

【Mycat1.6】缓存不生效问题处理

背景 系统做读写分离&#xff0c;有大量读需求&#xff0c;基本没有实时获取数据业务需要&#xff0c;所以可以启用缓存来减缓数据库压力&#xff0c;传统使用mybatis的缓存需要大量侵入式声明&#xff0c;所以结合需求使用Mycat中间件来满足 数据库结构 mysql-master&#…

直播系统源码部署,高效文件管理与传输的FTP协议

引言&#xff1a; 在直播系统源码部署的过程中&#xff0c;开发协议是支持直播系统源码功能技术搭建成功并发挥作用的关键之一&#xff0c;在直播系统源码的众多协议中&#xff0c;有一个协议可以帮助直播系统源码部署完成后用户进行媒体文件的上传、下载、管理等操作&#xff…

CMake生成Visual Studio工程

CMake – 生成Visual Studio工程 C/C项目经常使用CMake构建工具。CMake 项目文件&#xff08;例如 CMakeLists.txt&#xff09;可以直接由 Visual Studio 使用。本文要说明的是如何将CMake项目转换到Visual Studio解决方案(.sln)或项目(.vcxproj) 开发环境 为了生成Visual S…

mysql数据库通过拷贝目录实现迁移

在windows环境中&#xff0c;如果mysql已有数据目录&#xff0c;进行数据迁移&#xff0c;可以通过直接拷贝数据文件的方式实现。下面是详细步骤 1 下载安装一个同版本的mysql数据库 到mysql官网下载MySQL安装文件&#xff0c;以下是mysql官网地址: https://downloads.mysql.c…

基于3D扫描和3D打印的产品逆向工程实战【数字仪表】

逆向工程是一种从物理零件创建数字设计的强大方法&#xff0c;并且可以与 3D 扫描和 3D 打印等技术一起成为原型设计工具包中的宝贵工具。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 3D 扫描仪可以非常快速地测量复杂的物体&#xff0c;并且在涉及现实生活参考时可以…

自动化监控系统PrometheusGrafana

Prometheus 算是一个全能型选手&#xff0c;原生支持容器监控&#xff0c;当然监控传统应用也不是吃干饭的&#xff0c;所以就是容器和非容器他都支持&#xff0c;所有的监控系统都具备这个流程&#xff0c;数据采集→数据处理→数据存储→数据展示→告警 Prometheus 特点展开…

DAY-01--分布式微服务基础概念

一、项目简介 了解整体项目包含后端、前端、周边维护。整个项目的框架知识。 二、分布式基础概念 1、微服务 将应用程序 基于业务 拆分为 多个小服务&#xff0c;各小服务单独部署运行&#xff0c;采用http通信。 2、集群&分布式&节点 集群是个物理形态&#xff0c;…

02 CSS技巧

02 CSS技巧 clip-path 自定义形状&#xff0c;或者使用自带的属性画圆等circle HTML结构 <body><div class"container"></div> </body>CSS结构 使用*polygon*自定义形状 .container {width: 300px;height: 300px;background-color: re…

基于jeecg-boot的flowable流程历史记录显示修改

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff09; &#xff1a; http://122.227.135.243:9888 历…

在iPhone上构建自定义数据采集完整指南

在iPhone上构建自定义数据采集工具可以帮助我们更好地满足特定需求&#xff0c;提高数据采集的灵活性和准确性。本文将为您提供一份完整的指南和示例代码&#xff0c;教您如何在iPhone上构建自定义数据采集工具。 自定义数据采集工具的核心组件 a、数据模型 数据模型是数据采…

VectorDraw Developer Framework 10.1004 Crack

VectorDraw 开发人员框架 (VDF) 是一个图形引擎库&#xff0c;开发人员可以使用它来可视化其应用程序。通过提供的功能&#xff0c;我们的客户可以轻松创建、编辑、管理、导出、导入和打印 2D 和 3D 绘图 - 图形文件。VDF 使用的强大格式称为 VDML&#xff08;以及与 VDML 相同…

leetcode 20.有效括号 栈的简单应用

题目 数据结构 栈 code var isValid function(s) {// 空串和长度为奇数的字符串一定不符合要求if(!s || s.len%2){return true}let match {(: ),[: ],{: }}let stack []let len s.lengthfor(let i0; i<len; i){const ch s[i]if(ch[ || ch( || ch{){// 如果是左括号,…

macOS - 安装使用 SQLite

文章目录 关于 SQLite安装 使用 关于 SQLite 官网&#xff1a;https://sqlite.org/index.html 安装 https://formulae.brew.sh/formula/sqlite brew install sqlite包被安装在了&#xff1a;/usr/local/Cellar/sqlite/3.43.0_1 查看已安装版本信息 $ brew info sqlite >…

Demo记录|移动端H5页面如何实现上下滑动触发事件的小功能

Demo记录|移动端H5页面如何实现上下滑动触发事件的小功能 简单记录一个小demo&#xff0c;如果写h5页面比较实用&#xff0c;可以实现一些有趣的功能。 我这里主要是用来另类的实现抖音视频上下切换播放&#xff0c;因为视频涉及的选集&#xff0c;不能按照网上大部分的使用列表…