【软件测试之边界值法】

【软件测试之边界值法】(蓝桥杯学习笔记)

我们先来看一个 Java 小程序,如下图所示。

图片描述

运行这个程序会发生什么事情呢?在这个程序中,目标是为了创建一个有 10 个元素的一维数组,但是,在 Java 语言中,当一个数组被定义时,其第一个元素对应的数组下标是 0 而不是 1。所以,上述数组定义后,数组中成员的下标最大值为 9,程序运行后,会造成数组下标越界的错误产生。

经验表明,在软件开发中大量的错误都发生在输入或输出范围的边界上,而不是发生在输入/输出范围的内部。开发人员最容易在边界上犯错误,所以,针对软件的各种边界情况设计测试用例,可以达到更好的测试效果。这就需要采用边界值分析法来设计测试用例,接下来看看边界值分析法的使用。

一、边界值划分法的概述

边界值分析法(Boundary Value Analysis,BVA)的测试用例来自于等价类的边界,是等价类划分法的补充。根据边界值划分法,等价类分析法中的测试数据不是选取等价类中的典型值或任意值,而是应当选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据。 使用边界值分析法设计测试用例,首先应该确定它的边界。有些边界并不是需求中直接给出的,需要我们分析出来,比如一些常见的边界值:

  • 对于 int 类型的整数而言,-2 的 15 次方 和 2 的 15 次方 -1 是它的边界,也就是 -32768 和 32767 是边界;
  • 对于屏幕的光标焦点来说,屏幕上光标的最左上、最右下的位置是它的边界;
  • 对于报表来说,报表的第一行和最后一行是它的边界;
  • 对于数组来说,数组元素的第一个和最后一个是它的边界;
  • 对于循环条件来说,循环的第 0 次、第 1 次和倒数第 2 次以及最后一次是它的边界。
  • 同等价类划分法一样,边界值分析法也应遵循一定的原则:

二、上点、离点、内点的确定

  • 上点:边界上的点,区间的终点值。
  • 离点:离上点最近的点称为离点。开区间的离点,就是开区间中 上点 内侧紧邻的点。闭区间的离点,就是闭区间中 上点 外侧紧邻的点。
  • 内点:上点之间(域范围内)的任意一点。

结合等价类划分的具体情况,针对边界值中的【离点】,有以下三种情况:

1.闭区间(闭区间边界两个值包括在内,如 [a,b])

  • 离点(外点):紧邻上点范围之外的第一对点,如下图所示:

图片描述

2.开区间(开区间边界的两个值不包括在内,如(a,b))

  • 离点(外点):上点内部范围内紧邻的一对点,如下图所示。 

    图片描述

3.半开半闭区间(闭区间一边的值包括在内,开区间一边的值不包括在内,如(a,b])

  • 离点(外点):开区间一侧是上点内部范围内紧邻的点,闭区间一侧是上点外部范围内紧邻的点,如下图所示:

图片描述

三、边界值划分法应用步骤

第 1 步:根据等价类划分有效及无效等价类,确定上点、离点及内点,每个点统一编号。

第 2 步:设计一个新的测试用例,使其尽可能覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖。

第 3 步:设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类完全覆盖。

四、边界值划分法案例

如有一个用户名输入框,取值范围是:用户名在 6-18 位之间。那么:

  • 上点:区间的端点值,6、18
  • 内点:边界上有效范围内的任意一点,10
  • 离点:离上点最近的点,根据上述情况也分为3种,如下:
  • 图片描述

五、边界值划分法的应用场景

  1. 如果需求规定了取值范围或规定了取值个数时,可利用该范围的边界内及边界附近的数据进行测试。 如:用户名取值为(6-18)位。按上述案例进行取值。
  2. 如果需求固定了取值的个数,取刚刚好小于、刚刚好大于的值进行测试。 如:购买 5 件商品可打 8 折。取值为:4 件商品、5 件商品、6 件商品。
  3. 如果需求规定了一个有序结合的时候,可使用该集合的第一个和最后一个值进行测试。 如:下拉列表中有 4 个城市名称。则取下拉列表中的第 1 个城市和最后一个城市进行测试。
  4. 如果程序中使用一个内部数据结构的话,则应该从该数据结构的边界进行考虑,如 int 类型。

六、边界值划分法总结

1. 边界值的应用场景

程序中输入域语句编写错误,不管是由于需求界定不准确、设计不严密、程序书写手误或者其他原因造成的,都可以依据边界值分析法选出的测试点把它们找出来。边界值分析法多应用于以下几个场景中:

(1)输入(输出)条件规定了取值范围或值的个数;

(2)程序规格说明书中提到的输入或输出是一个有序的集合;

(3)可以通过分析找出程序的边界。

不管是哪种场景,边界值分析法的运用都没有太大差别,首先都是要确定取值范围,然后确定边界,分析预期结果,输出测试用例。

2.等价类和边界值的区别

边界值一般和等价类一起搭配应用。等价类属于确认有效区间,而边界值属于确认边界。边界值数据本质上可以归为有效和无效的范畴,二者常常要一起考虑,边界值分析法属于等价类划分法的补充,但从测试技术角度来讲,需要单独拿出来测试。

边界值分析法和等价类划分法之间最大的区别就是,边界值分析考查正处于等价类划分的边界或在边界附近的状态。

边界值分析通过选择等价类边界作为测试用例,不仅重视输入条件边界,而且也必须考虑输出域边界。比如某程序需要输出一个 0 到 100 的数,那么针对输出域也要取边界进行测试。

3.常见边界值

如果是字符的话,我们常常考虑它的:正常长度、最大长度、最大长度+1、最小长度-1、空值、只有空格、字符前后有空格。

如果是整数的话,我们常常考虑它的:正常长度、最小值、最小值-1、最小值+1、最大值、最大值-1、最大值+1、中间值、字母、特殊字符、非整数、有小数点。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

win7无法升级win11,win7无法升级win11系统版本怎么解决

自动微软推出win11后,有不少小伙伴升级安装了。但是,有一些win7用户却安装win11失败,想知道有什么办法能让win7顺利升级win11。关于win7无法升级win11这个问题,最主要原因可能是你的电脑配置不够,毕竟升级win11的门槛要比升级win10还要高,而且还需要支持UEFI安全启动和TP…

Java项目:基于SSM+vue框架实现的人力资源管理系统设计与实现(源码+数据库+毕业论文+任务书)

一、项目简介 本项目是一套基于SSM框架实现的人力资源管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…

局域网tcp通信实验

两台windows系统计算机简单TCP通信测试_两台计算机tcp通信-CSDN博客 使用这篇文章的小工具。 环境: 我和同学的两台笔记本电脑。 使用我的手机开热点,两台电脑连接热点。 我的: IPv4 地址 . . . . . . . . . . . . : 192.168.92.79 子…

labview技术交流-如何判断一个数是否为质数

问题起源 如何判断一个数是否为质数,其实并不难,只要你知道质数的定义,按照它的定义去编写代码就可以了。但是没有思路的人可能就会一直找不到方向,所以我就简单介绍一下。 还有我想吐槽的点,labview本来就是很小众的语…

【氧化镓】β-Ga2O3肖特基势垒二极管的缺陷识别

本文是一篇关于β-Ga2O3肖特基势垒二极管在电子辐射和退火调节下缺陷识别的研究。文章首先介绍了β-Ga2O3作为一种高性能器件材料的重要性,然后详细描述了实验方法,包括样品制备、电子辐照、热退火处理以及电学特性和深能级瞬态谱(DLTS&#…

英特尔AI训练芯片惊艳亮相:速度与性能双超H200,引领AI新浪潮

英特尔甩出全新AI训练芯片!跑千亿大模型速度超H200,罕见披露AI浮点性能 大规模AI计算已经进入系统竞赛。 英特尔在年度Intel Vision大会上重磅推出新一代AI训练芯片Gaudi 3,正面向英伟达旗舰芯片发起挑战。会上,英特尔CEO基辛格挥…

html页面跳转的方法

1、加在head里面 <head> <meta http-equiv"refresh" content"1;urlhttps://ha.huatu.com/zt/hnsylkseo/?"> </head> 2、加在body里面 在body里用js <script language"javascript" type"text/javascript">…

C++感受4-HelloWorld中文版——认识编码

及时了解“编码”对编写代码的影响&#xff0c;是中国程序员越早知道越好的知识点。 一分钟了解什么叫“编码”和“解码”&#xff1b;通过实际演示&#xff0c;充分理解中文Windows下&#xff0c;C源代码编码需要注意的地方&#xff1b;通过 -finput-charsetutf8 等 g 编译配置…

数据可视化-ECharts Html项目实战(11)

在之前的文章中&#xff0c;我们学习了如何在ECharts中特殊图表的双y图以及自定义形状词云图。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 数据可视化-ECh…

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

基于特征的多模态生物信号信息检索与自相似矩阵:专注于自动分割

论文地址&#xff1a;Biosensors | Free Full-Text | Feature-Based Information Retrieval of Multimodal Biosignals with a Self-Similarity Matrix: Focus on Automatic Segmentation (mdpi.com) 论文源码&#xff1a;无 期刊&#xff1a;biosensors 这篇论文提出了一种基…

全国项目管理标准化技术委员会副秘书长肖杨先生受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 全国项目管理标准化技术委员会副秘书长、微薄之力&#xff08;北京&#xff09;管理咨询有限公司董事长肖杨先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“数字化时代下&#xff0c;由职能型组织向高度适应性组织转…

GCB Meta分析 | 土壤水分-大气反馈主导全球陆地N2O硝化的排放和反硝化的减少

原名&#xff1a;Soil moisture–atmosphere feedback dominates land N2O nitrification emissions and denitrification reduction 译名&#xff1a;土壤水分-大气反馈主导着陆地N2O硝化的排放和反硝化的减少 期刊&#xff1a;Global Change Biology 通讯作者&#xff1a…

OSCP靶场--Dibble

OSCP靶场–Dibble 考点(前端鉴权参数修改node.js代码注入 suid cp提权 ) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.173.110 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-09 06:36 EDT Nmap scan repor…

Golang | Leetcode Golang题解之第21题合并两个有序链表

题目&#xff1a; 题解&#xff1a; func mergeTwoLists(list1, list2 *ListNode) *ListNode {if list1 nil {return list2 // 注&#xff1a;如果都为空则返回空}if list2 nil {return list1}if list1.Val < list2.Val {list1.Next mergeTwoLists(list1.Next, list2)re…

一分钟了解机器人自由度

目录 自由度的定义 自由度的分类 自由度的影响 影响自由度的主要参数 关节类型和数量 机械结构 控制系统 自由度控制的硬件架构原理 传感器 执行器 控制器 通信接口 软件和算法 机器人的自由度是指机器人在空间中可以独立移动的方向和角度的数量&#xff0c;它是衡…

比特币减半后 牛市爆发

作者&#xff1a;Arthur Hayes of Co-Founder of 100x 编译&#xff1a;Qin jin of ccvalue (以下内容仅代表作者个人观点&#xff0c;不应作为投资决策依据&#xff0c;也不应被视为参与投资交易的建议或意见&#xff09;。 Ping PingPing&#xff0c;我的手机发出的声音&…

【Java】Java使用Swing实现一个模拟计算器(有源码)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 今天翻了翻之前写的代码&#xff0c;发现自己之前还写了一个计算器&#xff0c;今天把我之前写的代码分享出来。 我记得那会儿刚学不会写&#xff0c;写的乱七八糟&#xff0c;但拿来当期末作业还是不错的哈哈。 直接上…

坚持十天做完Python入门编程100题第三天加班

坚持十天做完Python入门编程100题第三天加班 第24题 扫描文件列表第25题 如何将字典转换成JSON并写入json文件&#xff1f;第26题 JSON转换成字典 第24题 扫描文件列表 如何扫描当前目录下的文件列表&#xff1f;解析&#xff1a;可以使用python内置的glob模块&#xff0c;用法…

MySQL高级(索引分类-聚集索引-二级索引)

目录 1、主键索引、唯一索引、常规索引、全文索引 2、 聚集索引、二级索引 3、回表查询 4、通过id查询和通过name查询那个执行效率高&#xff1f; 5、 InnoDB主键索引的 B tree 高度为多高呢&#xff1f; 1、主键索引、唯一索引、常规索引、全文索引 在MySQL数据库&#xff0c…