软件测试笔记(三):黑盒测试

news2025/1/22 9:10:37

1 黑盒测试概述

黑盒测试也叫功能测试,通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息。

黑盒测试以用户角度,从输入数据与输出数据的关系触发,试图发现一下几类错误:

  • 功能不正确或遗漏
  • 界面错误
  • 数据库访问错误
  • 性能错误
  • 初始化和终止错误

用例设计方法包括:

  • 等价类划分
  • 边界值分析
  • 决策表
  • 因果图
  • 场景法

等等。

2 等价类划分

2.1 等价类

等价类是指某个输入域的子集,在该子集合中,测试某等价类的代表值就等于这一类其他值的测试,对于揭露程序的错误是等效的。因此,全部输入数据可以合理划分为若干个等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量的代表性的测试数据取得比较好的效果。

等价类划分可以分为:

  • 有效等价类:对于程序的规格说明来说是合理的,有意义的输入数据构成的集合,利用有效等价类可以检验程序是否实现了规格说明中所规定的功能和意义
  • 无效等价类:与有效等价类相反,是指对程序的规格说明无意义,不合理的数据构成的集合

2.2 划分原则

  • 如果规定了输入值的范围,可以定义一个有效等价类和两个无效等价类
  • 如果规定了输入的规则,可以划分出一个有效的等价类(符合规则)和若干无效的等价类(从不同角度违反原则)
  • 如果规定了输入数据的已组织,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类
  • 如果规定了输入数据是整型,可以划分出正整数、零、负整数三个有效等价类
  • 处理表格时,有效类为空表、含一项的表、含多项的表等

3 边界值分析

3.1 边界值分析设计原则

边界值分析作为等价类划分的补充,通过选择等价类的边界值作为测试用例。

基于边界值分析有如下原则:

  • 如果输入条件规定了值的范围,应选择刚到达这个范围的边界的值,以及刚刚超过这个范围边界的值作为测试输入数据
  • 如果输入条件中规定了值的个数,则用最大个数、最小个数、比最小个数少一,比最大个数多一作为测试数据
  • 如果规格说明书给出的输入域或输出域的有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
  • 如果程序中使用了内部数据结构,则应选择内部数据结构的边界上的值作为测试用例

3.2 边界分析的两种方法

一般包括:

  • 一般边界值分析:一般取MinMin+NormalMax-Max
  • 健壮性边界值分析:除了一般边界值分析外,还包括Min-Max+

4 决策表

决策表又叫判定表,是分析多种逻辑条件下执行不同操作的技术。决策表由四个部分组成,包括:

  • 条件桩:列出问题的所有条件,条件的顺序无关紧要
  • 动作桩:列出问题规定可能采取的所有动作,排列顺序没有约束
  • 条件项:列出了针对条件桩的取值在所有可能情况下的真假值
  • 动作项:列出了在条件项的各种取值的有机关联情况下应采取的动作

另一方面,决策表中的规则,指的是任何条件组合的特定取值以及相应要执行的动作,在决策表中贯穿条件项和动作项的列就是规则,决策表中列出多少条件取值,就对应多少规则,条件项就有多少列。

比如下面是一个使用决策表制作的打印机测试用例:

5 因果图

5.1 定义

因果图利用图解法分析输入的各种组合情况,适合于描述多种输入条件的组合,相应产生多个动作的方法,因果图的好处如下:

  • 考虑多个输入之间的相互组合、相互制约的关系
  • 指导测试用例的选择,指出需求规格说明描述中存在的问题
  • 能够帮助测试人员按照一定的步骤,高效率地开发测试用例
  • 因果图法是一种严格地将自然语言规格说明转化为形式语言规格说明的方法,可以指出规格说明存在的不完整性和二义性

5.2 基本图形符号

原因结果图:

 ciei都可以取值0或1,0表示状态不出现,1表示状态出现。

约束图:

6 场景法

同一事件不同的触发顺序和处理结果形成事件流,每个事件流触发时的情景便形成了场景。

场景法一般包含基本流和备选流(也叫备用流),从一个流程开始,通过描述经过的路径来确定过程,经过遍历所有的基本流和备用流来形成整个场景。场景法的基本设计步骤如下:

  • 根据说明,描述程序的基本流以及各项备选流
  • 根据基本流和各项备选流生成不同的场景
  • 对每一个场景生成相应的测试用例
  • 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

图示如下:

 

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

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

相关文章

Java——把数组排成最小的数

题目链接 牛客网在线oj题——把数组排成最小的数 题目描述 输入一个非负整数数组numbers,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 例如输入数组[3,32,321],则打印出这三个数字能…

汇编语言(第3版)- 学习笔记 - 第1章-基础知识

汇编语言(第3版)- 学习笔记 - 第1章-基础知识 1.1 机器语言1.2 汇编语言的产生1.3 汇编语言的组成1.4 存储器1.5 指令和数据1.6 存储单元1.7 CPU对存储器的读写1.8 地址总线1.9 数据总线1.10 控制总线1.11 内存地址空间(概述)1.12 主板1.13 接口卡1.14 各…

NSSCTF-[NSSRound#X Basic]ez_z3 [MoeCTF 2022]Art [HDCTF2023]basketball

目录 NSSCTF-[NSSRound#X Basic]ez_z3 [MoeCTF 2022]Art [HDCTF2023]basketball NSSCTF-[NSSRound#X Basic]ez_z3 题目下载:下载 查壳: 发现有upx壳,但是使用upx -d命令不能脱壳,载入十六进制编辑器查看 把XYU改为UPX&#x…

netty/websocket服务器配置阿里云SSL证书安全访问配置,亲测有效

背景:java 微服务包括https访问和websocket访问,当https接口访问ws请求时报错,因为https能访问wss。 申请阿里云免费证书后,搜索各种教程比如nginx配置方式、netty访问证书等。走了不少弯路,终于走通一种。 关键点:1…

龙蜥开发者说:亲历从基础设施构建到系统质量保障,龙蜥未来可期 | 第 19 期

「龙蜥开发者说」第 19 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者宋彦…

【Python】值得收藏,三元一次方程组的计算,快来看看有什么新奇的~~~

三元一次方程组的计算对于大家来说都不陌生了,但是用编程语言来解决方程组问题想必还是会有些大聪明们有点迷糊的,今天就带大家来看看是怎么利用python实现方程组的解集的; 本文主要分成两部分: 解题验算综述 解题 题目1 代码 …

Security中使用Redis管理会话(模拟cookie实现)

配置redis相关 1. 配置Redis package com.zzhua.blog.config.redis;import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.cor…

【HCIP】IPV6综合实验(ripng,ospfv3,bgp,6to4)

目录 一、IP规划 二、 连通公网部分(IPv4) 三、R1、R2上IPv4+v6配置 四、IPV6部分ip配置 五、IPV6部分OSPF&BGP协议配置 Ⅰ、 ospf Ⅱ、bgp 六、联通网络 需求: 1、AR1处于IPV4,也有IPV6的地址,有两个环回 2、AR45678处…

Golang Gin 请求参数绑定与多数据格式处理

之前学习了使用Gin框架的Engine的默认路由功能解析HTTP请求。现在我们来学习gin框架的参数绑定操作和请求结果返回格式。 处理POST请求时,使用context.PostForm或者context.DefaultPostForm获取客户端表单提交的数据。 像上述这种只有username和password两个字段的表…

CS:APP 第7章链接分步编译(cpp/cc1/as/ld)遇到的问题

环境 WSL Ubuntu 22.04.2 LTS gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 问题 问题一 cc1 命令找不到 cc1 命令在 /usr/lib/gcc/x86_64-linux-gnu/11/cc1 里,注意不同操作系统等可能 cc1 的位置不一样,可以使用 find 或者 locate 命令搜索。 通过下…

聊点技术 | 架构瘦身,让Bonree ONE跑得更轻

4月21日,博睿数据ONE有引力2023春季产品发布会圆满落幕,一体化智能可观测平台Bonree ONE 2023春季正式版正式发布,这一次发布的版本更轻、更强、更智能。 Bonree ONE在上一版基础上削减50%组件数量,下架两大高耗能组件&#xff0c…

97-TCP为什么要有一个“TIME_WAIT“的状态

文章目录 1.TCP为什么要有一个"TIME_WAIT"的状态(1) 可靠的终止 TCP 连接。(2) 保证让迟来的 TCP 报文有足够的时间被识别并被丢弃 ; 2.拓展带外数据 1.TCP为什么要有一个"TIME_WAIT"的状态 "TIME_WAIT"状态存在的原因主要有两点: (1) 可靠的终…

成功经验分享,Nacos注册中心实践,带你玩转Nacos

1、什么是 Nacos ? 官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 集: 注册中心配置中心服务管理 平台 nacos的特性包括: 服务发现和服务健康监测动态配置服务动态…

行人检测(人体检测)4:C++实现人体检测(含源码,可实时人体检测)

行人检测(人体检测)4:C实现人体检测(含源码,可实时人体检测) 目录 行人检测(人体检测)4:C实现人体检测(含源码,可实时人体检测) 1. 前言 2. 行人检测(人体检测)检测模型(YOLOv5) (1&#xf…

谈「效」风生 | 如何找到现有研发体系的「内耗问题」?

#第3期:如何找到现有研发体系的「内耗问题」?# 在上一期《谈到提升效能,我们应该如何下手?》我们聊到开始做研发效能的四个要点:评估现有流程、引入自动化工具、建立度量指标、持续改进。本期就围绕「评估现有研发体系…

二次创业接地气、强内功,三只松鼠从一棵树出发重造“人设”

民以食为天,自古以来,“吃”都是一门浅显与深奥并存的生意。产业链看似简单:种、收、制、卖,却足以令众多企业为之前赴后继十年、百年。 三只松鼠,正在这条变革的道路上砥砺前行。自去年4月开启全面转型以来&#xff…

C++ 赋值运算符重载

赋值运算符重载 运算符重载: C为了增强代码的可读性,可以对 运算符 进行重载,运算符重载 就是具有特殊函数名的函数,这个函数也具有返回值类型,函数名字和参数列表,它的返回值和参数列表的形式和普通函数…

基于SAM的二次开发案例收集分享

一、AnyLabeling[1]——制作人:vietanhdev AnyLabeling LabelImg Labelme Improved UI Autolabeling AnyLabeling软件是一个集成了YOLO、Segment Anything模型(AI支持)的高效数据标注工具,它可以通过点击目标的方式完成目标检…

商业银行财富管理“智能原生”能力呈阶梯化,AI助力商业模式趋向多元化发展

易观:金融业的财富管理从经营角度来看,是“客户与渠道管理场景运营产品研发”三位一体共同构建以客户为中心,数据驱动的业务经营体系。其中,“客户与渠道管理”是将客户利益作为核心目标,通过升级用户体验、客户全生命…

获奖名单公布|香港BlockBooster x Moonbeam黑客松圆满收官

Moonbeam基金会赞助的”Into the Socialverse”主题的BlockBooster黑客松于近日落幕。该活动由BlockBooster、OKX、Gitcoin和OxU香港区块链俱乐部联合主办,共有22个开发团队参赛。经过多位评委的严格筛选,3支优秀团队脱颖而出,获得Moonbeam基…