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

目录

一、如何设计测试用例

二、黑盒测试常用方法

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.rhkb.cn/news/154393.html

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

相关文章

算法——动态规划

一、 53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 最大子数组和&#xff0c;可以建立一个dp表&#xff0c;来存放当前的位置的累加的最大和 int maxSubArray(vector<int>& nums) {int nnums.size();if(n1)return nums[0];vector<int> dp(n);int…

【办公自动化】在Excel中按条件筛选数据并存入新的表2.0(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

利达卓越:绿色金融助推经济高质量发展

随着环境问题的日益突出和可持续发展的需求增加,绿色金融将成为金融发展的重要方向之一。政府、金融机构、企业和公众都将加大对绿色金融的支持和关注,绿色金融也将更加成熟和规范。利达卓越积极推动绿色金融的快速发展,为实现可持续发展目标提供了重要支持。绿色金融将成为金融…

uni-app生命周期

uni-app的生命周期包括&#xff1a;应用生命周期、页面生命周期、组件生命周期 一、应用生命周期&#xff08;只能在App.vue文件中监听&#xff09; 函数说明onLaunch初始化完成时触发&#xff08;全局只触发一次&#xff09;onShow启动时或从后台进入前台显示onHide从前台进入…

Django实战项目-学习任务系统-用户注册

接着上期代码框架&#xff0c;开发第2个功能&#xff0c;用户注册&#xff0c;在原有用户模型基础上&#xff0c;增加一个学生用户属性表&#xff0c;用来关联学生用户的各种属性值&#xff0c;这个属性表是参考网络小说里系统属性值设计的&#xff0c;方便直观了解用户的能力高…

如何使用摩尔信使MThings连接网络设备

帽子&#xff1a; 摩尔信使MThings支持Modbus-TCP、Modbus-RTU Over TCP、Modbus-TCP Over UDP、Modbus-RTU Over UDP。 TCP链接中&#xff0c;摩尔信使MThings支持灵活的连接方式&#xff0c;主机可作为客户端也可以作为服务端&#xff0c;同时支持模拟从机以客户端方式向远…

新媒体达人投放技巧有哪些,投放总结!

达人投放&#xff0c;一个当今时代品牌传播跳不开的词。关于达人投放的优势与特点&#xff0c;相信所有人都已经不在陌生。但是真的进行达人投放时&#xff0c;又该如何实施&#xff0c;今天来分享下新媒体达人投放技巧有哪些&#xff0c;投放总结&#xff01; 一、品牌不同阶段…

C语言,输出最长连号的个数

数据范围&#xff1a;0 < n <10000. 最长连号&#xff0c;就是一组数字里面出现的连续的数字的最长长度。这里的连号最长是2 3 4 5 6&#xff0c;个数为5。 要实现求连号的个数&#xff0c;就要创建一个变量&#xff0c;用来专门计算连号的个数。在不满足连号时&#xf…

【超分】A Benchmark for Chinese-English Scene Text Image Super-resolution

中英文场景文本图像超分辨率的基准 摘要&#xff1a;场景文本图像超分&#xff08;STISR&#xff0c;Scene Text Image Super-resolution&#xff09;就是将低分辨率图像恢复为具有令人愉快的视觉和可读的文本内容。现有工作都是处理笔画简单的英文字符而不是复杂的中文字符。…

安科瑞ARB5系列弧光保护装置,智能电弧光保护,保障用电安全

安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 什么是弧光 电弧是放电过程中发生的一种现象&#xff0c;当两点之间的电压超过其工频绝缘强度极限时就会发生。当适当的条件出现时&#xff0c;一个携带着电流的等离子产生&#xff0c;直到电源侧的保护设备断开才会消失。空气在通常条件…

slamplay:用C++实现的SLAM工具集

0. 项目简介 slamplay 是一个功能强大的工具集合&#xff0c;可用于开始使用 C 来玩和试验 SLAM。这是一项正在进行的工作。它在单个 cmake 框架中安装并提供一些最重要的功能 后端框架&#xff08;g2o、gtsam、ceres、se-sync 等&#xff09;、 前端工具&#xff08;opencv、…

Python教程——配置环境,再探IDE

文章目录 一、Python安装下载安装验证 二、第一个Python程序常见问题 三、Python解释器四、PyCharm工具安装和配置安装使用PyCharm基本使用 一、Python安装 下载 如果我们想要使用Python语言编写程序&#xff0c;我们必须下载Python安装包并配置Python环境&#xff0c;我们现…

Apache Ranger:(一)安装部署

1.Ranger简介 Apache Ranger提供一个集中式安全管理框架, 并解决授权和审计。它可以对Hadoop生态的组件如HDFS、Yarn、Hive、Hbase等进行细粒度的数据访问控制。通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问权限。 说白了就是管理大多数框架的授权问题。 …

arcgis地形分析全流程

主要内容&#xff1a;DEM的获取与处理、高程分析、坡度分析、坡向分析、地形起伏度分析、地表粗糙度分析、地表曲率分析&#xff1b; 主要工具&#xff1a;镶嵌至新栅格、按掩膜提取、投影栅格、坡度、坡向、焦点统计 一 DEM的获取与处理 1.1 DEM是什么&#xff1f; DEM(D…

ceph版本和Ceph的CSI驱动程序

ceph版本和Ceph的CSI驱动程序 ceph查看ceph版本Ceph的CSI驱动程序 ceph ceph版本和Ceph的CSI驱动程序 查看ceph版本 官网ceph-releases-index Ceph的CSI驱动程序 Ceph的CSI驱动程序 https://github.com/ceph/ceph-csi

F. Vasilije Loves Number Theory

Problem - F - Codeforces 思路&#xff1a;分析一下题意&#xff0c;对于第一种操作来说&#xff0c;每次乘以x&#xff0c;那么nn*x&#xff0c;然后问是否存在一个a使得gcd(n,a)1并且n*a的约数个数等于n&#xff0c;有最大公约数等于1我们能够知道其实这两个数是互质的&…

wireshark抓包分析HTTP协议,HTTP协议执行流程,

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 使用WireShark工具抓取「HTTP协议」的数据包&#…

RedissonClient中Stream流的简单使用

1、pub端 //获取一个流 RStream rStream redissonClient.getStream("testStream"); //创建一个map&#xff0c;添加数据 Map<String, Object> rr new HashMap<>(); rr.put("xx", RandomUtil.randomString(5)); //添加到流 rStream.addAll(r…

Allegro如何查看器件的管脚号?

Allegro在默认情况下,器件是不显示管脚号的。 Allegro默认情况下,器件不显示管脚编号。 在PCB布局时,有时候我们需要看器件的管脚号,然后才能方便布局。那如何查看器件的管脚号呢? 这里介绍两种查看器件的管脚编号的方法。 方法一: (1)选择菜单Display→Color/Visi…

一款好用的PDF文档解密软件

PDF Decrypter pro 纯免费&#xff0c;没有页数限制&#xff0c;没有额外水印&#xff0c;强烈推荐&#xff01;