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

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(使用前将#替换为@)

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

  • 接口测试的测试用例该怎么写呢

    接口测试是软件测试中非常重要的一部分 因为接口的稳定性和可靠性对于整个系统的质量和用户体验都有很大的影响 在接口测试中 编写有效的测试用例是非常关键的一步 本文将介绍如何编写接口测试的测试用例 包括测试用例的设计和编写方法 并提供一些具体的
  • 【测试设计】使用jenkins 插件Allure生成自动化测试报告

    前言 以前做自动化测试的时候一直用的HTMLTestRunner来生成测试报告 后来也尝试过用Python的PyH模块自己构建测试报告 在后来看到了RobotFramework的测试报告 感觉之前用的测试报告都太简陋 它才是测试报告应该有的
  • 软件测试复习(4)----测试用例的编写

    软件测试的编写有这几大不可缺少的元素 测试目标 测试环境 输入数据 步骤 期望结果 看例题 根据如下登录界面设计两个测试用例 设计两个测试用例 我们可以从正反两面设计 设计一个正确成功登录的用例 再设计一个登录失败的用例 测试用例1 测试目
  • 测试用例方法边界值

    测试用例方法边界值 什么是边界值方法 等价类重点是整体是否有效 边界值更多关注数值边界是否有效 边界值编写方法分析思路 1 找到符号产品需求的数值范围 2 确定有效的数值范围 3 根据有效的数值范围查找无效的数值范围 4 编写数值范围对应的
  • 卷麻了,00后测试用例写的比我还好,简直无地自容......

    经常看到无论是刚入职场的新人 还是工作了一段时间的老人 都会对编写测试用例感到困扰 例如 如何编写测试用例 作为一个测试新人 刚开始接触测试 对于怎么写测试用例很是头疼 无法接触需求 只能站在用户角度去做测试 但是这样情况会导致不能全方位测
  • 软件测试/测试用例设计题详细整理— 助攻高薪求职之路

    前言 8月底了 即将步入金九银十 又有很多小伙伴开始霍霍找工作了 笔者最近也会比较偏向发面试题哟 希望可以帮助到大家 最近收到很多应聘者反馈过来的笔试面试问题 其中有一部分是关于测试用例设计 对了对了笔者发现无论是刚入职场的测试新人还是在具
  • 【大学生软件测试基础】白盒测试 - 控制流图 - 01

    任务1 画出程序流程图 任务2 画出控制流图 任务3 根据程序环形复杂度的计算公式 求出程序路径集合中的独立路径数目 任务4 根据环形复杂度的计算结果 源程序的基本路径集合中有多少条独立路径 任务5 设计测试用例 1 程序流程图 2 控制流
  • 「深度好文」如何写一份高质量的测试用例?

    测试一个新功能时 最重要的一个步骤就是编写测试用例 测试用例写好了 那么后面的测试工作基本就非常顺利了 那么怎样提高测试用例的质量呢 充分理解需求 拿到测试需求后 不应该拿到什么就是什么 需求上怎么写就怎么做 要有自己的见解 举个例子来说
  • pytest系列——allure之在测试用例添加标题(@allure.title())

    前言 通过使用 装饰器 allure title可以为测试用例自定义一个更具有阅读性的易读的标题 allure title的三种使用方式 直接使用 allure title为测试用例自定义标题 allure title支持通过占位符的方式传
  • 接口测试的简介及测试用例的设计

    一 什么是接口 接口测试 是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点 测试的重点是要检查数据的交换 传递和控制管理过程 以及系统间的相互逻辑依赖关系等 二 接口的作用 作为一个互联网
  • Pytest自动化测试框架:mark用法---测试用例分组执行

    pytest中的mark mark主要用于在测试用例 测试类中给用例打标记 只能使用已注册的标记名 实现测试分组功能 并能和其它插件配合设置 测试方法 执行顺序等 如下图 现在需要只执行红色部分的测试方法 其它方法不执行 设置步骤如下 1
  • 软件测试/人工智能丨利用ChatGPT自动生成测试用例思维导图

    生成测试用例思维导图通常涉及到图形表示测试场景 测试步骤 预期结果等信息 虽然ChatGPT不是专业的思维导图工具 但您可以通过交互式对话的方式从ChatGPT获取生成思维导图的初始想法 以下是一个简化的示例 演示如何利用ChatGPT生成
  • 软件测试经典面试题分析——软件测试流程

    1 需求分析 跟同事之间探讨客户需求 对需求文档进行 测试 互相交换想法 2 需求评审 如何评审 首先提前一天发邮件给格个参会人员 准备参与XXX项目需求评审 参与人员 产品经理 项目经理 研发负责人 研发小组成员 测试负责人 测试小组成员
  • 38条Web测试经验分享

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测试工程师都是怎么写测试用例的?浅谈测试用例的编写思路和执行

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

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

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

    jmeter 为性能测试提供了一下特色 jmeter 可以对测试静态资源 例如 js html 等 以及动态资源 例如 php jsp ajax 等等 进行性能测试 jmeter 可以挖掘出系统最大能处理的并发用户数 jmeter 提供了一
  • Jmeter扩展函数?年薪50W+的测试大佬教你怎么玩

    我的 jmeter 里面 怎么没有 MD5 函数 base64 函数也没有 我是不是用了假的 jmeter 哈哈哈 不是的 jmeter 的函数 有自带函数和扩展函数两大块 自带函数 就是 jmeter 官方自带的 只要下载 jmeter
  • 测试用例评审流程优化

    测试用例 评审是QA日常工作流程中的关键一环 是QA同学完善测试用例 交流测试经验的好机会 负责组内测试用例建设以来 作者对于评审流程做了一些优化工作 本文作者将整个优化过程中的心得体会做了一个总结 希望能给大家带来帮助 01 原始流程 1

随机推荐

  • 四分位数与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元硬币也退出