黑盒测试用例设计方法-边界值分析法
目录
一、边界值定义
二、边界值的考虑
三、边界值的优化
四、边界值的设计用例的步骤
五、案例
六、边界值的类型
一、边界值定义
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
二、边界值的考虑
选取正好等于、刚好小于、刚好大于边界的点作为测试数据,可以划分为上点、离点、内点。
以该需求为例:密码为 6~10 位数字。
上点:边界上两边的点(正好等于);
上点分别是:6 和 10;
离点:离上点左右两边最近的点(刚好小于、刚好大于);
划分完上点后,就可以根据上点划分出离点;在离点里面的为内部离点,在离点外面的为外部离点;
6 的离点是:5、7;
10 的离点是:9、11;
内点:在上点范围内的点(区域范围内的点,一般取中间值)。
在上点 1~8 的范围内任选一个点,如:8;
得出最终边界值为 7 个点:5(外部离点)、6(上点)、7(内部离点)、8(内点)、9(内部离点)、10(上点)、11(外部离点);
有效值为:6、7、8、9、10;
无效值为:5、11;
三、边界值的优化
优化离点。
口诀:开内闭外(开区间选择内部离点,闭区间选择外部离点);
开区间:上点的值不包含在内(值里面不包含“=”号),表达式为(a,b);
闭区间:上点的值包含在内(值里面包含“=”号),表达式为 [a,b];
半开半闭区间:上点一边的值不包含在内,一边的值包含在内(值里面一边包含“=”号,值里面一边不包含“=”号),表达式为(a,b],[a,b)。
如果,需求是 6<x<10(大于 6 小于 10),为开区间,离点为:6、7、9、10;
如果,需求是 6≤x≤10(大于等于 6 小于等于 10),为闭区间,离点为:5、6、10、11;
如果,需求是 6<x≤10(大于 6 小于等于 10),为半开半闭区间,离点为:6、7、10、11;
学习了边界值优化之后,让我们来优化 二、边界值的考虑中 需求 里的离点吧❗❗❗
需求:密码为 6~10 位数字。
6 的离点是:5(外部离点)、7(内部离点);
10 的离点是:9(内部离点)、11(外部离点);
6~10 里面包含了 6 和 10,也就是有 “=”;根据口诀:开内闭外,包含 “=” 为闭区间,选择 6~10 的外部离点,就是 5、11,把内部离点 7、9 优化掉。

优化后的最终边界值为 5 个点:5(外部离点)、6(上点)、8(内点)、10(上点)、11(外部离点);
有效值:6、8、10;
无效值:5、11;
四、边界值的设计用例的步骤
等价类配合边界值使用。
1、划分等价类(确定类型);
2、划分边界值(确定长度);
3、编写测试用例(等价类+边界值);
五、案例
需求1:标题的长度在 1~30 个字符,求出边界值。
①列出上点、离点、内点;

在这里,我没有把上点 “1” 的 外部离点 “0” 列出来,是因为 “0” 就代表没有输入,是空的;这种空值我一般是在划分等价类的时候就会列出来,所以就没有必要在边界值里面写了(依情况而定,如果是要测试成绩的边界值,那 “0” 就必须要有🦸🦸♂️🦹🦹♂️);
②优化离点
1~30 里面包含了 1 和 30,也就是有 “=”;根据口诀:开内闭外,包含 “=” 为闭区间,选择 1~30 的外部离点,就是 31,把 2、29 优化掉。
得出最终边界值为 4 个点:1(上点)、15(内点)、30(上点)、31(外部离点);
有效值为:1、15、30;
无效值为:31;
③编写测试用例

注:为了节省时间,大致写了下,在企业里面写测试用例不单单只有这几要素。
六、边界值的类型
通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、重量、大小、速度、方位、尺寸、空间等。
相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最长、 空/满等情况下。
完。。。
相关文章:
黑盒测试用例设计方法-边界值分析法
目录 一、边界值定义 二、边界值的考虑 三、边界值的优化 四、边界值的设计用例的步骤 五、案例 六、边界值的类型 一、边界值定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下…...
项目风险管理中不可忽视的5个关键点
1、风险意识非常重要 项目经理必须要有风险意识,并不是项目计划做好就万事大吉,而是需要对项目风险进行预判,时刻保持风险意识,及时发现和处理项目风险。 项目风险管理关键:风险意识 2、建立组织风险资产库 寻…...
Linux->进程地址空间
目录 前言: 1. 程序地址空间回顾 2. 进程空间是什么 3. 进程地址空间与内存 4. 进程地址空间和内存的关联 5. 为什么要有进程地址空间 前言: 我们在平时学习的过程当中总是听到栈、堆、代码段等等储存空间,但是这些东西到底是什么&…...
【奶奶看了也不会】AI绘画 Mac安装stable-diffusion-webui绘制AI妹子保姆级教程
1.作品图 2.准备工作 目前网上能搜到的stable-diffusion-webui的安装教程都是Window和Mac M1芯片的,而对于因特尔芯片的文章少之又少,这就导致我们还在用老Intel 芯片的Mac本,看着别人生成美女图片只能眼馋。所以小卷这周末折腾了一天&#…...
基于stm32电梯管理系统设计
基于stm32电梯管理系统设计这里记录一下以前自己做的嵌入式课程设计,报告中的图片和文字太多了,全部一个一个把搬过来太麻烦了,需要完整文本和代码自行q我963160156,也可在微信公众号 *高级嵌入式软件* 里回复 *电梯* 查看完整版文章摘要关键…...
Spring中的FactoryBean 和 BeanFactory、BeanPostProcessor 和BeanFactoryPostProcessor解析
文章目录FactoryBean 和 BeanFactory后置处理器BeanPostProcessor 和 BeanFactoryPostProcessorBeanPostProcessorBeanFactoryPostProcessorFactoryBean 和 BeanFactory BeanFactory接⼝是容器的顶级接⼝,定义了容器的⼀些基础⾏为,负责⽣产和管理Bean的…...
【C++从入门到放弃】类和对象(上)
🧑💻作者: 情话0.0 📝专栏:《C从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 类和对…...
什么牌子的蓝牙耳机便宜好用?四款高品质蓝牙耳机推荐
随着时代的发展,蓝牙耳机的使用频率越来越高,不少人外出时除了带手机外,蓝牙耳机也成为了外出必备的数码产品之一。现在的蓝牙耳机品牌众多,什么牌子的蓝牙耳机便宜好用?下面,我来给大家推荐四款高品质的蓝…...
eddsa 算法
信息安全课程设计:eddsa 算法 一、项目要求 使用 C 语言开发;可以实现公私钥生成、签名、认证;只需要手动输入明文,代码会自动生成公私钥、签名、认证;记录公私钥生成、签名、认证的时间;在 VS 上运行&am…...
Xcode Developer Document 开发者文档
总目录 iOS开发笔记目录 从一无所知到入门 文章目录IntroDeveloper Documentation 打开方式菜单栏点击 | 快捷键方式另一种打开方式Intro 2016年我在学校学Java的时候,要查某个Java类/方法的用法还得自己手动下载一种.chm格式的开发文档文件,…...
IntelliJ插件开发教程之新建项目
JetBrains公司系列产品IDEA、WebStrom、PyCharm、CLion、GoLand等都是基于IntelliJ Platform开发而成,掌握IntelliJ插件开发技能便能拥有提升开发效率的终极武器。本教程Demo源码请微信公众号“开发效率”进行获取。阅读原文如果您是JetBrains产品的用户,…...
解决SpringBoot中@RequestBody不能和Multipart同时传递的问题
问题描述 今天在做文件上传的时候,遇到了这么一个错误日志: Resolved[org.springframework.web.HttpMediaTypeNotSupportedException: Content type ‘multipart/form-data;boundary--------------------------771899451541318130280588;charsetUTF-8’…...
【华为OD机试模拟题】用 C++ 实现 - 统计匹配的二元组个数(2023.Q1)
最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明统计匹配的二元组个数题目输入输出描述示例一输入输出说明示例二输入输出说明备注Code使用说明 参加华为od机试,一定要注意不要完全背诵代码&...
Vuex 面试题总结 的历史汇总!
一.vuex是什么?怎么使用?哪种功能场景使用它? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。简单来说就是:应用…...
Redis缓存更新策略与缓存穿透、雪崩等问题的解决
文章目录一、缓存更新策略1、三种策略2、策略选择3、主动更新的方案二、缓存存在的问题1、缓存穿透2、缓存雪崩3、缓存击穿三、解决缓存问题1、自定义分布式锁2、解决缓存穿透问题3、解决缓存击穿问题一、缓存更新策略 1、三种策略 内存淘汰:redis自带的内存淘汰机…...
OSI和TCP/IP网络模型细讲
文章目录一、OSI七层参考模型二、TCP/IP体系结构三、TCP/IP参考模型四、沙漏计时器形状的TCP/IP协议族五、两种国际标准对比相似之处不同之处一、OSI七层参考模型 OSI参考模型共分为7层,低三层面向通信,可用软硬件实现;高三层面向信息处理&am…...
【正点原子FPGA连载】第十九章FreeRtos Hello World实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十九章FreeRto…...
php mysql高校田径运动会成绩管理系统
第一章 引言 1 1.1 选题背景 1 1.2 编写目的 2 1.3 目标 2 1.4 功能需求 3 第二章 开发工具介绍 4 2.1 PHP 4 2.2 APACHE 5 2.3 MYSQL数据库 5 2.4 运行环境 WINDOWS XP 6 2.5 XAMPP 6 2.6 DREAMWEAVE8 6 2.7 EDITPLUS 7 第三章 需求…...
scrum敏捷项目管理软件三款
Leangoo领歌Leangoo是国产的一个项目管理软件,www.leangoo.com , 专门的Scrum敏捷开发工具,看板的管理方式,高度可视化。它支持敏捷开发全流程。从产品路线图-需求-迭代-缺陷-测试-上线。燃尽图,工作量,迭代…...
【项目设计】高并发内存池(二)[高并发内存池整体框架设计|threadcache]
🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…...
UniApp跨平台开发入门:用现有Vue代码快速生成小程序/App(2023最新版)
UniApp跨平台开发实战:2023年Vue代码高效迁移指南 移动互联网时代,开发者常面临一个核心挑战:如何用最小成本将Web应用扩展到移动端。如果你手头已有成熟的Vue项目,UniApp可能是最经济的跨平台解决方案——它允许你复用80%以上的现…...
视频硬字幕提取终极指南:用本地AI工具10倍提升你的字幕制作效率
视频硬字幕提取终极指南:用本地AI工具10倍提升你的字幕制作效率 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测…...
GSTC甘特图组件:从零构建高效项目管理工具
1. 为什么你需要GSTC甘特图组件? 如果你正在开发一个项目管理工具,或者需要为现有系统添加任务排期功能,甘特图几乎是绕不开的核心组件。传统做法是自己从头开发,但光是处理时间轴渲染、任务拖拽、依赖关系这些基础功能就可能耗费…...
别再死记硬背了!用这5个真实运维脚本,搞定90%的Shell面试题
5个实战Shell脚本:从面试题到真实运维场景的蜕变 在技术面试中,Shell脚本能力往往是区分普通候选人和优秀候选人的关键指标。但死记硬背面试题答案的时代已经过去,现代企业更看重候选人解决实际问题的能力。本文将带你通过5个真实运维场景中的…...
超级电容matlab simulink储能模型仿真,能量管理 蓄电池充放电模型,电池-超级电容混合储能系统能量管理
超级电容matlab simulink储能模型仿真,能量管理 蓄电池充放电模型,电池-超级电容混合储能系统能量管理这是一个关于超级电容-蓄电池混合储能系统(HESS)能量管理策略的完整MATLAB/Simulink仿真方案。 一、系统架构与仿真模型 混合储…...
基于模拟退火算法优化的最小二乘支持向量机(SA-LSSVM)数据分类预测及Matlab代码实现...
基于模拟退火算法优化最小二乘支持向量机(SA-LSSVM)的数据分类预测 SA-LSSVM数据分类 matlab代码,采用交叉验证抑制过拟合问题注:采用交叉验证在一定程度上抑制了过拟合问题。 注:要求 Matlab 2018B 版本及以上最近在搞分类预测的项目&#x…...
HOOI算法里的‘skip’参数到底在干嘛?深入TensorLy源码讲透Tucker分解迭代过程
HOOI算法中的skip参数机制解析:从数学原理到TensorLy实现 当你在实现高阶正交迭代(HOOI)算法进行Tucker分解时,是否曾被multi_mode_dot函数中那个神秘的skip参数困扰过?这个看似简单的参数背后,实际上隐藏着…...
手把手教你用Python处理脑电信号:从MRCP到SMR的实战指南
手把手教你用Python处理脑电信号:从MRCP到SMR的实战指南 脑电信号处理一直是神经科学和脑机接口领域的热门研究方向。对于开发者而言,掌握Python处理脑电信号的技能不仅能提升科研效率,还能为医疗辅助设备开发打下坚实基础。本文将带你从零开…...
微信小程序自动化测试:自定义测试(Minium)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快录制回放支持输入,文本查找,断言等自动化测试基础操作,无需编写代码,用例生成效率高,但是部分操作不支持…...
OCS2与Pinocchio联调避坑指南:如何让机械臂MPC求解速度提升3倍?
OCS2与Pinocchio联调避坑指南:如何让机械臂MPC求解速度提升3倍? 在工业机械臂控制领域,实时模型预测控制(MPC)的求解效率直接决定了系统的响应速度与稳定性。OCS2作为ETH Zurich开发的高性能MPC求解器,结合…...
