黑盒测试方法:原理+实战

目录

一、如何设计测试用例

二、黑盒测试常用方法

1、基于需求进行测试用例的设计

2、等价类

 3、边界值

4、判定表分析法(因果分析法)

5、正交表

 6、场景设计法

 三、案例补充

1、使用Fiddler模拟弱网

2、针对一个接口该如何测试 


一、如何设计测试用例

测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、测试步骤、测试数据、测试结果等要素。

设计测试用例的一个万能公式

功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试

二、黑盒测试常用方法

1、基于需求进行测试用例的设计

基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就是要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项,然后根据每一个测试点进行测试用例的设计。

需求文档->梳理需求(掌握需求)->针对文档设计测试用例(基于需求设计测试用例)

在分析测试需求一般可以分为功能测试需求非功能测试需求

功能测试需求通常包括以下几个方面:

  1. 系统各个功能界面的验证
  2. 借助业务把功能串起来进行测试
  3. 功能的一致性、交互性(多功能互操作)的测试
  4. 系统的不同输入,结果输出的业务数据测试
  5. 功能的错误操作,异常操作的测试(属于负面测试)
  6. 功能实现用到的算法验证,有时需要运用代码评审
  7. 用户操作的易用性、用户体验、往往结合功能测试同时验证

非功能测试需求包括:兼容、性能、安全、网络等。

 针对具体的需求,可以根据业务分类,用户角色(餐厅的会员系统)或者用户操作区域等将系统的功能分解成若干个功能模块,然后按照功能模块分别进行测试需求分析。按照功能模块划分,业务模块划分是最常见的做法。

 基于需求设计测试用例的这种方法其实时比较单一的,只使用这种方法进行测试用例的设计难免会有很多的地方考虑不周,所以下面介绍的黑盒测试方法就是在需求的基础上,更精细的进行弥补和设计。

2、等价类

依据需求将输入划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为锁代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

等价类可以分为两种

  • 有效等价类:满足用户需求的输入集合。
  • 无效等价类:不满足用户需求的输入集合。

等价类思想设计测试用例步骤

①、充分理解需求

②、划分有效等价类、划分无效等价类

③、从有效等价类抽取其中一个数据进行设计测试用例;从无效等价类中抽取其中一个进行设计测试用例。

 比如注册页面用户名限定长度6~15位,那么6~15位就是有效等价类,没有在这个范围内的长度都是无效等价类。

 3、边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法时作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

这里我们还需要了解一下边界点的概念:

  1. 上点:边界上的点
  2. 内点:边界内的点
  3. 离点:边界值附近的一个点。如果是一个闭区间,我们需要在区间外找距离上点最近的点;如果是开区间,则在区间内距离上点最近的点。

 边界值设计测试用例方法

①、充分理解需求

②、找边界点

③、针对边界点设计测试用例

4、判定表分析法(因果分析法)

判定表法是因公图法的简化,知识神略了因果图法中的画图过程,是黑盒测试中常用的一个方法,他主要用于测试有多种输入,并且结果会依赖于输入的情况而有所不同的场景。

判定表中存在以下4中关系:

:所有的条件必须满足,如果一个条件不满足,此时结果为假。

:满足其中一个条件结果就为真,如果条件全部为假,结果就为假。

恒等:条件为真、结构一定为真。

:条件为佳,结果才为真。

 判定表分析法设计测试用例的步骤:

  1. 分析所有可能的输入和可能的输出。
  2. 找出输入与输出之间的对应关系。
  3. 设计判定表
  4. 把判定表对应到每一个测试用例

✨ 案例

假设业务单据的处理规则为:"淘宝618活动,订单已提交,订单合计金额大于300元或者有红包,则进行优惠"。

1️⃣第一步确定输入输出

输入:订单已提交,订单金额大于300,有红包。

输出:优惠、不优惠。

2️⃣第二部:输入和输出之间的关系

订单已提交,金额大于300,有红包,优惠。

订单已提交,金额大于300,没有红包,优惠。

订单已提交,金额小于300,有红包,优惠。

订单已提交,金额小于300,没有红包,不优惠。

订单未提交,金额大于300,有红包,不优惠。

订单未提交,金额大于300,没有红包,不优惠。

订单未提交,金额小于300,有红包,不优惠。

订单未提交,金额小于300,没有红包,不优惠。

 3️⃣第三步 

 4️⃣第四点:测试用例要素

5、正交表

使用判定表法存在用例数目比较多的情况,而正交表法的目的就是为例减少用例数目,用尽量少的用例覆盖输入的两两组合;正交排列是一种系统的,有序的排列方式,用于软件测试用例设计中,可以保证测试用例的相互独立,减少重复测试,提高测试效率。

1️⃣什么是正交表

最简单的正交表是L^{4}\left ( 2^{3} \right ),含义是:"L"代表正交表;L上角的数字"4"表示有4横行,简称行,即要做四次试验;括号内的指数"3"表示有3纵列,简称列,即最多允许安排的因素是3个;括号内的数字"2"表示表的主要部分只有2种数字(两种取值),即因素有两种水平1与2.正交表的特点是其安排的试验方法具有均衡搭配特性。

2️⃣两个重要的概念

因素:输入变量

水平:每一个输入变量取值

3️⃣正交表的两条性质

每一列种各个数字出现的次数都一样多

任何两列种的各有序数对出现的次数都一样多

4️⃣如何通过正交表设计测试用例

充分理解需求 ->确定因素,确定水平 ->画正交表 ->补充正交表 ->将正交表转换成测试用例

✨示例

继续以注册的需求为例:

姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册。

①列出因素和水平

因素:姓名、邮箱、密码、确认密码、验证码

水平:填写、不填写

②使用allpairs来画正交表

  • 将因素和水平放到excel表格中

  • 将excel表格内容直接复制到txt文本中

  • CMD进入到allpairs安装路径下面

  • 使用allpairs生成正交表:allpairs 正交表测试.txt > 正交表测试_result.txt

 打开正交表测试_result.txt文件

正交表生成之后,还需要查看以下,生成的是否完整,如果不完整则需要补充以下。

③、将正交表转换为测试用例

正交表的每一行都是一个测试用例

 6、场景设计法

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

充分理解需求 ->确定主事件流 ->确定次事件流 ->每一个事件就是一个测试用例

主要分为基本事件流和多个备用事件流

  • 基本事件流:对于一个场景的最基本的事件流,即软件功能按照正确的事件流,中间无任何差错,从开始一直执行到结束的一条正确流程。
  • 备用事件流:对于一个业务可能发生异常情况的场景进行测试,软件功能在执行过程中,除了基本流之外可能遇到的各种情况,是包含可能存在问题的各个支流。

 三、案例补充

1、使用Fiddler模拟弱网

打开弱网设置

 进行用户设置

打开之后,会出现一个脚本文件,这个时候我们找到 OnBeforeRequest方法,修改其中的代码就可以进行传输速率的设置。在OnBeforeRequest中找到下面的代码,就可以进行设置了。

2、针对一个接口该如何测试 

这个时候我们可以打开电脑浏览器搜索内容在,network中查看数据的传输。

 将拷贝的信息,在postman中进行解析,成功之后点击send,向服务器发送请求,服务器返回数据。

 

 这个时候想要测试接口,我们就可以根据请求方法进行测试,将测试方法修改一下查看返回数据。

 也可以根据请求参数进行测试,将参数修改一下来查看返回的数据。

总结:我们向对一个接口进行测试,可以通过上述的方法,将URL拷贝到postman中,然后针对性的进行测试。

  • 测试HTTP请求方式(get、post、delete)
  • 针对参数进行测试(传递所有参数,传递部分参数、不传递参数,给参数设置null值)。
  • 性能测试。

......

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

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

相关文章

2023Node.js零基础教程(小白友好型),nodejs新手到高手,(二)NodeJS入门——buffer模块、计算机基础、fs模块、path模块

就算步子乱了又如何,接着跳下去就好了。——《闻香识女人》 开始 011_Buffer_介绍与创建 hello,大家好,我们来学习一下buffer。首先来看看 buffer 是一个什么东东。buffer,中文译为缓冲区,是一个类似于数组的对象&am…

视频通话中的Camera操作

视频通话也有打开本地摄像头预览的场景,但打开本地Camera预览逻辑,并非在Dailer APP中实现,具体流程图如下。 Dialer app中只调用 1、setCamera用于打开摄像头 相关动作在Ims apk中实现,open函数最后调用了VTSource.java中的doOp…

“比特币震荡中的秘密信号?技术分析揭示最近走势的关键!“

技术分析 比特币维持在 27,000 美元的支撑位,甚至在此价格水平上形成了新的更高低点。这标志着一个非常有利的发展,表明每小时和每日时间框架上的看涨趋势。 然而,当考虑每周和每月的观点时,我们仍然遇到阻力,这可以…

文本编辑器去除PDF水印

用文本编辑器打开pdf,搜索水印的特殊文字,全部替换。 另外一个水印字母间有空格。 替换完后保存。 重新打开pdf:

基于 ACK Fluid 的混合云优化数据访问(一):场景与架构

作者:车漾(必嘫) 本系列文章将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景。 概述 在 AI 和大数据时代,算力即正义,强大的算力推动了源源不断的创新。然而,企业自建的算力集群存在资源容量和…

浏览器插件开发爬虫记录

常用爬虫有各种各样的反爬限制,而如果是小数据量并且该网站反爬手段非常厉害的前提下,可以考虑使用浏览器插件作为爬虫手段 基本代码来源于这位博主分享的插件代码, 主要在他的基础上加了 请求代理、管理面板、脚本注入拦截到的请求数据和管…

最新AI智能创作系统源码AI绘画系统/支持GPT联网提问/支持Prompt应用

AI绘图专业设计 不得将程序用作任何违法违纪内容,不要让亲人两行泪 界面部分图解构: 前台show: 前端部署: 安装pm2管理器 点击设置 选择v16.19.1版本-切换版本 再新建一个网站 点击设置 添加反向代理-代理名称随便…

【轻松玩转MacOS】安全隐私篇

引言 这一篇将介绍如何保护MacOS的安全,包括如何设置密码,使用防火墙,备份数据等重要环节,避免因不慎操作或恶意攻击带来的安全风险,让你的MacOS之旅更安心、更放心。 一、设置密码:保护你的MacOS的第一道…

windows下在cmd和git bash中执行bash download.sh失败

cmd报错信息: 解决办法: win64-wget-1.21.4 安装软件wget,如下这是64位的包,解压后,下面有个wget.exe,拷贝到C:\Windows\System32、 然后打开cmd,执行wget -V 如上,有版本信息就O…

C语言内存函数

目录 memcpy(Copy block of memory)使用和模拟实现memcpy的模拟实现 memmove(Move block of memory)使用和模拟实现memmove的模拟实现: memset(Fill block of memory)函数的使用扩展 memcmp(Compare two blocks of memory)函数的使用 感谢各位大佬对我的支持,如果我的文章对你有…

教资成绩什么时候出来 2023教资笔试成绩查询时间介绍

上半年教资笔试成绩查询开放时期为2023年4月13日,面试成绩查询开放时间在6月14日。而下半年教资笔试成绩查询开放时间为2023年11月8日,2023下半年教资面试时间是2023年12月9日-10日。 值得一提的是如果考生对成绩有异议的话,还可以在成绩公布…

解决远程视频会议卡顿问题,优化企业网络办公体验

视频会议、在线语音这种交互类的应用都是对网络链路质量有高要求的场景, 而造成视频会议卡顿的原因也是有多方面因素的,比如视频应用服务器或者终端的原因造成,网络当然也是其中很重要的一个因素,比如网络线路质量不稳定&#xff…

PowerShell pnpm : 无法加载文件 C:\Users\lenovo\AppData\Roaming\npm\pnpm.ps1

1、右键点击【开始】,打开Windows PowerShell(管理员) 2、运行命令set-ExecutionPolicy RemoteSigned 3、根据提示,输入A,回车 此时管理员权限已经可以运行pnpm 如果vsCode还报该错误 继续输入 4、右键点击【开始】,打…

d3dcompiler_43.dll是什么文件?缺失d3dcompiler_43.dll文件修复与解决方法

今天我要和大家分享的是关于d3dcompiler_43.dll丢失的解决方法。我相信很多网友在使用电脑时都遇到过这个问题,那么接下来就让我们一起来探讨一下如何解决这个问题吧! 首先,让我们来了解一下d3dcompiler_43.dll文件的总体介绍。d3dcompiler_…

视频怎么压缩?这样做视频变小还清晰

在我们的日常生活和工作中,视频已经成为了不可或缺的一部分。然而,随着视频文件的增大,如何有效地压缩视频以方便存储和传输成了一个重要的问题,如果你还不知道怎么压缩视频大小,不妨试试下面的方法吧~ 方法一&#xf…

集线器、交换机、路由器是如何转发包的

集线器、交换机、路由器是如何转发包的 集线器交换机MAC地址表的维护 路由器路由表中的信息路由器的包接收操作查询路由表确定输出端口找不到匹配路由时选择默认路由包的有效期通过分片功能拆分大网络包路由器发送操作中的一些特点 参考文档 集线器 集线器是一层(物…

数据结构:排序- 插入排序(插入排序and希尔排序) , 选择排序(选择排序and堆排序) , 交换排序(冒泡排序and快速排序) , 归并排序

目录 前言 复杂度总结 预备代码 插入排序 1.直接插入排序: 时间复杂度O(N^2) \空间复杂度O(1) 复杂度(空间/时间): 2.希尔排序: 时间复杂度 O(N^1.3~ N^2) 空间复杂度为O(1) 复杂度(空间/时间&#…

基于蝠鲼觅食优化的BP神经网络(分类应用) - 附代码

基于蝠鲼觅食优化的BP神经网络(分类应用) - 附代码 文章目录 基于蝠鲼觅食优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蝠鲼觅食优化BP神经网络3.1 BP神经网络参数设置3.2 蝠鲼觅食算法应用 4.测试结果…

pytorch实现经典神经网络:VGG16模型之初探

文章链接 https://blog.csdn.net/weixin_44791964/article/details/102585038?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169675238616800211588158%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id16967523861680…

【Overload游戏引擎分析】从视图投影矩阵提取视锥体及overload对视锥体的封装

overoad代码中包含一段有意思的代码,可以从视图投影矩阵逆推出摄像机的视锥体,本文来分析一下原理 一、平面的方程 视锥体是用平面来表示的,所以先看看平面的数学表达。 平面方程可以由其法线N(A, B, C)和一个点Q(x0,…