黑盒测试中的等价类和边界值

2023-11-07

黑盒测试时基于程序规格说明书,找出程序不符合格则说明书的地方。也就是我们常说的点点点。在进行黑盒测试时,我们可以利用一下几种方法来写出测试用例,尽量用科学的方法来找出更多的缺陷。

  • 等价类划分

等价类划分是一种重要的、常用的黑盒测试方法,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可。它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。

1、等价类的分类

有效等价类:指符合《需求规格说明书》,输入合理的数据集合。

无效等价类:指不符合《需求规格说明书》,输入不合理的数据集合。

2、等价类思考步骤

(1)先确定有效和无效等价类

(2)有效等价类就是题目条件(两端的极值(边界值)要判断、中间随意一个值也要判断)

(3)无效等价类先划分与条件相反的情况,再找到特殊情况(中文、英文、符号、空格、空)

我们来做一下例题:

A、计算 1---100的整数之和(包括1和100)

一般是一个框输入正确的值,一个框输入错误的值,没有两个框都输入错误的值,因为更容易确定到底是哪个框出现错误的值。

B、测试QQ账号,账号的要求是  6---10位正整数。

C、某城市电话号码由三部分组成,分别是

地区码:空白或是3位数字

前缀:非‘0’且非‘1’开头的三位数字

后缀:4位数字

3、等价类分类总结

通过上面的案例,我们可以总结一下,当我们在测试文本框的程序可以考虑如下的情况:

a:文本框要求输入的长度

b:输入的类型

c:组成规则

d:是否为空

e:是否重复---区分大小写,

f:是否去除空格

二、边界值分析

经验证明,考虑了边界调节的测试用例与其他没有考虑边界条件的测试用例相比,具有更高的测试回报率。所谓边界条件,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界一下的状态。边界值分析法也是一种常用的黑盒测试方法。特别要注意的是:大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。

我们还是通过一个例题来看,就不会被绕口的理论吓到了,其实边界值很简单,后面我们还会用做例题来展示边界值到底是个什么玩意。

我们先来看一个例题,解释一下为什么要用边界值。

题目:输入的参数值必须大于0同时小于100的整数。

接下来我们来看程序员写的一段代码:

If Val(Test1.Test) > =0 Or Val(Test1.Test) <= 100 Then

MsgBox("输入的参数值必须大于0同时小于100")

Test1.SetFocus

ElseIf Val(Test2.Test) >= 0 or val (Test2.Test) < =100 then

MsgBox("输入的参数值必须大于0同时小于100")

Test2.SetFocus

Else

Test3.Test = Val(Test1.Test) + Val(Test2.Test)

End If

各位思考一下,这里面有什么问题呢。仔细看题目,你会发现程序员边界条件设置错误:把>写成了>=,把<写成了<=。这条代码告诉了我们有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方,也是测试人员重点测试的内容。

那么我们要怎么去确定这个边界值呢,各位接下来请看:

1、找到测试数据的边界点,也就是有效等价类和无效等价类的边界点,对边界点数据专门进行测试。

2、一般情况下,需要对边界值(0和100)以及边界值两边的数(-1和1以及101和99)分别进行测试。

这里我们还会讲一个概念叫做上点,离点,内点。这几个名词我也用例子展示给大家看,只要数学不是体育老师教的,都是能看懂的

  1. 如果是闭区间,例如[1,10]。那么上点就是1,10。内点就是区间内任意一个数字,例如5。离点则是0,11
  2. 如果是开区间,例如(1,10)。那么上点就是1,10。内点就是区间内任意一个数字,例如5。离点则是(2,9)
  3. 这两个最大的区别就是在于离点的不同,概括起来一句话就是闭两边,开中间。也就是说闭区间的离点是区间外边相邻的两个数字(0,11),开区间的离点就是区间里边相邻的两个数字(2,9)。

接下来就是例题了

  1. 使用边界值的方法设计添加标题的测试用例:标题长度>0  标题长度<=30

  1. 输入一个学生成绩n,判断是否及格(0到100整数)

边界值的方法小结

1如果输入条件规定了值得范围,则应取刚到到这个范围的边界值,以及刚刚超越这个范围边界的值作为输入数据。

两位整数加法器数的范围为-99—99,则应测试-99,-100和99,100

2输入条件规定了值得个数

姓名要求1—20个字符,需要测试0、1、2个字符和19、20、21个字符

某商品信息查询系统,每页最多显示10条商品信息,我们就应该准备商品信息,使能够查询出9、10条、11条、1条、0条商品记录

边界值和等价类区别:边界值分析不是从某等价类中随便挑一个作为代表,而是这个等价类的每个边界都要作为测试条件

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

黑盒测试中的等价类和边界值 的相关文章

  • Nest.js 写一个简单的增删改查

    这篇文章主要记录了一个简单的增删改查应用 涉及到了MongoDB Swagger 以及以express为底层的Nest js框架 简单介绍一下用到的工具 swagger就不用说了 MongoDB同样使用docker容器和mongo expr
  • MySql5.6 Window超详细安装教程

    林炳文Evankaka原创作品 转载请注明出处http blog csdn net evankaka 目录 一 安装包准备二 开始安装三 验证安装四 客户端工具 一 安装包准备 1 下载MySql5 6 http www mysql com
  • 配置完dcom需要重启计算机,DCOM电脑自动重启(win7系统一直反复重启)

    电脑频繁重启会怎么样 电脑给我们带来了便利 但也给我们带来了许多问题 有网友反映电脑不到10分钟就会自动重启 但是不知道是什么原因导致的 很困惑 针对这种情况 边肖给大家带来了电脑自动重启的原因和相应的解决方案 可以参考一下 电脑经常自动重
  • 生成式 AI 行业解决方案指南与部署实践

    生成式 AI 和 Stable diffusion 生成式 AI Generative AI 可以生成自然语言 图像 视频和音乐等数字化内容 目前热点应用总体上可以分为基于 Stable Diffusion 的图片内容生成类任务以及基于大语
  • 《数据库原理及应用》MySQL版知识点总结

    1 数据库系统的基本原理 1 1 数据库系统概述 1 1 1 基本概念 1 1 2 数据管理技术的发展阶段 1 2 数据模型 1 2 1 数据抽象的过程 1 2 2 关系模型 1 3 数据库体系结构 1 3 1 数据库系统的三级结构 1 3
  • C语言 malloc(0)的问题

    转载地址 http blog csdn net bigheaven article details 7286862 感谢作者 如下 cpp view plain copy include
  • quasar使用vxe-table插件

    问题描述 提示 这里描述具体问题 在前端开发时经常会用到表格显示数据 但是在quasar的q table中没有能实现我们目的属性 这时就需要更强大的插件来完成 这个就是vxe table插件 实现更多的表格功能 原因分析 提示 这里填写问题
  • 作者主题模型(Author-Topic Model)的Python Gensim实现

    Gensim中的主题模型包括三种 分别是LDA Latent Dirichlet Allocation 主题模型 加入了作者因素的作者主题模型 Author Topic Model ATM 和加入了时间因素的动态主题模型 Dynamic T
  • html怎么本地存储数据库中,html5本地存储之localstorage 、本地数据库、session

    点评 这篇文章主要介绍了html5本地存储的localstorage 本地数据库 sessionStorage简单使用示例 需要的朋友可以参考下 html5的一个非常cool的功能 就是web storage 类似于之前的cookie 不过
  • algorithm头文件常用函数

    algorithm意为 算法 是C 的标准模版库 STL 中最重要的头文件之一 提供了大量基于迭代器的非成员模板函数 类 别 C 标准库 头文件 include
  • uniapp error页面配置

    uniapp暂不支持自定义webview所以我们用自带的error 首先在根目录新建生成此文件hybrid html error html 在manifest json 源码试图 中配置error 必须在app plus下 这里要注意路径问
  • 伯努利分布方差_【数据挖掘建模】之常见概率分布总结

    1 伯努利分布 伯努利分布又称为0 1分布 如果随机变量X只取0和1两个值 并且相应的概率为 P x 1 p P x 0 1 p 且0 令q 1 p X服从参数为p的伯努利分布 则对应的期望和方差如下 常见的抛硬币实验就是n重伯努利试验 其
  • selenium grid4入门-standalone模式

    参考官网 Getting started with Selenium Grid Selenium selenium grid4有三种模式 Standalone模式 顾名思义 独立的 就是将主控和节点都在同一台机器上 standalone模式
  • tf好朋友之matplotlib的使用——坐标能见度设置

    tf好朋友之matplotlib的使用 坐标能见度设置 坐标能见度设置常用函数 set bbox方法 应用示例 坐标太多挡住其它标记 挡住彼此怎么办 那必然是 给他们一个透明度啊 坐标能见度设置常用函数 set bbox方法 对坐标进行透明
  • 解决Nacos启动时遇到的一些错误

    当我们双击nacos的bin目录下的statup cmd启动Nacos时 发现报以下错误 dba load error load jdbc properties error 报错的原因是 数据库找不到 没有导入 解决方法步骤 在安装的nac
  • qt 内存泄漏处理办法

    windows 版本 windows msvc版本 可以使用vld检测 可以得到内存泄漏点的调用堆栈 如果可以的话 还可以得到其所在文件及行号 可以得到泄露内存的完整数据 可以设置内存泄露报告的级别 缺点 1 只针对 Visual C 即m
  • 【ag-grid-vue】列定义(Updating Column Definitions)

    列定义一节解释了如何配置列 可以在初始设置列之后更改列的配置 本节介绍如何更新列定义 添加和删除列 可以通过更新提供给网格的列定义列表来添加和删除列 当设置新列时 网格将与当前列进行比较 并计算出哪些列是旧的 要删除 哪些列是新的 创建的新
  • Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行

    Python爬虫学习基础 5分钟学会爬取B站视频日播放量排行 基础包含 requests pyquery 进入正题 基础包含 这也是我当初第一次学习爬虫时做的练习 感觉给初学者练笔挺不错的 运用的知识也不是太多 只运用了requests库以
  • 数据结构练习题-1

    1 简述下列概念 数据 数据元素 数据项 数据对象 数据结构 逻辑结构 存储结构 抽象数据类型 答案 数据 是客观事物的符号表示 指所有能输入到计算机中并被计算机程序处理的符号的总称 如数学计算中用到的整数和实数 文本编辑所用到的字符串 多
  • CH4-串、数组和广义表

    文章目录 4 1 串的定义 4 2 案例引入 4 3 串的类型定义 存储结构及运算 4 3 1 顺序串 4 3 2 链串 4 3 3模式匹配算法 BF算法 KMP算法 4 4 数组 4 4 1抽象数据类型定义 4 4 2数组的顺序存储 4

随机推荐

  • 最新区块链开发教程汇总

    区块链的重要性已经毋庸置疑 但对大多数跃跃欲试的开发者而言 去中心化思想 非对称加密 共识算法等技术点的理解和运用 都是入门区块链开发的挑战 合适的区块链开发教程可以极大地缩短区块链开发的学习周期 因此 本文汇总整理了以太坊 比特币 EOS
  • 如何用C语言实现多态?

    多态 Polymorphism 是指面向对象程序运行时 相同的消息可能会送给多个不同的类之对象 系统依据对象所属类 引发对应类的方法 而有不同的行为 简单来说 所谓多态意指相同的消息给予不同的对象会引发不同的动作 在C语言中 可以通过结构体
  • shell脚本awk之变量传递

    一 在shell脚本中awk引用shell变量 1 双引号加单引号的形式 1 awk引用系统变量 bin bash awk BEGIN print HOSTNAME 执行结果 root node1 pangbing test sh test
  • 主板中的Win10/win8.1 WHQL支持是否要开启

    主板中的Win10 win8 1 WHQL支持是否要开启 在新式的电脑主板上会有Windows 10 8 1 WHQL支持开启的选项 这个选项的开启和关闭分别代表什么意义呢 这其实还要从UEFI和Legacy两种不同BIOS的说起 Lega
  • 生命在于折腾——MacOS(Inter)渗透测试环境搭建

    一 前景提要 之前使用的是2022款M2芯片的MacBook Air 13寸 不得不说 是真的续航好 轻薄 刚开始我了解到M芯片的底层是ARM架构 我觉得可以接受 虚拟机用的不多 但在后续的使用过程中 发现卡脖子就是卡脖子 随后换了联想R9
  • Linux内核的全局变量

    全局变量 srctree if KBUILD SRC KBUILD SRC CURDIR objtree CURDIR src srctree obj objtree VPATH srctree if KBUILD EXTMOD KBUIL
  • Blender人物骨骼绑定

    Blender人物骨骼绑定 1 建立骨骼父子关系 某些物体依附到其他物体上并成为它的子物体 可由骨骼按E键直接分裂出子骨骼 2 将骨骼建立和三维模型的父子关系 3 设置反向运动学 正常的正向运动学是FK 也就是父骨骼带动子骨骼 而如果想要实
  • mysql中的group by 和 having使用

    mysql中的group by 和 having 使用 理论 sql中的group by 用法解析 Group By语句从英文的字面意义上理解就是 根据 by 一定的规则进行分组 Group 它的作用是通过一定的规则将一个数据集划分成若干个
  • SDL 使用 framebuffer

    SDL 窗口系统 基于X11或WayLand协议 OpenGL 与硬件无关 通过发命令给GPU完成绘制工作 EGL 与硬件相关 是窗口系统 SDL 和OpenGL媒介 SDL Simple DirectMedia Layer 是一套开放源代
  • SpringBoot统一接口返回

    文章目录 前言 思路 1 定义标识 可以定义一个注解作为标识 2 对Controller或者method打上标识 3 请求时判断是否存在该标识 可以利用拦截器 4 对结果重新写入 前言 前后分离时 我们要定义好统一的接口返回格式 eg co
  • PCL点云处理之泊松曲面重建(一百六十一)

    PCL点云处理之泊松曲面重建 一百六十一 一 算法介绍 二 算法实现 1 代码 2 效果 一 算法介绍 泊松曲面重建基于泊松方程 根据泊松方程使用矩阵迭代求出近似解 采用移动立方体算法提取等值面 对所测数据点集重构出被测物体的模型 泊松方程
  • 【C语言基础】标准库函数strcat的使用

    文章目录 C语言基础 标准库函数strcat的使用 一 功能解释 二 函数原型 三 使用示例 1 使用字符数组作为第一个参数 2 使用指向字符数组的指针作为第一个参数 3 使用字符串常量作为第二个参数 4 使用字符数组作为第二个参数 5 使
  • PyTorch学习笔记(20) ——激活函数

    0 前言 本博客内容翻译自纽约大学数据科学中心在2020发布的 Deep Learning 课程的Activation Functions and Loss Functions部分 废话不多说 下面直接开始吧 1 激活函数 本内容将回顾一些
  • js删除数组中指定元素

    js删除数组中某一项或几项的几种方法 一 删除第一个元素 1 shift 方法用于把数组的第一个元素从其中删除 并返回第一个元素的值 注意 此方法改变数组的长度 提示 移除数组末尾的元素可以使用 pop 方法 let arr 1 2 3 4
  • LEARN C++(Methods)

    Getting the most out of these tutorials As you go through these tutorials we recommend a number of practices to maximize
  • CSS 之实现它们它们和它们

    一 CSS画图形 1 用CSS画三角形 首先 需要把元素的宽度 高度设为0 然后设置边框样式
  • mkdocs 使用说明

    mkdocs 使用说明 安装 pip3 install mkdocs 1 4 2 创建项目 mkdocs new my project cd my project 修改 mkdocs yml site name My Docs site u
  • C#使用Quartz.NET详细讲解

    Quartz NET是一个开源的作业调度框架 是OpenSymphony 的 Quartz API的 NET移植 它用C 写成 可用于winform和asp net应用中 它提供了巨大的灵活性而不牺牲简单性 你能够用它来为执行一个作业而创建
  • PCRE正则表达式

    PCRE正则表达式的定义 用于描述字符排列和匹配模式的一种语法规则 它主要用于字符串的模式分割 匹配 查找及替换操作 PHP中的正则函数 PHP中有两套正则函数 两者功能差不多 分别为 一套是由PCRE Perl Compatible Re
  • 黑盒测试中的等价类和边界值

    黑盒测试时基于程序规格说明书 找出程序不符合格则说明书的地方 也就是我们常说的点点点 在进行黑盒测试时 我们可以利用一下几种方法来写出测试用例 尽量用科学的方法来找出更多的缺陷 等价类划分 等价类划分是一种重要的 常用的黑盒测试方法 不需要