黑盒测试方法论—边界值

边界值分析法是一种很实用的黑盒测试用例方法,它具有很强的发现故障的能力。边界值分析法也是作为对等价类划分法的补充,测试用例来自等价类的边界。

这个方法其实是在测试实践当中发现,Bug 往往出现在定义域或值域的边界上,而不是在其内部。为检测边界附近的处理专门设计测试用例,通常都会取得很好的测试效果。

在用边界值分析法的时候,一般规定了取值范围以及值的个数的场景。

在分析等价类案例,划分等价类的时候,一般都是会有比较特殊的点,叫做极点或者上点。比如 [1,100] 中的上点就是 1 和 100,这两个数值就被称为边界值,也可以叫极值。设计测试用例的时候,可以在等价类的基础上,去重点验证它的边界点的情况。

边界值举例

比如需求中的要求是输入的参数值必须大于等于 0 同时小于 100 的整数。

正确代码可以这样设置判断条件:

# 正确条件

1 num > -1 and num < 100

# 正确条件

2 num >= 0 and num <= 99

但是在实际的代码编写过程中,很有可能因为各种原因,导致判断条件设置错误:

# 错误条件

1 num >= -1 and num <= 101

# 错误条件

2 num > 0 and num < 101

# 错误条件

3 num >= 1 and num <= 100 

第一种错误情况是因为多包含了 -1 和 101,第二种错误情况是或者漏掉了 0,而第三种错误情况是漏掉了 0 并且多包含了 100。

因为会有各种错误情况的出现,所以需要选择边界值进行重点测试来避免这些情况。

边界值确定

使用边界值分析法设计用例需要考虑 3 个点的选择。

  • 上点:边界上的点
  • 离点:离上点最近的点。如果输入域是封闭的,则离点在域范围外;如果输入域是开区间,则离点在域的范围内。
  • 内点:在输入域内任意一个点

要选取正好等于、刚好大于或刚好小于边界值作为测试数据,一般来说要把上点、离点和内点都取到。所以选取正好等于、刚好大于或刚好小于边界值作为测试数据。

综上,题目中要选择的点有六个:正好等于边界值的 0、100,刚好小于边界值的 -1、99,刚好大于边界值的 1、101。

边界点划分规则

  1. 如果规定了输入域的取值范围,则选取刚好在范围边界的点,以及刚好超过边界的点,作为测试的输入数据。
  2. 如果规定了输入值的个数,则用最大个数,最小个数,比最小个数少 1,比最大个数多 1 的数作为测试数据。
  3. 如果规定了输入是一个有序的集合,则选取集合的第一个元素和最后一个元素作为测试数据。

实例

问题:计算 1—100 的整数之和(包括 1 和 100)

上面已经用等价类的方法设计出来的测试用例,现在要使用边界值分析法补充用例。

首先分析边界值:1,100(有效等价类),其次是边界值两边的值:0,2,99,101(0 和 101 是无效等价类,2 和 99 是有效等价类)。

把有效等价类中的数值换为边界值,这里有 4 个有效等价类的值要取,分别是 1,2,99,100,那么这四个值两个输入框都需要取到。无效等价类中也要覆盖到 0 和 101 这两个值,同样的两个输入框都需要覆盖。

边界值总结

用边界值法补充测试用例时,要注意确定边界情况(输入或输出等价类的边界),选取正好等于、刚刚好大于或刚刚好小于边界值作为测试数据以及确定各个值的等价类,明确边界值和等价类区别,即边界值分析不是从某等价类中随便挑一个作为代表,而是这个等价类的每个边界都要作为测试条件。

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

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

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

相关文章

结构体(个人学习笔记黑马学习)

1、结构体的定义和使用 #include <iostream> using namespace std; #include <string>struct Student {string name;int age;int score; }s3;int main() {//1、struct Student s1;s1.name "张三";s1.age 18;s1.score 100;cout << "姓名&a…

css 选择器

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>/* ~ 表示的h…

FPGA输出lvds信号点亮液晶屏

1 概述 该方案用于生成RGB信号&#xff0c;通过lvds接口驱动逻辑输出&#xff0c;点亮并驱动BP101WX-206液晶屏幕。 参考&#xff1a;下面为参考文章&#xff0c;内容非常详细。Xilinx LVDS Output——原语调用_vivado原语_ShareWow丶的博客http://t.csdn.cn/Zy37p 2 功能描述 …

如何在你的Android工程中启用K2编译器?

如何在你的Android工程中启用K2编译器&#xff1f; K2编译器是用于Kotlin代码编译的最新、高效编译器&#xff0c;你现在可以尝试使用了。 Kotlin编译器正在为Kotlin 2.0进行重写&#xff0c;新的编译器实现&#xff08;代号K2&#xff09;带来了显著的构建速度改进&#xff…

10 mysql tiny/small/medium/big int 的数据存储

前言 这里主要是 由于之前的一个 datetime 存储的时间 导致的问题的衍生出来的探究 探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储 本文主要 的相关内容是 int 类类型的相关数据的存储 …

Vue3 学习 组合式API setup语法糖 响应式 指令 DIFF(一)

文章目录 前言一、Composition Api二、setup语法糖三、响应式refreactive 四、其他一些关键点v-prev-oncev-memov-cloak 五、虚拟Dom五、diff算法 前言 本文用于记录学习Vue3的过程 一、Composition Api 我觉得首先VUE3最大的改变就是对于代码书写的改变&#xff0c;从原来选择…

购物商场项目实践

1.项目开始 1&#xff09;此项目为在线电商项目 2&#xff09;包含首页&#xff0c;搜索列表&#xff0c;商品详情&#xff0c;购物车&#xff0c;订单&#xff0c;支付&#xff0c;用户登录/注册等多个子模块 3&#xff09;使用Vue全家桶ES6webpackAxios等前端技术 4&…

MySQL主从复制与读写分离 及其实例

目录 主从复制与读写分离 1、MySQL主从复制原理 1.1、MySQL的复制类型 1.2、MySQL主从复制的工作过程 1.3、mysq支持的复制类型 1.4、 数据流向 1.5、主从复制的工作过程 2、读写分离 2.1、什么是读写分离&#xff1f; 2.2、为什么要读写分离呢&#xff1f; 2.3、什么…

如何快速搭建母婴行业的微信小程序?

如果你想为你的母婴行业打造一个独特的小程序&#xff0c;但没有任何编程经验&#xff0c;别担心&#xff01;现在有许多小程序制作平台提供了简单易用的工具&#xff0c;让你可以轻松地建立自己的小程序。接下来&#xff0c;我将为你详细介绍搭建母婴行业小程序的步骤。 首先&…

MySQL——MySQL的基础操作部分

使用命令行登录 mysql -u root -p 直接敲击回车后输入密码即可&#xff1a; 当看到出现“mysql>“的符号之后&#xff0c;就表示已经进入到了&#xff2d;&#xff59;&#xff33;&#xff31;&#xff2c;系统中&#xff0c;就可以输入&#xff2d;&#xff59;&#xf…

Android学习之路(13) Handler详解

1. 简介 Handler是一套 Android 消息传递机制,主要用于线程间通信。 用最简单的话描述&#xff1a; handler其实就是主线程在起了一个子线程&#xff0c;子线程运行并生成Message&#xff0c;Looper获取message并传递给Handler&#xff0c;Handler逐个获取子线程中的Message.…

【python爬虫】15.Scrapy框架实战(热门职位爬取)

文章目录 前言明确目标分析过程企业排行榜的公司信息公司详情页面的招聘信息 代码实现创建项目定义item 创建和编写爬虫文件存储文件修改设置 代码实操总结 前言 上一关&#xff0c;我们学习了Scrapy框架&#xff0c;知道了Scrapy爬虫公司的结构和工作原理。 在Scrapy爬虫公司…

漏洞发现-web应用发现探针类型利用(43)

关于在真实环境下面&#xff0c;这个漏洞该如何发现 这里老师把它分成了三块第一类是 #已知cms 如常见的dedecms&#xff0c;discuz&#xff0c;wordpress等源码结构&#xff0c;这些都是网上比较知名的php源码的cms的名称&#xff0c;这是我们在国内常见的几个程序&#xf…

Java中的网络编程------基于Socket的TCP编程和基于UDP的网络编程,netstat指令

Socket 在Java中&#xff0c;Socket是一种用于网络通信的编程接口&#xff0c;它允许不同计算机之间的程序进行数据交换和通信。Socket使得网络应用程序能够通过TCP或UDP协议在不同主机之间建立连接、发送数据和接收数据。以下是Socket的基本介绍&#xff1a; Socket类型&…

后端笔试题(2)分频器波形图

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口

冠达管理:“旺季”来临,煤炭板块走高,云煤能源、陕西黑猫涨停

煤炭板块1日盘中发力走高&#xff0c;截至发稿&#xff0c;云煤动力、陕西黑猫涨停&#xff0c;兖矿动力涨超7%&#xff0c;晋控煤业、华阳股份涨超6%&#xff0c;山西焦煤、平煤股份涨超5%。 组织表明&#xff0c;动力大通胀背景下&#xff0c;未来3-5年煤炭供需偏紧的格局仍…

【Spring】SpringBoot的10个参数验证技巧

这里写目录标题 前言1.使用验证注解2 使用自定义验证注解3 在服务器端验证4 提供有意义的错误信息5 将 i18n 用于错误消息messages.properties6 使用分组验证7 对复杂逻辑使用跨域验证8 对验证错误使用异常处理9 测试你的验证逻辑10 考虑客户端验证总结 前言 参数验证很重要&am…

mysql-1:认识mysql

文章目录 数据库概述什么是数据库什么是关系型数据库 MySQL的概述MySQL是什么MySQL发展历程 SQL的概述什么是SQLSQL发展的简要历史&#xff1a;SQL语言分类 数据库概述 什么是数据库 数据库就是[存储数据的仓库]&#xff0c;其本质是一个[文件系统]&#xff0c;数据按照特定的…

简述电子企业MES管理系统解决方案的实施策略

引言&#xff1a;在电子制造企业中&#xff0c;随着产品种类的增多和订单数量的增长&#xff0c;传统的手工管理方式已经无法满足企业的生产需求。为了提高生产效率&#xff0c;降低成本&#xff0c;提高订单的履行速度和准确性&#xff0c;电子企业需要实施MES管理系统。本文将…

VGA OUT 的PCB设计注意事项

VGA(Video Graphics Array)即视频图形阵列&#xff0c;具有分辨率高、显示速率快、颜色丰富等优点。VGA接口不但是CRT显示设备的标准接口&#xff0c;同样也是LcD液晶显示设备的标准接口&#xff0c;具有广泛的应用范围。 VGA OUT PCB设计注意事项&#xff1a; 1、整体布局时&…