熟练运用这些黑盒测试知识点,月薪翻倍不是难题

news2024/11/15 18:01:10
  •  📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 最困难的时候,也就是我们离成功不远的时候!

在日常工作中,我们经常使用到黑盒测试和白盒测试。今天,我们就将结合实例共同探讨黑盒测试的主要测试方法。话不多说,上干货!
  最常见黑盒测试方法包括:边界值、等价类、错误推测法、场景法、因果图法、判定表组成法、正交实验设计。(注:黑盒测试仅需知道系统的【输入】和【输出】,不需要知道代码是怎么写的。所以代码部分就不赘述了哈)
  一、边界值测试
  经实践总结:大量的软件缺陷发生在输入域和输出域的边界上。所以在设计测试用例的时候,应该重视边界。
 例1:
 



有一个输入条件时,可以这么选取测试用例。(以坐标轴举例。以红点表示测试用例)
例2:
  当有两个输入条件的时候,可以这么选取测试用例。(以红点表示测试用例)


小结:
  边界值测试是一种最基本的黑盒测试方法,它是“等价类划分”这种测试方法的良好补充。但该方法会有较大的冗余和。边界值测试对布尔型无效(因为布尔型不是“true”就是“false”,不存在边界值的概念)。当然,边界值测试并非黑盒测试独有,它也可以应用在白盒测试(比如数组边界的测试、对循环次数边界的测试……)。
  二、等价类划分
  1、划分等价类
  要做到穷尽测试是不可能的,所以在设计测试用例时往往要先划分等价类再选取“人大代表”。划分的子集应该满足如下因素:
  (1)每个子集内部所有的数据都是等价的;
  (2)子集之间互不相交;
  (3)所有子集的并集是整个输入域或输出域;
  PS:
  (1)【有效等价类】是相对于规格说明合理的、正确的、有意义的输入数据构成的集合。
  (2)【无效等价类】是相对于规格说明不合理的、错误的、无意义的输入数据构成的集合。举例说明。
  例1:
  如网站注册用户名的时候,输入框要求“用户名由字母开头,后跟字母或数字的任意组合,且长度<=8”。
 


例2:
  每个学生可选修1-3门课程。
 


2、缺陷相关性假设
  针对缺陷相关性假设,可将等价类测试分为【弱等价类测试】和【强等价类测试】。在现实情况中,由于缺陷的可能情况非常多,一个子集中的数据对某种缺陷是等价的,但对另外一种缺陷可能又是不等价的。
  ①弱一般等价类(WN)测试:考虑单缺陷假设;测试用例使用每个等价类中的一个值。
  ②强一般等价类(SN)测试:考虑多缺陷假设;测试用例集合为等价类笛卡儿积。
  例1:
  弱等价类
  弱等价类是考虑某个单一缺陷情况下的等价情况,子集里所有数据在这种缺陷假设下是等价的,并且划分成的几个等价类能够覆盖整个测试空间的单一缺陷。比如以下一段程序:



我们可以将数据划分为两个等价类,0~10为1个等价类,大于10的数据为1个等价类,在考虑“>”号误写成“<”号这种缺陷的情况下,这两个等价集中的数据都是等价的,比如0~10这个等价类中,使用0或使用10来进行测试都能发现缺陷。这两个等价类中各自抽取一个测试数据进行测试,都能代表其他数据揭示出“>”号误写成“<”号这种缺陷来,因此整个测试空间都被覆盖了。
  例2:
  强等价类是在多个缺陷假设前提下,各个等价类中的可测数据在单个或多个缺陷假设下是等价的,并且划分的各个等价子集中各自取一个测试数据可以覆盖整个测试空间的多个缺陷情况。
  再考虑前面弱等价类中的例子程序,出错的可能性有哪些呢?
  除了大于号会错写成小于号外,实际上还有可能写成大于等于号,10有可能写成1或100等大于10或小于10的数。(PS;为方便描述以错写成1和100为例)
 


①考虑0~10这个集合,在误写成中间一列条件中情况下,里面的数据并不等价,比如误写成x>1的情况下,使用1做测试和使用2做测试揭示缺陷是不同的,使用1做测试发现不了缺陷,但使用2测试就能发现缺陷。
  ②在判断条件误写成x>=10条件下,10和0~9中的任一数据也不等价,并且使用大于10的数据也无法揭示出条件错写成x>=10这个缺陷,因此整个测试空间的多个缺陷无法被已划分的两个等价类来覆盖,10需要单独划分成一个等价类。
  ③这样将数据划分成三个等价类{0~9}、{10}、{大于10的数据},再看看这三个等价类是否可以覆盖表中各种出错情况,显然在x>100和x>=100两种情况下,大于10的数据集合中的数据是不等价的,使用大于100的数据不能揭示出缺陷,但使用大于10小于100的数据却能揭示出缺陷,因此需要对大于10的数据再划分等价类,实际上只要将边界值{11}划一个单独的等价类就可以了。
  ④这样总共得到四个等价类{0~9}、{10}、{11}、{大于11的数据},从这四个等价类中各取一个数据的话就可以将以上列出的所有可能的缺陷情况都揭示出来,但是各个等价类并不是对所有缺陷都等价的,这种划分的等价类由于可以将各种缺陷情况覆盖到,把它叫做强等价类。
  小结:
  等价类测试可以处理布尔型和逻辑型的问题。建议在划分等价类后对每个等价类进行编号,这样可看起来会更清晰。
  三、因果图
  基于因果图的测试方法,要考虑如下问题:
  (1)规格说明书有哪些原因?
  (2)规格说明书有哪些结果?
  (3)规格说明书中各种原因之间的关系怎么样?
  (4)规格说明书中各种结果之间的关系怎么样?
  (5)规格说明书中原因和结果之间的约束条件怎么样?
  (6)如何从规格说明书中的原因和结果设计测试用例?
  因果图 


【a】恒等;若c1为1,则e1也为1。若c1为0,则e1也为0;
  【b】非:若c1是1,则e1是0。若c1为0,则e1是1;
  【c】或:若c1与c2中有一个是1或者两个都为1,则e1是1。若c1和c2都为0,则e1是0;
  【d】与:当且仅当c1和c2都是1,则e1为1,否则e1为0。
 


E约束(异;异或):a,b最多有一个可能为1,不能同时为1。
  I约束(或;包含);a,b,c中至少有一个必须为1,不能同时为0。
  O约束(惟一);a和b必须有一个且仅有一个为1。
  R约束(要求);a是1时,b必须是1,即a为1时,b不能为0。
  M约束;对输出条件的约束,若结果a为1,则结果b必须为0。
  举例:
  某个软件的规格说明书中规定;第一个字符必须是A或B,第二个字符必须是一个数字字符,在此情况下进行文件的修改。但如果第一个字符不正确,则给出信息L;如果第二个字符不正确,则给出信息M。
  可按照如下步骤设计测试用例:


原因:
  C1:第一个字符是A;
  C2:第一个字符是B;
  C3:第二个字符是一个数字字符。
  结果:
  E1:给出信息L;
  E2:修改文件;
  E3:给出信息M;
  转化成决策表
 


小结:
  因果图可以用于描述输入与输出的相互关系。但是其绘制过程比较繁琐。因果图可以转化成决策表。建议直接绘制决策表。
  四、决策表
  举例:
  已知a、b、c三边,判断是否能构成三角形?如果是三角形的话,是什么哪种三角形?
  解答(决策表的建立步骤):
  1、列出所有的条件桩和动作桩;
  2、填入条件项;
  3、填入动作项,制定初始判定表;
  4、简化、合并相似规则或者相同动作。
 


小结:
  决策表测试仅适合对输入域展开分析,不适合对输出域展开测试。
  五、错误推测法
  错误推测法凭借的是测试人员的直觉和经验,推测系统中可能出现的各种缺陷。常常是列举出系统中所有【可能的缺陷和容易发生缺陷】的特殊情况,并根据它们来设计测试用例。
  举例:
  测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:
 


小结:
  优点:充分发挥个人的经验和潜能,命中率高
  缺点:覆盖率难以保证;过多的依赖于个人的经验。
  边界值测试
  软件的工作流程往往对应着现实生活的场景。应该从更高些的视角来把握系统的业务流程,了解功能模块。在熟悉流程的基础上才能讨论局部细节的测试设计。场景法的核心是事件流和场景。
  举例:
  有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
  解答:
  step1:确定基本流和备选流;
  step2:根据基本流和备选流来确定场景;
  step3:设计用例。对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。
  step4:设计用例设计数据,把数据填入上面的用例表中。
  (PS:测试用例只是购物的一部分测试用例,应该还可以继续补充以达到比较好的覆盖。)


行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

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

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

相关文章

layui提示框没有渲染bug解决

bug&#xff1a;使用layui时或许是依赖导入又或是ideal和浏览器缓存问题导致前面明明正常的页面显示&#xff0c;后面出现提示框没有css样式&#xff0c;弹出框没有背景css 效果如下 解决后 解决方法 在你的代码中引入layer.js 我这是jsp页面 <script type"text/jav…

PDF文件如何限制打印?限制打印清晰度?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…

适配器模式-C++实现

适配器是一种结构型设计模式&#xff0c;用于将一个接口转换为另一个客户端所需要的接口。该模式通过创建一个适配器对象&#xff0c;使不兼容的接口可以协同工作。 适配器模式主要分为三个角色&#xff1a;适配器类、目标类、适配者类。 适配器模式分为对象适配器和类适配器…

交叉熵损失函数(Cross-Entropy Loss Function)

交叉熵损失函数&#xff08;Cross-Entropy Loss Function&#xff09; 在处理机器学习或深度学习问题时&#xff0c;损失/成本函数用于在训练期间优化模型。目标几乎总是最小化损失函数。损失越低&#xff0c;模型越好。交叉熵损失是最重要的成本函数。它用于优化分类模型。对…

堆栈_有效括号

题比较特殊&#xff0c;主要在于它的所有要输入&#xff0c;都是左括号开头&#xff0c;没有右括号开头的&#xff0c;比如"] ["&#xff0c;这种是不算为括号的&#xff0c;由于必然是对称的&#xff0c;若能符合&#xff0c;因而直接在遇到右括号时&#xff0c;检查…

【Java 并发编程】进程线程、lock、设计模式、线程池...

博主&#xff1a;_LJaXi Or 東方幻想郷 专栏&#xff1a; Java | 从入门到入坟 Java 并发编程 并发编程多线程的入门类和接口线程组和线程优先级线程的状态及主要转化方法线程间的通信重排序和 happens-beforevolatilesynchronized 与锁CAS 与原子操作AQS计划任务Stream 并行计…

java深浅拷贝

对于Java拷贝的理解 在java语言中&#xff0c;当我们需要拷贝一个对象的时候&#xff0c;常见的会有两种方式的拷贝&#xff1a;深拷贝和浅拷贝。 浅拷贝 只是拷贝了原对象的地址&#xff0c;所以原对象的任何值发生改变的时候&#xff0c;拷贝对象的值也会随之而发生变化。 拿…

广州华锐视点提供AI虚拟主播定制,为品牌注入新活力!

随着科技的飞速发展&#xff0c;人工智能已经逐渐渗透到我们生活的方方面面。在这个信息爆炸的时代&#xff0c;如何让您的品牌在众多竞争对手中脱颖而出&#xff0c;成为行业的佼佼者&#xff1f;答案就是——AI虚拟主播&#xff01; 广州华锐视点提供AI数字人定制服务&#x…

详解云WAF:免费GOODWAF归来

文前聊心 说说这篇文章的目的&#xff1a; 介绍一下自己的开发升级的项目&#xff1a;GOODWAF&#xff0c;看名字也能看的出来这是一款防火墙&#xff0c;但它不同于现在的软件防火墙&#xff0c;它是一款云WAF防火墙。 其实GOODWAF这个IP概念前两年就存在了&#xff0c;但为什…

计算机组成原理-存储系统基本概念

文章目录 现代计算机的结构总览存储器的层次化结构各存储器的速度与价格存储器的分类&#xff08;按层次分类&#xff09;存储器的分类&#xff08;按存储介质分类&#xff09;存储器的分类&#xff08;按存取方式分类&#xff09;存储器的分类&#xff08;按信息的可更改性分类…

Qt串口助手

QT5 串口助手 ​ 由于C课程作业的需要&#xff0c;用QT5写了个简陋的串口助手。只作为一个简单的案例以供参考&#xff0c;默认读者具有C基础和了解简单的Qt操作。 功能展示 【用QT写了个简单的串口助手】 准备工作 Qt自带有<QSerialPort> 库, 可以方便地配置和调用…

neo4j使用之超神之旅

1.查询整个链路中任意一段的关系类型是“department”的链路数据 MATCH path (n)-[r1 *0..7 {relation_type:once2once}]-(m) where id(n)0 and any(x in relationships(path) where type(x)department) return path效果图&#xff1a; 2.查询整个链路中最后一段的关系类型…

代币化:2024年的金融浪潮预示着什么?

自“TradFi”领袖到加密专家&#xff0c;各方预测代币化机会高达数十万亿。虽然已有引人注目的用例&#xff0c;但与未来几年可能在链上转移的大量数字化资产相比&#xff0c;这些仅是冰山一角。 代币化何时会变为洪流&#xff1f;什么阻碍了其发展&#xff1f; 今年10月&…

TA-Lib学习研究笔记——Price Transform (五)

TA-Lib学习研究笔记——Price Transform &#xff08;五&#xff09; 1.AVGPRICE Average Price 函数名&#xff1a;AVGPRICE 名称&#xff1a;平均价格函数 语法&#xff1a; real AVGPRICE(open, high, low, close) df[AVGPRICE] tlb.AVGPRICE(df[open],df[high],df[low…

7-1 哈夫曼树与哈夫曼编码

哈夫曼树与哈夫曼编码 题目描述输入格式输出格式输入样例输出样例 分数 30 作者 伍建全 单位 重庆科技学院 题目描述 哈夫曼树(Huffman Tree)又称最优二叉树&#xff0c;是一种带权路径长度最短的二叉树。所谓树的带权路径长度&#xff0c;就是树中所有的叶结点的权值乘上其到…

应用场景丨社区建筑结构健康监测系统

随着社区的快速发展&#xff0c;社区建筑的结构安全与健康问题日益受到广泛关注。考虑到社区建筑的特点&#xff0c;如人口密集、结构复杂等&#xff0c;建筑结构健康监测系统的应用显得尤为重要。 社区建筑结构健康监测系统的效果 1. 结构安全性提升&#xff1a;通过实时监测…

企业软件的分类有哪些|app小程序定制开发

企业软件的分类有哪些|app小程序定制开发 企业软件是指为了满足企业运营和管理需求而开发的软件系统。根据不同的功能和应用领域&#xff0c;企业软件可以分为以下几个分类&#xff1a; 1. 企业资源计划&#xff08;Enterprise Resource Planning&#xff0c;ERP&#xff09;软…

什么是灯塔工厂?灯塔工厂的作用?

什么是灯塔工厂&#xff1f; "灯塔工厂"概念源于德国的工业4.0战略&#xff0c;又称“工业4.0示范工厂”或“标杆工厂”&#xff0c;代表工业领域顶级的智能制造能力。2018年&#xff0c;由世界经济论坛和麦肯锡共同推出。 灯塔工厂是通过数字化、网络化和智能化手…

国产CPU计算平台选型指南

信创&#xff0c;这两年已经不是什么新鲜词了&#xff0c;随着29号文、79号文的实施落地&#xff0c;信创产品加速从党政走向八大关基行业。 八大行业中&#xff0c;金融、教育、电信、石油等企业步伐更大&#xff0c;很多企业已经从窗口业务、日常办公这类轻量应用场景&#…

网络安全应该怎么学?(0基础小白)

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…