软件测试之黑盒测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

概念与定义

  1. 黑盒测试:又称功能测试、数据驱动测试或基于需求规格说明书的测试。通过黑盒测试来检测每个功能是否都能正常使用。黑盒测
    试把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。
  2. 等价类划分法:把所有可能的输入数据,即程序的输入域划分成若干互不相交的子集,称为等价类。所有子集的并集则构成整个输入域。然后从每一个子集中选取少量具有代表性的数据作为测试用例。
  3. 有效等价类:对于程序规格说明而言,由合理的、有意义的输入数据构成的集合。
  4. 无效等价类:对于程序规格说明而言,由不合理的、无意义的输入数据构成的集合。(根据具体问题,无效等价类存在至少一个或多个)
  5. 边界值测试:在输入或输出变量范围的边界值上进行测试的一种黑盒测试方法。
  6. 边界点:可能导致被测系统内部处理机制发生变化的点。
  7. 标准边界值测试:最小值,略高于最小值,正常值,略低于最大值,最大值。产生4n+1个测试用例。
  8. 健壮边界值测试:略小于最小值,最小值,略高于最小值,正常值,略低于最大值,最大值,略大于最大值。产生6n+1个测试用例。
  9. 场景法:基于系统业务,分析触发的事件,判断控制流形成测试场景,围绕着事件流和场景进行的测试。
  10. 场景法以事件流为核心。
  11. 用例场景:从系统的某个初始状态开始,到达某个结束状态为止,所经过的路径。
  12. 基本流:从初始态到终止态过程中最主要的业务流程。基本流只有一个。往往选择高风险事件流作为基本流。
  13. 备选流:以基本流为基础,在基本流所经过的每个判定节点处满足不同的触发条件而导致的其它事件流。
  14. 场景:基本流和备选流的有序集合。一个场景中至少应包含一条基本流或者由一条基本流和零到多条备选流构成。

简答

黑盒测试的优缺点

优点

  • 方法简单有效;
  • 可以整体测试系统的行为;
  • 开发与测试可以并行;
  • 对测试人员技术要求相对较低;
  • 容易实现自动化测试;
  • 依据测试用例有针对性地寻找问题,定位更准确,容易生成测试数据。

缺点

  • 无法测试代码;
  • 如果需求规格说明设计有误,很难发现错误所在;
  • 测试不能充分地进行;
  • 准确性取决于测试用例的设计;
  • 自动化测试的复用性较低。

黑盒测试方法的评价标准

在最短时间内,以最少的人力,有利于发现最多的,以及最严重的缺陷。

  • 精确的:测试针对性强
  • 完备的:测试覆盖全面,无漏洞
  • 无冗余:测试用例所关联的风险有所区别
  • 简单的:测试方法简单易行
  • 易于调试:缺陷定位难度小

对于测试用例设计的要求:

  • 测试用例的覆盖度:高
  • 测试用例的数量:少
  • 测试用例的冗余度:低
  • 测试用例的缺陷定位能力:高
  • 测试方法的复杂度:低

等价类的意义

  • 完备性:整个输入域提供一种形式的完备性
  • 无冗余:若互不相交则可保证一种形式的无冗余性

等价类划分方法

1.当输入是连续数值区间:一个有效等价类和两个无效等价类

image-20231230182016071

2.当输入是一组特定取值:一个有效等价类和一个无效等价类

image-20231230182111661

3.当输入是二值属性,例如布尔值,有两种处理方式:

①一个有效等价类(True),一个无效等价类(False)

②将True和False都视为有效等价类,即两个有效等价类,和一个无效等价类(非布尔值)

4.当输入是一组值(n个值):n个有效等价类,一个无效等价类

image-20231230182440126

5.当输入被规定了若干条必须遵守的规则(例如用户名):一个有效等价类和若干个无效等价类(从不同角度违反规则)

拆分无效等价类的时候,一次只能违反一条规则,即要遵守单缺陷原则

等价类测试用例的覆盖要求

  • 弱覆盖:测试用例应覆盖所有的有效等价类
  • 强覆盖:测试用例应覆盖所有的有效等价类的所有组合

等价类测试的流程

  1. 确定有几个输入条件
  2. 划分每个输入条件的等价类(有效等价类、无效等价类)
  3. 选择合适的覆盖标准(强覆盖、弱覆盖)
  4. 设计测试用例

场景法设计测试用例的步骤

  1. 理解软件的业务需求,确定业务流程
  2. 绘制流程图,从流程图中定义基本流和备选流,然后定义测试场景
  3. 将测试场景的多种输入条件与场景对应起来,形成场景条件表
  4. 根据场景条件表设计测试用例

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

​这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

熵与交叉熵:从不确定性角度理解 KL 散度

从不确定性减少视角理解KL散度 【 Transformer 系列,故事从 d k \sqrt{d_k} dk​ ​说起】 LLM这么火,Transformer厥功甚伟,某天心血来潮~,再去看看! 它长这个样子: 深入浅出 Transformer 看完后&#xff…

【Unity3D】导出Android项目以及Java混淆

Android Studio 下载文件归档 | Android Developers Android--混淆配置(比较详细的混淆规则)_android 混淆规则-CSDN博客 Unity版本:2019.4.0f1 Gradle版本:5.6.4(或5.1.1) Gradle Plugin版本&#xff…

vue3 + ts + element-plus(el-upload + vuedraggable实现上传OSS并排序)

这里创建项目就不多说了 安装element-plus npm install element-plus 安装vuedraggable npm install vuedraggable 安装ali-oss npm install ali-oss 这里是封装一下:在components创建文件夹jc-upload>jc-upload.vue 在封装的过程中遇到了一个问题就是dr…

如何在 Linux系统用中挂载和管理磁盘分区

在 Linux 系统中,挂载和管理磁盘分区是系统管理的基本任务之一。以下是详细步骤,帮助你完成这一过程。 1. 查看现有磁盘和分区 首先,使用以下命令来查看系统中的磁盘和分区: bash 复制 lsblk或者使用: bash 复制…

Opencv图片的旋转和图片的模板匹配

图片的旋转和图片的模板匹配 目录 图片的旋转和图片的模板匹配1 图片的旋转1.1 numpy旋转1.1.1 函数1.1.2 测试 1.2 opencv旋转1.2.1 函数1.2.2 测试 2 图片的模板匹配2.1 函数2.2 实际测试 1 图片的旋转 1.1 numpy旋转 1.1.1 函数 np.rot90(kl,k1),k1逆时针旋转9…

【YOLOv8杂草作物目标检测】

YOLOv8杂草目标检测 算法介绍模型和数据集下载 算法介绍 YOLOv8在禾本科杂草目标检测方面有显著的应用和效果。以下是一些关键信息的总结: 农作物幼苗与杂草检测系统:基于YOLOv8深度学习框架,通过2822张图片训练了一个目标检测模型&#xff…

vue3 react使用高德离线地图,最新解决内网情况首次不能加载离线地图2025年1月10日

下载离线资源 下载地址 https://download.csdn.net/download/u010843503/90234612 2、部署私有化瓦片资源 ngxin中配置如下 server{listen 18082;server_name localhost;location / {root D:/GisMap/_alllayers;#try_files $uri $uri/ /index.html;#index index.html;} }下载…

Hbuilder ios 离线打包sdk版本4.36,HbuilderX 4.36生成打包资源 问题记录

1、打包文档地址https://nativesupport.dcloud.net.cn/AppDocs/usesdk/ios.html#%E9%85%8D%E7%BD%AE%E5%BA%94%E7%94%A8%E7%89%88%E6%9C%AC%E5%8F%B7 2、配置应用图标 如果没有appicon文件,此时找到 Assets.xcassets 或者 Images.xcassets(看你sdk引入的启动文件中…

Unity中 Xlua使用整理(二)

1.Xlua的配置应用 xLua所有的配置都支持三种方式:打标签;静态列表;动态列表。配置要求: 列表方式均必须是static的字段/属性 列表方式均必须放到一个static类 建议不用标签方式 建议列表方式配置放Editor目录(如果是H…

【计算机网络】课程 实验二 交换机基本配置和VLAN 间路由实现

实验二 交换机基本配置和VLAN 间路由实现 一、实验目的 1.了解交换机的管理方式。 2.掌握通过Console接口对交换机进行配置的方法。 3.掌握交换机命令行各种模式的区别,能够使用各种帮助信息以及命令进行基本的配置。 4&…

【数据结构:前缀树Trie】

目录 前言前缀树介绍和应用一、前缀树的定义前缀树的问题和思考前缀树的映射思想前缀树三大性质 二.前缀树节点结构三. 前缀树接口介绍和实现四个接口API1. insert(String word)2. search(String word)3. startsWith(String pre)4. delete(String word) API实现1. 查询操作sear…

Jenkins触发器--在其他项目执行后构建

前言: jenkins中有多种触发器可用,可以方便的控制构建的启动 这里简单介绍下项目后构建的配置方法 1. 解释: Build after other projects are built Set up a trigger so that when some other projects finish building, a new build is…

Linux(18)——提高命令行运行效率

目录 一、创建和执行 shell 脚本: 1、命令解释器: 2、执行 Bash Shell 脚本: 3、从 shell 脚本提供输出: 二、对特殊字符加引号: 1、反斜杠 (\): 2、单引号 ( &…

软件系统安全逆向分析-混淆对抗

1. 概述 在一般的软件中,我们逆向分析时候通常都不能直接看到软件的明文源代码,或多或少存在着混淆对抗的操作。下面,我会实践操作一个例子从无从下手到攻破目标。 花指令对抗虚函数表RC4 2. 实战-donntyousee 题目载体为具有漏洞的小型软…

计算机网络 (33)传输控制协议TCP概述

一、定义与基本概念 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它工作在OSI模型的第四层,即传输层,为用户提供可靠的、有序的和无差错的数据传输服务。TCP协议与UDP协议是传输层的两大主要协议,但两者在设计上有明显的不同&…

【从0带做】基于Springboot3+Vue3的高校食堂点餐系统

大家好,我是武哥,最近给大家手撸了一个基于SpringBoot3Vue3的高校食堂点餐系统,可用于毕业设计、课程设计、练手学习,系统全部原创,如有遇到网上抄袭站长的,欢迎联系博主~ 详细介绍 https://www.javaxm.c…

一文说清dockerfile编写

docker用的时间比较久了,关于怎样把jar打成镜像,怎样基于已有mysql镜像添加额外初始化后封装成新的镜像,进行简单的说明。 1.jar封装镜像 from centos # 设置本地为中文,解决中文乱码问题 RUN localedef -i zh_CN -f UTF-8 zh_CN…

基于Python实现的通用小规模搜索引擎

基于Python实现的通用小规模搜索引擎 1.项目简介 1.1背景 《信息内容安全》网络信息内容获取技术课程项目设计 一个至少能支持10个以上网站的爬虫程序,且支持增量式数据采集;并至少采集10000个实际网页;针对采集回来的网页内容, 能够实现网页文本的分…

ssm旅游攻略网站设计+jsp

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 需要源码或者定制看文章最下面或看我的主页 目 录 目 录 III 1 绪论 1 1.1 研究背景 1 1.2 目的和意义 1 1.3 论文结构安排 2 2 相关技术 3 2.1 SSM框架介绍 3 2.2 B/S结构介绍 3 …

算法提高 图形输出

时间限制:C/C 1000MS,其他语言 2000MS 内存限制:C/C 512MB,其他语言 1024MB 难度:困难 分数:100 OI排行榜得分:14(0.1*分数2*难度) 描述 编写一程序,在屏幕上输出如下内容&#xff1…