用例测试方法5,6:状态迁移图和因果图

状态迁移图

通过描绘系统的状态及引起状态转换的事件,来表示系统的行为

例如:订机票

l向航空公司打电话预定机票—>此时机票信息处于

“完成”状态

顾客支付了机票费用后—>机票信息就变为“已支付”状态

旅行当天到达机场后,拿到机票后—>机票信息就变为“已出票”状态

登机检票后—>机票信息就变为“已使用”状态

在登上飞机之前任何时间可以取消自己的订票信息,

如果已经支付了机票的费用,则还可以得到退款,

取消后—>订票信息处于“已被取消”状态

转换成迁移树:

2.状态迁移图设计测试用例步骤:

1)画出状态迁移图

2)通过状态迁移图画出状态转换树

3)从状态转换树推导出测试路径

4)根据测试路径编写合法(正常)测试用例或非法(异常)测试用例

注意:保证从状态转换树的根节点到每个叶节点的每一条路径都至少设计出一个测试用例

案例:打印机状态

状态迁移图:

状态迁移树:

推到用例:

a.验证打印完成

b.验证打印完成(修复故障)

c.验证打印完成(加纸)

2.因果图

1)定义:因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据,其中,原因表示输入条件,结果是对输入执行的一系列计算后得到的输出。

2)作用:因果图方法最终生成的就是判定表,它适合检查软件输入条件的各种组合情况。

3)因果图中的约束:在实际问题中输入状态相互之间,输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件的约束有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。

4)因果图中的四种基本关系:

在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。

ci与ei取值0或1,0表示某状态不出现,1表示某状态出现。

Ø恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。

例如:有钱=富豪

Ø非:若c1是1,则e1为0,否则e1为1:;

5)因果图转换判定表的方法:

a.将因果图中的所有条件(因)填入判定表的条件桩中;

b.将因果图中的所有动作(果)填入判定表的动作桩中;

c.根据因果图确定各个条件组合对应的动作,并且确定判定表中各个规则的条件项和动作项,在需要时优化判定表。

6)因果图的步骤:

a.把大的系统规格划分解成可以测试的规格片段;

b.分析分解后待测的系统规格,找出哪些是原因,哪些是结果

c.画出因果图

d.把因果图转化成判定表

e.简化判定表

f.用判定表中每一列生成测试用例

7)因果图的优缺点:

优点:

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

案例:
一个处理单价为5角钱的饮料的自 动售货机。其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币

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

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

相关文章

linux 脚本解释

if [ $? -ne 0 ]; thenecho "错误: 无法关闭现有 Tomcat 实例,终止启动流程!" >&2exit 1fi$? 是shell中的特殊变量,表示上一个命令的退出状态码-ne 0 表示"不等于0"(在Unix/Linux中,0通常表示成功,非…

Glary Utilities(系统优化工具) v6.20.0.24 专业便携版

GlaryUtilities 允许你清理系统垃圾文件,无效的注册表,上网记录,删除插件,查找重复文件,优化内存,修理或删除快捷方式,管理windows启动程序,卸载软件,安全删除文件&#…

VScode链接服务器一直卡在下载vscode服务器/scp上传服务器,无法连接成功

终极方案&#xff08;强力推荐&#xff0c;亲测有效&#xff0c;链接只需5秒钟&#xff09;&#xff1a;本地下载复制到mkdir -p ~/.vscode-server/bin/<commit_hash>里面 <commit_hash>可以从帮助->关于里面找到&#xff0c;如下所示 版本: 1.96.2 提交: fa…

基于Spring Boot的农村农产品销售系统设计与实现

随着现代农业的快速发展,传统农产品的销售模式逐渐暴露出信息闭塞、流通效率低和中间环节多等问题。为了打破这些瓶颈,我基于Spring Boot框架开发了一套农产品销售系统,旨在构建一座连接农民与消费者之间的数字桥梁,让优质农产品更高效地直达用户餐桌。 一、项目背景与目标…

Mysql默认存储引擎InnoDB和底层数据结构

在黑马点评项目实战中&#xff1a;谈到了为什么不推荐使用mysql的字段自增作为订单id传递给客户端&#xff0c;让我想到了Mysql的​​存储引擎​​和​​底层数据结构​​究竟是什么&#xff1f;它是如何实现自增的&#xff1f;本文主要是深度解析 MySQL 默认存储引擎 InnoDB 与…

原点安全签约金网络数科,共建一体化数据安全防护体系

金网络正式携手原点安全&#xff0c;基于原点安全一体化数据安全平台&#xff08;uDSP&#xff09;&#xff0c;启动企业数据安全平台建设项目&#xff0c;围绕数据资产盘点、敏感数据识别与分类分级、数据访问权限管控、数据动态脱敏、数据安全审计与风险监测等关键能力建设&a…

mix-blend-mode的了解使用

mix-blend-mode 是 CSS 的一个属性&#xff0c;用于控制元素的内容&#xff08;如文本、图像、背景等&#xff09;如何与其 父元素 或 背景 进行混合。它类似于图形设计软件&#xff08;如 Photoshop&#xff09;中的图层混合模式&#xff0c;可以实现各种视觉效果&#xff1b;…

vue自定义指令bug

问题描述&#xff1a;页面加载时&#xff0c;报已下错误。同时&#xff0c;页面数据不显示环境介绍&#xff1a;已经添加了vue自定义指令permission&#xff0c;实现如下&#xff0c;用以控制元素显示权限app.directive(permission, (el, binding) > {if (!store.hasPermiss…

Vue3 + WebSocket

Vue3与WebSocket结合能够很好地满足实时通讯的需求。通过合理设计和管理WebSocket连接的生命周期&#xff0c;以及实现必要的重连逻辑和心跳检测机制&#xff0c;可以构建出响应迅速且稳定的实时应用。WebSocketWebSocket允许服务端主动向客户端发送数据&#xff0c;无需客户端…

IPSec和HTTPS对比(一)

IPSec&#xff08;Internet Protocol Security&#xff09;是网络层&#xff08;OSI第3层&#xff09;的加密协议&#xff0c;其核心机制和与HTTPS的区别如下&#xff1a;&#x1f512; ​一、IPSec的核心机制解析​​1. 安全封装结构​┌──────────┬───────…

关于 c、c#、c++ 三者区别

1. 起源与定位语言起源时间开发者定位/特点C1972年Dennis Ritchie面向过程的编程语言&#xff0c;强调底层控制与高效性能C1983年Bjarne Stroustrup在 C 的基础上加入 面向对象编程&#xff08;OOP&#xff09;C#2000年微软&#xff08;Microsoft&#xff09;类似 Java&#xf…

项目总体框架(servlet+axios+Mybatis)

项目总体框架 先暂时这样子&#xff08;后续发现错误的话就改&#xff09; com.hope-tieba/ ← 项目根 ├─ .idea/ ← IDEA 工程配置 ├─ src/ │ ├─ main/ │ │ ├─ java/ │ │ │ └─ com/hope/ │ │ …

RestTemplate 实现后端 HTTP 调用详解

1. 方法签名解析方法名和返回类型说明了这个方法的业务意图和数据结构。Override 表示实现接口方法&#xff0c;利于规范开发和自动检查。Override public List<RobotInfo> listRobots() {这里 RobotInfo 是假设的业务数据结构&#xff0c;实际项目中按你的类名即可。2. …

Python单例模式详解:从原理到实战的完整指南

引言 单例模式是软件设计中最常用的模式之一&#xff0c;它确保一个类只有一个实例&#xff0c;并提供全局访问点。在Python中&#xff0c;实现单例模式有多种优雅的方式&#xff0c;本文将详细讲解6种主流实现方法&#xff0c;包含完整代码示例和注释。 一、模块级单例&#x…

拼团系统中的幂等性防护 , 前置性查询,Redis 库存预判

这段内容涉及两个关键点&#xff1a;幂等性防护 和 拼团目标量判断&#xff0c;下面我将分别解释这两个问题&#xff0c;并重点说明&#xff1a; “如果没有拦截&#xff0c;最终访问数据&#xff0c;也会有数量判断拦截。” 这句话的意思。 ✅ 1. 查询外部交易 outTradeNo 是…

【Python】LEGB作用域 + re模块 + 正则表达式

文章目录一 LEGB作用域二 re&#xff08;Regular Expression&#xff09;预览1. re.match() —— 从字符串开头匹配2. re.search() —— 搜索整个字符串3. re.findall() —— 返回所有匹配的字符串列表4. re.finditer() —— 返回所有匹配的迭代器5. re.sub() —— 替换匹配的字…

JavaSE -- 数据操作流

6. 数据操作流在执行文件存储一个对象的时候&#xff0c;如果该对象只有少量属性需要存储&#xff0c;并且这些属性的类型都是基本数据类型&#xff0c;此时则不需要对象序列化技术。使用数据操作流既可以实现。 DataOutputStreamDataInputStream 注意&#xff1a; 读取数据的时…

GI6E 加密GRID電碼通信SHELLCODE載入

GI6E https://github.com/MartinxMax/gi6e 「它似乎能從特製的音訊信號中提取敏感資訊。」 HEX-GRID CODEX&#xff08;簡稱 HGC&#xff09;是一種自定義的 6 位元結構編碼系統&#xff0c;使用三位元的群組識別碼&#xff08;Group Bits&#xff09;加上三位元的索引識別碼…

实习十三——传输层协议

补充子网划分的主要目的就是为了节约IP&#xff0c;降低成本&#xff0c;但是如果划分私有IP网段&#xff0c;则完全没有意义&#xff0c;因为私有IP可重复&#xff0c;不要钱&#xff0c;所以私有IP严禁进行子网掩码划分传输层协议TCP三次握手TCP协议数据格式第一次握手&#…

RPG59.玩家拾取物品三:可拾取物品的提示UI

1。以WarriorWidgetBase作为父类&#xff0c;创建一个子类的userwidget2.布局为两个值都为1203。然后我们需要想办法&#xff0c;在合适的位置&#xff0c;用bool来控制此控件的显示与隐藏。情况为&#xff1a;当玩家触发与可拾取物体的重叠时&#xff0c;我们将广播一个bool值…