实验03 黑盒测试方法(因果图、决策表)

知识点

决策表法
  • 决策表概念:一种分析多逻辑条件下不同操作的工具。在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。
  • 优点:能够全面列举所有可能情况,避免遗漏。针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。
  • 构成
    • 条件桩:列出所有条件。
    • 动作桩:列出可能的操作。
    • 条件项:条件的具体取值。即对每个条件可以取真值和假值。
    • 动作项:条件组合下应采取的动作。
    • 规则:特定条件组合及其相应操作。在决策表中贯穿条件项和动作项的一列就是一条规则。
决策表法实例
  • 设备维修程序:根据条件组合设计测试用例。
    • 以 “设备维修”为例来说明如何制定决策表。 (1)首先,列出所有的条件桩和动作桩, 本例的条件桩有3个,分别为: 机器功率是否大于100马力? 维修记录是否完整? 运行时间是否超过6年? 本例的动作桩有两个,分别为: 优先维修 正常维修       (2)接着确定条件项,即上述每个条件的值分别取“是(Y)”和“否(N)”。根据条件项的组合确定其对应的活动,如表所示。
    • 序  号

      1

      2

      3

      4

      5

      6

      7

      8

      条件

      功率大于100马力

      Y

      Y

      Y

      Y

      N

      N

      N

      N

      维修记录不全

      Y

      Y

      N

      N

      Y

      Y

      N

      N

      运行时间超过6

      Y

      N

      Y

      N

      Y

      N

      Y

      N

      动作

      优先维修

      正常维修

根据表6-23所示的4种组合可设计出以下4个测试用例: 功率大于100马力(如,200马力),优先维修。 功率不大于100马力(如,99马力),维修记录不全,优先维修。 功率不大于100马力(如,99马力),维修记录全且运行时间超过6年(如,8年),优先维修。 功率不大于100马力(如,99马力),维修记录全且运行时间不超过6年(如,3年),正常维修。 

序  号

1

5

7

8

条件

功率大于100马力

Y

N

N

N

维修记录不全

Y

N

N

运行时间超过6

Y

N

动作

优先维修

正常维修

决策表构建步骤
  • 合并具有相同动作的规则,简化决策表。若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。 合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。
    • 确定规则个数
    • 列出所有的条件桩和动作桩
    • 填入动作项,得到初始决策表
    • 简化决策表,合并相似规则
因果图测试法
  • 原因:程序输入条件的组合。在一个功能或一个界面中,往往会有多个控件,这些控件一般会有一定的制约关系或组合关系,并且功能模块的输出会依赖于输入的条件。 如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
  • 结果:程序的输出或状态改变。
  • 原理:图解法分析输入组合,设计测试用例。是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
  • 4种关系
    • 恒等:相同取值。
    • 非:相反取值。
    • 或:任一为真。
    • 与:全部为真。
因果图约束

在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”或“制约”。

  • E约束:最多一个条件为真(异或)。
  • I约束:至少一个条件为真(或)。
  • O约束:只有一个条件为真(唯一)。
  • R约束:条件之间存在依赖(要求)。
  • M约束:输出条件的强制关系。
因果图测试案例
  • 公交卡纸币充值系统:分析输入条件、输出结果和制约关系,设计测试用例。
    • 有如下公交卡纸币充值系统
    • E约束(异):a和b中最多只有一个为1,即a和b不能同时 为1。(如3个a、b、c则a、b、c最多只有一个1,或全0)。约束可以添加在输入方,也可以添加在输出方。
    • I 约束(或):a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。约束可以添加在输入方,也可以添加在输出方。
    • O约束(唯一):a和b必须有一个且仅有一个为1。
    • R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。约束可以添加在输入方,也可以添加在输出方。
    • M约束(强制):若结果a为0,则结果b强制为1;若a=1,b不确定。且只有输出条件能够有强制约束。
  • 公交一卡通自动充值系统,其需求描述如下
    • 系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元。
    • 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功。
    • 若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元。
    • 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元。
    • 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功。
    • 若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误。
    • 若选择充值按钮后不输入纸币,提示错误。
  • 输入条件(原因)为: ① 投币50元 ② 投币100元 ③ 选择充值50元 ④ 选择充值100元  输出(结果)有: (a)完成充值、退卡 (b)提示充值成功 (c)找零 (d)提示错误
  • 明确所有条件之间的制约关系以及组合关系 条件之间的制约关系以及组合关系如图所示。
  • 画出因果图 为了描述得更清楚,这里把每种情况单独画一个因果图出来。 组合情况有: 条件①和条件③输出a和b的组合 投币50元,充值50元输出完成充值、退卡,提示充值成功
  • 条件①和条件④输出c和d的组合 投币50元,充值100元输出找零、提示错误的结果。
  • 条件②和条件③输出a、b、c的组合 投币100元,充值50元输出找零、完成充值、提示充值成功的结果
  • 条件②和条件④输出a和b的组合 投币100元,充值100元输出完成充值、退卡,提示充值成功的结果
  • 条件①、②、③、④均可以单独出现,其因果图如图所示。
  • (4)根据因果图,写出判定表 根据上面的因果图,写出对应的判定表。
  • (5)根据判定表,写出测试用例 根据上面的判定图,写出对应的测试用例
  • 编号

    用例说明

    预期结果

    1

    投币50  选择充值50

    正确充值50元,提示充值成功后退卡

    2

    投币50  选择充值100

    系统提示错误并退回50

    3

    投币100  选择充值50

    正确充值50元,提示充值成功后退卡,并找回50

    4

    投币100  选择充值100

    正确充值100元,提示充值成功后退卡

    5

    投币50

    系统提示错误并退回50

    6

    投币100

    系统提示错误并退回100

    7

    选择充值50

    系统提示错误

    8

    选择充值100

    系统提示错误

因果图测试流程
  1. 分析确定输入条件和输出结果,绘制因果图。
  2. 将因果图转换为判定表。
  3. 为判定表中的每一列设计测试用例。

一、实验目的:

1.掌握黑盒测试技术的概念

2.掌握运用因果图法、判定表法设计测试用例

二 实验环境

1、Windows操作系统计算机;

三 实验准备

1、理解黑盒测试的定义;

2、理解因果图、决策表原理;

四、实验内容及过程

1、阅读下面需求规格说明,运用相应的黑盒测试技术完成测试用例设计。

(1)某学生成绩管理系统,要求对“平均成绩在90分以上,且没有不及格科目的学生,或班级成绩排名在前5的学生,在程序中将学生的姓名用红色标识”,请建立该场景的判定表。

1)确定规则的个数

  • 规则1: 平均成绩 > 90 且 没有不及格科目。
  • 规则2: 班级排名 <= 5。

2)列出所有条件桩和动作桩

所有条件项和动作项

条件

动作

所有条件项和动作项

条件

班级排名是否 ≤ 5

平均成绩是否 > 90

是否有不及格科目

动作

姓名标红

无动作

3)填入条件项、动作项,得到初始判定表

初始判定表

1

2

3

4

5

6

7

8

条件

班级排名是否 ≤ 5

Y

Y

Y

Y

N

N

N

N

平均成绩是否 > 90

Y

Y

N

N

Y

Y

N

N

是否有不及格科目

Y

N

Y

N

Y

N

Y

N

动作

姓名标红

1

1

1

1

1

无动作

1

1

1

4)简化判定表,合并相似规则

1

5

7

8

条件

班级排名是否 ≤ 5

Y

N

N

N

平均成绩是否 > 90

-

Y

N

N

是否有不及格科目

-

-

Y

N

动作

姓名标红

1

1

无动作

 1

1

(2)有一个自动饮料售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:

若投入2.5元硬币,按下“橙汁”或“啤酒”按钮,相应的饮料就送出。

若投入3元硬币, 同样按下“橙汁”或“啤酒”按钮,则在送出饮料的同时退还5角硬币。"

原因

结果

请绘制出因果图和判定表,并给出相应的测试用例

  • 原因:投入硬币(2.5元,3元),按钮选择(橙汁,啤酒)。
  • 结果:送出饮料,可能伴随退还5角硬币。
投入硬币按钮选择结果
2.5元橙汁送出橙汁
2.5元啤酒送出啤酒
3元橙汁送出橙汁,退还5角
3元啤酒送出啤酒,退还5角
测试用例ID测试描述投入金额选择饮料预期结果预期动作或状态
TC001投入2.5元选择橙汁2.5元橙汁送出橙汁,不退款饮料送出,无找零
TC002投入2.5元选择啤酒2.5元啤酒送出啤酒,不退款饮料送出,无找零
TC003投入3元选择橙汁并期望退款3元橙汁送出橙汁,退还0.5元饮料送出,找零0.5元
TC004投入3元选择啤酒并期望退款3元啤酒送出啤酒,退还0.5元饮料送出,找零0.5元
TC005投入少于2.5元的边界值测试2元任意系统拒绝服务,不送出饮料提示错误信息,无饮料送出
TC006投入超过3元的找零逻辑测试5元任意送出饮料,退还正确的找零金额饮料送出,找零2元
TC007投入非支持金额(如1元)1元任意系统拒绝服务,不送出饮料提示错误信息,无饮料送出

测试用例说明

  • 测试用例ID: 测试用例的唯一标识符。
  • 测试描述: 简要描述测试用例的目的或测试场景。
  • 投入金额: 用户投入的金额。
  • 选择饮料: 用户选择的饮料类型。
  • 预期结果: 根据因果图和判定表,预期的系统响应或结果。
  • 预期动作或状态: 预期的系统动作或状态变化,例如饮料送出、找零、错误提示等。

五、实验总结

1.请列举你所学过的黑盒测试方法有哪些?

  • 等价类划分
  • 边界值分析
  • 组合测试用例设计
  • 正交试验法
  • 场景法
  • 因果图法
  • 判定表法

2.面对不同的测试系统,该如何选择黑盒测试方法?

  • 根据系统的特点和需求选择合适的方法。
  • 对于复杂的业务逻辑,可以使用因果图法或判定表法。
  • 对于简单的输入验证,可以使用等价类划分或边界值分析。
  • 根据测试时间和资源,选择最有效的测试方法组合。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt项目中添加自定义文件夹,进行整理归类

Qt项目中添加文件夹进行归类 1、在windows的工程目录下创建一个文件夹&#xff0c;如widgets 2、将.h 、.cpp、.ui文件拷贝到windows该文件夹widgets 3、在qt工程中&#xff0c;根目录右键&#xff0c;选择添加现有文件&#xff0c;批量选择 .h 、.cpp、.ui文件之后&#xf…

[数字图像处理]基础知识整理(部分,持续更新)

程序中描述一副图像&#xff0c;已知其横向纵向的像素个数即可&#xff08;&#xff09; 灰度直方图能反映一副图像各个灰度级像素占图像的面积比&#xff08;√&#xff09; 从程序编写的角度看&#xff0c;描述一副图像的基本属性通常包括其分辨率&#xff0c;即图像的宽度…

1、项目目录设计

文章目录 前言一、项目目录设计 前言 本项目我们将会完成一个Go项目开发框架&#xff0c;该项目不会包含具体的CRUD业务代码&#xff0c;而是从头搭建一个工作中实用的开发框架。让开发者能够熟悉整个项目的搭建流程&#xff0c;能够独立完成项目从0到1的搭建&#xff0c;而且…

数据结构实操代码题~考研

作者主页: 知孤云出岫 目录 数据结构实操代码题题目一&#xff1a;实现栈&#xff08;Stack&#xff09;题目二&#xff1a;实现队列&#xff08;Queue&#xff09;题目三&#xff1a;实现二叉搜索树&#xff08;BST&#xff09;题目四&#xff1a;实现链表&#xff08;Linked…

LayoutLMv2:视觉丰富文档理解的多模态预训练

文本和布局的预训练由于其有效的模型架构和大规模未标记扫描/数字出生文档的优势&#xff0c;在各种视觉丰富的文档理解任务中被证明是有效的。我们提出了具有新的预训练任务的LayoutLMv2架构&#xff0c;以在单个多模态框架中对文本、布局和图像之间的交互进行建模。具体而言&…

网络编程学习之tcp

按下*&#xff08;星号&#xff09;可以搜索当前光标下的单词。 Tcp编程的过程 打开网络设备 Bind&#xff1a;给服务地址把ip号和端口号连接进去 Tcp是有状态的 Listen是进入监听状态&#xff0c;看有没有客户端来连接服务器 Tcp比udp消耗过多资源 Upd类似于半双工&#…

Qt图形与图片(Qt位置相关函数、Qt基础图形的绘制、双缓冲机制、显示SVG格式图片)

此篇文章介绍几种主要位置函数及其之间的区别&#xff0c;以及各种与位置相关函数的使用场合&#xff1b;然后&#xff0c;通过一个简单绘图工具实例&#xff0c;介绍利用QPainter和QPainterPath两种方法绘制各种基础图形&#xff1b;最后&#xff0c;通过几个实例介绍如何利用…

Golang | Leetcode Golang题解之第230题二叉搜索树中第K小的元素

题目&#xff1a; 题解&#xff1a; type MyBst struct {root *TreeNodenodeNum map[*TreeNode]int // 统计以每个结点为根结点的子树的结点数&#xff0c;并存储在哈希表中 }// 统计以 node 为根结点的子树的结点数 func (t *MyBst) countNodeNum(node *TreeNode) int {if…

达梦数据库dm8安装步骤及迁移

目录 前言: 一、安装部署 1、下载 2、创建用户及安装目录 3、挂载下载的镜像 4、环境配置 5、安装 二、基本使用 1、DM工具使用 2、兼容性配置 2.1 兼容GBK字符集编码 2.2 兼容UTF-8字符集编码 3、创建用户和密码,表空间 4、整理数据库配置 5、启动脚本设置 …

基于YOLOV8的数粒机视觉计数解决方案

一:行业背景调查 随着全球市场商品大规模工业化生产技术的大规模发展,其中对各类产品生产包装以及原材料供给有了更多精准计数的要求,这些要求主要分布在一些产量较大,产品颗粒较小,单个成本较高的商品中,近几年主要从医药包装领域和接插件包装领域开始对产品包装中的计…

ENSP实现防火墙区域策略与用户管理

目录 实验拓扑与要求​编辑 交换机与防火墙接口的配置 交换机&#xff1a; 创建vlan 接口配置 防火墙配置及接口配置 防火墙IP地址配置 云配置​编辑​编辑​编辑 在浏览器上使用https协议登陆防火墙&#xff0c;并操作 访问网址&#xff1a;https://192.168.100.1:844…

弥合人类与人工智能的知识差距:AlphaZero 中的概念发现和迁移(1)

文章目录 一、摘要二、简介三、相关工作3.1 基于概念的解释3.2 强化学习中生成解释3.3 国际象棋与人工智能 四、什么是概念&#xff1f;五、发掘概念5.1 挖掘概念向量5.1.1 静态概念的概念约束5.1.2 动态概念的概念约束 5.2 过滤概念 一、摘要 人工智能&#xff08;AI&#xff…

2023年全国大学生电子信息竞赛E题——自动追踪系统(stm32和openmv+普通舵机)完美解决第四问

当时做的时候&#xff0c;当时看别人开源的23年的题&#xff0c;感觉一头雾水。两个字没思路。确实只有做了才会有思路。我这里清晰的整理出来思路。 1.第一问的复位问题就是写一个函数&#xff0c;如果按键按下&#xff0c;就进入&#xff0c;再按下就退出 当然这个复位是写死…

git提交大文件服务500

错误如图 需保证git服务端能接收大文件 修改项目下.git文件中的config文件&#xff0c;加入 [http] postBuffer 524288000

Mybatis——增删改查

目录 一、准备工作 二、mybatis——新增 三、mybatis——删除 四、mybatis——更新 五、mybatis——查询 六、XML映射文件 一、准备工作 1.准备一个数据库表 2.创建一个新的springboot工程&#xff0c;选择引入对应的起步依赖&#xff08;Mybatis、mybatis等&#xff09…

C:数据结构---算法

1.1排序算法 稳定排序 不稳定排序 ①冒泡排序&#xff08;稳定&#xff09; 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对 ②选择排序 在未排序序列中找到最小&#xff08;大…

一文入门【NestJs】Providers

Nest学习系列 ✈️一文入门【NestJS】 ✈️一文入门【NestJs】Controllers 控制器 &#x1f6a9; 前言 在NestJS的世界里&#xff0c;理解“Providers”是构建健壮、可维护的后端服务的关键。NestJS&#xff0c;作为Node.js的一个现代框架&#xff0c;采用了Angular的一些核…

【Dison夏令营 Day 16】如何使用 Python 中的 PyGame 制作俄罗斯方块游戏

俄罗斯方块(Tetris)是一款经典的益智游戏&#xff0c;游戏的目的是将落下的几何图形片&#xff08;称为 “俄罗斯方块”&#xff09;排列起来&#xff0c;填满水平线&#xff0c;不留空隙。当一条线被完全填满时&#xff0c;它就被清除了&#xff0c;玩家就能获得分数。随着四角…

【企业级监控】源码部署Zabbix与监控主机

Zabbix企业级分布式监控 文章目录 Zabbix企业级分布式监控资源列表基础环境一、LNMP环境搭建&#xff08;在zbx主机上&#xff09;1.1、配置Yum仓库1.1.1、下载阿里云的仓库文件1.2.2、安装PHP7的仓库1.2.3、生成Mariadb10.11的仓库文件1.2.4、快速重建Yum缓存 1.2、安装PHP7.4…

小巧低调的黑盒子,打造个性化音乐体验,欧尼士ONIX Alpha小尾巴上手

欧尼士ONIX的产品很有辨识度&#xff0c;这家来自英国的品牌&#xff0c;有着鲜明的黑金设计色彩&#xff0c;以及低调奢华的质感&#xff0c;当然最重要的是&#xff0c;欧尼士的音质表现非常出色&#xff0c;因此深受音乐爱好者的喜爱。在以手机等设备为载体的流媒体音乐盛行…