当前位置: 首页 > news >正文

软件测试之黑盒测试详解

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

概念与定义

  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. 根据场景条件表设计测试用例

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Github 2024-08-22 Go开源项目日报 Top10
  • 全排列-深度优先搜索
  • Java Web —— 第七天(Mybatis案例 部门管理)
  • 领域驱动模型设计与微服务架构落地(二)
  • LeetCode面试题Day17|LC20 有效的括号、LC150 逆波兰表达式
  • 绘剪批量软件——绘剪批量软件
  • 【MySQL】HEAP 表(MEMORY 表)
  • 8.23CF训练题解
  • 007、架构_配置文件_GTM(gtm.ini)
  • 深度理解指针(3)
  • 51单片机控制可控硅调温程序
  • webpack--webpack的启用
  • static关键字
  • pyannote源码阅读(一)
  • 英国政府停止使用人工智能
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • C++11: atomic 头文件
  • mac修复ab及siege安装
  • Mysql5.6主从复制
  • PHP变量
  • php面试题 汇集2
  • rabbitmq延迟消息示例
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Spring Cloud Feign的两种使用姿势
  • ubuntu 下nginx安装 并支持https协议
  • vue 个人积累(使用工具,组件)
  • 大主子表关联的性能优化方法
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 用jquery写贪吃蛇
  • 带你开发类似Pokemon Go的AR游戏
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​业务双活的数据切换思路设计(下)
  • # Panda3d 碰撞检测系统介绍
  • # 数仓建模:如何构建主题宽表模型?
  • #### go map 底层结构 ####
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (1)STL算法之遍历容器
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (C语言)字符分类函数
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)pulsar安装在独立的docker中,python测试
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)负载均衡,回话保持,cookie
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (自用)网络编程