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

news2024/11/26 11:36:55

目录

一、如何设计测试用例

二、黑盒测试常用方法

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.coloradmin.cn/o/1075751.html

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

相关文章

低成本开发一款苹果ios安卓apk双端的APP应用制作用什么语言研发浅谈一些低代码平台

这不是很懂代码的同学们还是比较多的吧,公司想开发一款app不想成本增加太大,不知道怎么找团队做事情,找什么语言的呢?都是最后能组成一个app但是不知道从哪里下手可以看看兄弟我的这篇文章哈,虽然不是很厉害&#xff0…

区块链技术-比特币数据结构

背景 随着近几年区块链技术的迅速发展,越来越多的行业正在将区块链技术应用到实际中去。例如,金融、物流、交易所等行业都开始尝试使用区块链技术来替代传统技术。伴随着区块链迅速发展的期间,诞生了比特币(BTC)、以太…

深度学习DAY1:神经网络NN;二元分类

深度学习笔记 DAY1 深度学习基本知识 1.神经网络 1.1 单一神经元 所有神经元将房屋大小size作为输入x,计算线性方程,结果取max(0,y),输出预测房价y ReLU函数(线性整流函数)–max(0&#xf…

二叉树的层序遍历 --力扣

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻强烈推荐优质专栏: 🍔🍟🌯C的世界(持续更新中) 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔…

vue3中动态设置ref,如表格中使用级联选择器

需求:vue3中有一个表格,表格里是表单项,用户可以输入或选择,有一项是一个级联选择器,需要使用到ref,然后通过getCheckedNodes()方法获取到这一项选择的数据。 数据源是一个级联选择器,如果这个表…

c++视觉处理-----膨胀腐蚀

c视觉处理膨胀腐蚀 膨胀腐蚀的区别 膨胀(Dilation)和腐蚀(Erosion)是形态学图像处理中的两种基本操作,它们有不同的效果和应用: 膨胀(Dilation): 膨胀操作用于增加物体…

Compose加载本地图片和网络图片

加载本地图片 Image(modifier Modifier.fillMaxWidth().height(200.dp),painter painterResource(id R.drawable.img),contentDescription "描述",//0~1完全透明到完全不透明设置alpha 1f,//图片拉伸或裁剪设置contentScale ContentScale.Crop ) 加载本地图…

AntV G6 dom节点绑定事件问题

问题&#xff1a; graph.on("node:click"&#xff0c; e > {})监听不到dom节点里面对应事件 比如dom节点里面自定义按钮和输入框&#xff0c;需要监听按钮点击和输入框聚焦事件 效果如下&#xff1a; 对应代码&#xff1a; <template><div id"c…

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

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

WiFi标签注册流程

7.5寸桌牌&#xff1a;K: 注册键&#xff0c;R: 复位键 长按K键不动&#xff0c;绿灯长亮&#xff0c;再按一下R键&#xff0c;等待绿灯快闪后就可以松开按键&#xff0c;绿灯变慢闪&#xff0c;设备即可进入配置注册模式。 4.2寸标签&#xff1a;右键: 注册键&#xff0c;背后…

网络安全70部学员第二阶段项目验收顺利结束

网络安全70部的小伙伴 经过近三个月的学习 专业技能都有了质的飞跃 为了检验学员们的学习情况 同时巩固所学知识点&#xff0c;查漏补缺 近日&#xff0c;进行了网络阶段项目验收工作 项目背景&#xff1a;某公司由市场部、客服部、产品部、行政部、财务部、人事部以及总经…

GNOME 45 动态三层缓存补丁更新

导读GNOME 45 "Rīga" 上周已正式发布&#xff0c;此版本虽然有许多针对桌面环境的改进&#xff0c;但上游缺少的一个功能是 Canonical 主导的 Mutter 动态三层缓存。 动态三层缓存用于在需要时提升性能&#xff0c;并且已被证明有助于提高桌面渲染性能&#xff0c;…

10.selenium进阶

上述我们学习了selenium入门的一些操作, 本节知识点学习一些selenium的高级用法 1、嵌套网页 ​ 在前端开发中如果有这么一个需求。一个页面上的内容要被其它页面所共用。也就是说两个或者两个以上的页面需要共同存在与同一个页面。在前端页面开发中可以把写好的代码在每个页面…

HTML基础入门01

目录 1.HTML基础 1.1HTML标签 1.2HTML 文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML 常见标签 2.1注释标签 2.2标题标签: h1-h6 2.3段落标签: p 2.4.换行标签: br 3.综合案例: 展示博客 1.HTML基础 1.1HTML标签 HTML 代码是由 "标签" 构成…

奥威BI系统:做数据可视化大屏,又快又简单

数据可视化大屏的制作难吗&#xff1f;会很花时间精力吗&#xff1f;这就要看用的是什么软件了。如果用的是BI系统&#xff0c;特别是奥威BI系统这类BI商业智能软件&#xff0c;那就是又快又简单。 奥威BI系统介绍&#xff1a; 奥威BI系统是一款高效的数据可视化大屏工具&…

算法-动态规划/中心扩散法-最长回文子串

算法-动态规划/中心扩散法-最长回文子串 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/longest-palindromic-substring 1.2 题目描述 2 动态规划 2.1 思路 dp[i][j] 表示[i,j]之间的字符串是否是回文。 那么&#xff0c;如果chars[i] chars[j]时&#xff0c;就…

ArmSoM-W3之RK3588安装ffmpeg

1. 简介 FFmpeg 是一个完整的、跨平台的音频和视频录制、转换和流媒体解决方案。既是一款音视频编解码工具&#xff0c;同时也是一组音视频编解码开发套件&#xff0c;作为编解码开发套件&#xff0c;它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg 提供了多种媒体格式…

C++11打断线程的几种方式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pthread_cancel1.代码演示2.两个重要方法1.pthread_setcancelstate2.pthread_setcanceltype 3.资源回收 二、Boost1.看代码2.资源泄露2.资源回收 总结 前言…

腾讯云2核4G服务器一年和三年价格性能测评

腾讯云轻量2核4G5M服务器&#xff1a;CPU内存流量带宽系统盘性能测评&#xff1a;轻量应用服务器2核4G5M带宽&#xff0c;免费500GB月流量&#xff0c;60GB系统盘SSD盘&#xff0c;5M带宽下载速度可达640KB/秒&#xff0c;流量超额按照0.8元每GB的价格支付流量费&#xff0c;轻…

dubbo3+zookeeper/nacos+dubbo-admin

工程结构&#xff1a; 版本信息&#xff1a; jdk版本&#xff1a;1.8 springboot-parent版本&#xff1a;2.6.6 springboot版本&#xff1a;2.6.6 dubbo版本&#xff1a;3.0.7 curator版本&#xff1a;4.2.0 dubbo-registry-nacos版本&#xff1a;3.0.7注意事项&#xff1a;正…