软件测试用例设计之因果图

2023-11-17

软件测试用例设计之因果图

自动贩卖机功能测试

若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。

若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;

若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币;

橙汁与啤酒均为5角钱一瓶。

Step1、如果需求是文字描述,将文字转化为图形

Step2、需求中包含1个独立功能 —— 贩卖功能

Step3、针对打印功能开展需求分析              

界面可见输入参数:橙汁、啤酒、投币              

界面不可见输入参数: 电量、货源

Step4、分析界面可见输入参数之间的关系及特点

等价类 ——不存在无效规则(点橙汁是对的,不点是错的?)

边界值 —— 不存在区间范围

判定表 —— 参数之间存在逻辑关系√,不同组合输出不同结果√                        

                        不存在一个是什么另外一个必须是什么

正交试验 —— 不全是有效的,存在无效(投币存在无效)

流程分析法 —— 不跨界面

状态迁移图 —— 不全是有效的,存在无效×                              

                        参数之间存在约束关系(点橙汁不能点啤酒)√

参数之间存在逻辑关系,不同逻辑组合会输出不同结果

参数之间存在约束关系,输出结果不确定          —— 因果图

 因果关系

恒等:条件C满足要求时,一定会输出结果E      

例如:投5毛点橙汁,一定会输出橙汁  

非:条件C满足要求时,一定不会输出结果E      

例如:投5毛点橙汁,一定不会输出啤酒

或:条件C1、C2、C3任何一项满足要求时,就会输出结果E      

例如:测试管理工具QC、禅道、Jira中会使用任何一款工具即会被录用  

与:条件C1、C2、C3同时满足要求时,才会输出结果E      

例如:同时会使用禅道、SVN、selenium三款工具才会被录用

原因与原因之间的关系

异:原因a、b中只能有一个为真(只有2个条件)      

例如:两支笔(签字笔、白板笔)中有且只有一支是白板笔

或:原因a、b中至少有一个为真(a为真,b也可以为真)      

例如:两支笔(白板笔)中至少有一支是白板笔

唯一:在多组判定条件中,有且只有一个为真(多个条件)      

例如:在多人的间谍游戏中,有且只有一个是间谍

要求:原因a满足条件时,原因b一定满足条件      

例如:面试穿正装(约束,共同努力完成一件事情)

结果与结果之间的关系

强制:结果a出现时,结果b一定不出现      

例如:橙汁出现时,啤酒一定不出现

 1. 某软件规格说明书包含这样的要求:

第一列字符必须是A或B,第二列字符必须是一个数字, 在此情况下进行文件的修改,

但如果第一列字符不正确,则给出信息L; 如果第二列字符不是数字,则给出信息M。

根据题意,原因和结果如下:

原因:

1——第一列字符是A;

2——第一列字符是B;

3——第二列字符是一数字。

结果:

21——修改文件;

22 ——给出信息L;      

23——给出信息M。

 【例】 有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下。

① 若投入5角钱或1元钱的硬币,按下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只按下一种饮料的按钮。)

② 如投入5角的硬币,按下按钮后,总有饮料送出。

③ 若售货机没有零钱找,则【零钱找完】的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。

④ 若有零钱找,则【零钱找完】的红灯不会亮,若投入1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。

 

 以中国象棋中马的走法为例子,具体说明:

1、如果落点在棋盘外,则不移动棋子;

2、如果落点与起点不构成日字型,则不移动棋子;

3、如果落点处有自己方棋子,则不移动棋子;

4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;

5、如果不属于1-4条,且落点处无棋子,则移动棋子;

6、如果不属于1-4条,且落点处为对方棋子 (非老将) ,则移动棋子并除去对方棋子;

7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。

 案例分析--因果图

1)  根据程序规格说明书描述的语义内容,分析并确定“因”和“果”;

原因:

1、  落点在棋盘外;

2、  不构成日字;

3、  落点有自方棋子;

4、  绊马腿;

5、  落点无棋子;

6、  落点为对方棋子;

7、  落点为对方老将。

结果:

21、 不移动;

22、移动;

23、移动己方棋子消除对方棋子;

24、  移动并战胜对方。

因果图的优缺点

优点:

1.充分考虑了输入条件之间的组合,对组合情况覆盖充分。

2.最终每个用例覆盖多种输入情况,有利于提高测试效率。

3.设计过程中,对输入条件间的约束关系做了考虑,避免了无效用例,用例的有效性高。

4.能够同时得出每个测试项目的预期输出

缺点:

1.当被测试特性输入较多时,判定表的规模会非常大。

2.输入之间的约束条件不能有效区分输入是否确实需要进行组合测试,会造成不需要组合测试的输入做了组合,从而产生用例冗余。

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

软件测试用例设计之因果图 的相关文章

  • 软件测试中的43个功能测试点总结

    功能测试就是对产品的各功能进行验证 根据功能测试用例 逐项测试 检查产品是否达到用户要求的功能 针对web系统的常用测试方法如下 1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro
  • 测试用例方法边界值

    测试用例方法边界值 什么是边界值方法 等价类重点是整体是否有效 边界值更多关注数值边界是否有效 边界值编写方法分析思路 1 找到符号产品需求的数值范围 2 确定有效的数值范围 3 根据有效的数值范围查找无效的数值范围 4 编写数值范围对应的
  • 软件测试金融测试岗位,本人亲面

    网上银行转账是怎么测的 设计一下测试用例 回答思路 宏观上可以从质量模型 万能公式 来考虑 重点需要测试转账的功能 性能与安全性 设计测试用例可以使用场景法为主 先列出转账的基本流和备选流 然后设计场景 最后根据场景设计数据 实际面试中需要
  • Lim接口测试平台-接口测试功能详解

    一 接口测试 项目地址 Gitee Github 接口测试模块是整个Lim平台的核心 左侧是接口的模块树 右侧顶部是用例操作功能区 列表展示接口用例信息 文章目录 一 接口测试 二 维护接口用例 各步骤类型详解 1 执行步骤 1 接口步骤
  • 软件质量保证与测试技术实验报告(二)黑盒测试用例设计

    1 实验名称 黑盒测试用例设计 2 实验目的 学会用等价类划分法和边界值法设计测试用例 进行功能测试 3 实验内容 题目1 NextDate程序的功能是按年 月 日的顺序输入一个日期 输出为输入日期后一天的日期 请使用等价类和边界值法对Ne
  • 软件工程基础知识--系统测试

    系统测试与调试 1 系统测试的意义和目的 系统测试是为了发现错误而执行程序的过程 以最少的人力和时间发现潜在的各种错误和缺陷 根据测试的概念和目的 在进行信息系统测试时应遵循以下基本原则 1 应尽早并不断地进行测试 2 测试工作应该避免由原
  • 【大学生软件测试基础】白盒测试 - 控制流图 - 01

    任务1 画出程序流程图 任务2 画出控制流图 任务3 根据程序环形复杂度的计算公式 求出程序路径集合中的独立路径数目 任务4 根据环形复杂度的计算结果 源程序的基本路径集合中有多少条独立路径 任务5 设计测试用例 1 程序流程图 2 控制流
  • 软件外包开发的测试用例

    软件测试用例是一组详细的步骤 输入数据 预期结果和实际结果 用于验证软件是否满足特定需求或功能 编写测试用例的目的是确保软件的质量和性能 今天和大家分享编写软件测试用例的一般步骤 希望对大家有所帮助 北京木奇移动技术有限公司 专业的软件外包
  • 如何写接口测试用例

    一 接口测试用例基础知识 1 接口测试要测的是什么 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互 测试的重点是要检查数据的交换 传递和控制管理过程 以及系统间的相互逻辑依赖关系等 2 接口测试的意义 按照分层测试模型
  • 接口测试的简介及测试用例的设计

    一 什么是接口 接口测试 是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点 测试的重点是要检查数据的交换 传递和控制管理过程 以及系统间的相互逻辑依赖关系等 二 接口的作用 作为一个互联网
  • 测试人经验谈:需求不明确也能写出测试用例

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 5k次 点赞69次 收藏10次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Pytest自动化测试框架:mark用法---测试用例分组执行

    pytest中的mark mark主要用于在测试用例 测试类中给用例打标记 只能使用已注册的标记名 实现测试分组功能 并能和其它插件配合设置 测试方法 执行顺序等 如下图 现在需要只执行红色部分的测试方法 其它方法不执行 设置步骤如下 1
  • JMeter如何从数据库中获取数据并作为变量使用?

    前言 JMeter 如何从数据库中获取数据并作为变量使用 这在我们使用 JMeter 做 接口测试 压力测试 时经常碰到 今天通过两个示例 实现MySQL数据库的查询结果的 单值引用 和 多值引用 进行说明 这里虽然以MySQL数据库做说明
  • 测试工程师都是怎么写测试用例的?浅谈测试用例的编写思路和执行

    性能测试 压力测试 负载测试 强度测试 稳定性测试 健壮性测试 功能测试 系统测试 集成测试 接口测试 这么些眼花缭乱的测试类型名称 估计很少有有人能准确地区分和说出定义来 对应的测试用例如何编写和执行 就更不容易进行了 如果问测试工程师测
  • 2024Web自动化测试的技术框架和工具有哪些?

    Web 自动化测试是一种自动化测试方式 旨在模拟人工操作对 Web 应用程序进行测试 这种测试方式可以提高测试效率和测试精度 减少人工测试的工作量和测试成本 在 Web 自动化测试中 技术框架和工具起着至关重要的作用 本文将介绍几种常见的
  • Postman报错提示 Could not get any response怎么解决

    在通过 postman 请求做接口测试的过程中 有时候会遇到一些报错 当遇到这些报错我们不要着急 看着具体哪里报错 然后进行解决 postman报错 经常使用postman的小伙伴们都应该遇到过一些报错 遇到报错的时候我们不要着急 这么这几
  • 2024Web自动化测试的技术框架和工具有哪些?

    Web 自动化测试是一种自动化测试方式 旨在模拟人工操作对 Web 应用程序进行测试 这种测试方式可以提高测试效率和测试精度 减少人工测试的工作量和测试成本 在 Web 自动化测试中 技术框架和工具起着至关重要的作用 本文将介绍几种常见的
  • Postman报错提示 Could not get any response怎么解决

    在通过 postman 请求做接口测试的过程中 有时候会遇到一些报错 当遇到这些报错我们不要着急 看着具体哪里报错 然后进行解决 postman报错 经常使用postman的小伙伴们都应该遇到过一些报错 遇到报错的时候我们不要着急 这么这几
  • JMeter 性能测试基本过程及示例

    jmeter 为性能测试提供了一下特色 jmeter 可以对测试静态资源 例如 js html 等 以及动态资源 例如 php jsp ajax 等等 进行性能测试 jmeter 可以挖掘出系统最大能处理的并发用户数 jmeter 提供了一
  • 车载测试相关理论知识

    学到了一些专用英文 BMS 电池管理系统 MCU 电机控制单元 GCU 增程器发电机控制器 OBC 车载充电机 DC DC 直流转换器 汽车上面涉及的控制器有 VCU 核心电子控制单元 BMS 电池管理系统 ECU 发动机 TCU MCU

随机推荐

  • 四分位数与pandas中的quantile函数

    四分位数与pandas中的quantile函数 1 分位数概念 统计学上的有分位数这个概念 一般用p来表示 原则上p是可以取0到1之间的任意值的 但是有一个四分位数是p分位数中较为有名的 所谓四分位数 即把数值由小到大排列并分成四等份 处于
  • Streamlit 讲解专栏(十一):数据可视化-图表绘制详解(中)

    文章目录 1 前言 2 绘制交互式散点图 3 定制图表主题 4 增强数据可视化的交互性与注释 步骤1 步骤二 5 结语 1 前言 在上一篇博文 Streamlit 讲解专栏 十 数据可视化 图表绘制详解 上 中 我们学习了一些关于数据可视化
  • AI绘画是艺术还是技术?AI绘画会让插画师集体失业?

    今年以来 AI绘画的讨论热潮此起彼伏 过一段时间就会引起争议和恐慌 就在近日 日本推出一款名为mimic的AI绘画软件 被日本绘画圈集体声讨 许多画师公开禁止AI绘画 恰巧最近美国艺术圈里关于AI绘画也发生了一件大事 一副 数字绘画 作品获
  • day2 poc与exp学习之pikachu字符注入

    exp编写 这里以基于联合注入的exp为例子 1 全局变量 对数据存储以及http包头的自定义 url http 192 168 110 131 pikachu master vul sqli sqli str php 要验证注入点的url
  • IBM《智慧数据中心》

    部分内容摘要 IBM认为 数据中心的发展路径是从成本中心演变成为服务中心 其功能也从支撑业务发展到驱动业务 并进一步成为业务创新的加速器 未来数据中心将是智慧的 绿色的 灵活支撑业务发展的 实现监控可视化 控制自动化 管理流程化 信息系统从
  • 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

    目录 试题 A 日期统计 本题总分 5 分 试题 B 01 串的熵 本题总分 5 分 试题 C 冶炼金属 本题总分 10 分 试题 D 飞机降落 本题总分 10 分 试题 E 接龙数列 本题总分 15 分 试题 F 岛屿个数 本题总分 15
  • node.js express 文件服务器,如何用nodejs+express搭建一个简单的后台服务器?

    Express框架 根据官方的介绍 Express是一个基于Node js平台 快速 开放 极简的Web开发框架 安装 Express是一个基于Node js的平台 所以在安装Express之前 你得先确保你已经安装了Node js 打开命
  • 计算1到10的阶乘之和:1!+2!+3!+......+10!(C语言&&Python)

    计算1到10的阶乘之和 1 2 3 10 C语言 include
  • Java 文件上传 三种方式

    一 配置springBoot上传文件限制 spring servlet multipart max file size 100MB 单个文件大小 max request size 1024MB 总文件大小 二 代码 import org s
  • 【LVGL 学习】样式(style)过渡动画学习

    transition 过渡动画 当一个控件的状态发生改变时 可以让样式也发生变化以提醒用户 通过过渡动画 transition 可以让样式的改变更自然 例如 按钮在点击时 以及开关在切换时 都具有一小段的过渡动画 过渡动画使用 lv sty
  • Vue手动控制点击事件Click触发

    方法一 变量的值 触发函数 方法二 利用变量控制css样式设置其pointer event none
  • Dynamics 365 for Sales: Email Engagement

    今天我们来看看和电子邮件相关的新功能 Email Engagement 这个功能是用来跟踪电子邮件的反馈状态 非常适合做邮件营销的公司 在做邮件营销的时候 我们会对发出去的邮件进行反馈统计 例如 多少邮件被查看了 有多少邮件被回复了 有多少
  • 微信小程序:css弹出菜单+多语言切换功能

    如何用css写出弹出菜单效果以及它的使用 1 核心知识点 2 实现效果 3 注意点分解 4 代码源码 5 写在最后 1 核心知识点 1 弹出菜单 animation动画 transform属性 2 语言切换功能 点击事件函数catchtap
  • tar解压文件到指定目录出现Not found in archive

    使用tar解压文件到指定目录时出现Not found in archive是因为没有设置 C这个参数 create 解压后的文件只有 通过设置 C 注意要大写 这个参数 创建默认文件夹才能被成功解压 如需要把home目录下的 jdk 8u1
  • 企业微信自动打卡插件开发

    今日科技快讯 近日中国多家VPN供应商已收到了来自苹果公司的通知 通知主要告知这些供应商和开发者 他们的软件将从中国区App Store下架 对此苹果方面表示 工信部今年早些时候宣布 所有提供VPN服务的开发者必须获得政府的许可 我们被要求
  • rabbitmq 安装

    文章目录 RabbitMQ 安装 erlang安装 RabbitMQ安装 环境变量 管理界面 添加用户 配置允许远程访问的用户 未验证 RabbitMQ 安装 erlang安装 http www erlang org downloads R
  • 鼠标、键盘、窗口监听事件

    一 画笔paint 画笔 public class TestPaint public static void main String args new MyPaint loadFrame class MyPaint extends Fram
  • openwrt路由器(RP-LINK)安装python并设置开机启动程序

    由于项目需求 实际条件限制 需要在某台设备上运行一个python小程序 在工业机器人和云服务器之间实现信息转发的功能 因为机器人也需要通过路由器认证连接校园网 出于简化设备的考虑 不想每次跑程序还得开电脑 我决定尝试在路由器上运行这个程序
  • js时间戳与日期格式的转换

    1 将时间戳转换成日期格式 function timestampToTime timestamp 时间戳为10位需 1000 时间戳为13位不需乘1000 var date new Date timestamp 1000 var Y dat
  • 软件测试用例设计之因果图

    软件测试用例设计之因果图 自动贩卖机功能测试 若投入5角钱或1元钱的硬币 押下 橙汁 或 啤酒 的按钮 则相应的饮料就送出来 若售货机没有零钱找 则一个显示 零钱找完 的红灯亮 这时在投入1元硬币并押下按钮后 饮料不送出来而且1元硬币也退出