测试用例入门(三)-使用边界值分析法编写测试用例
在《软件测试》一书中是这样描述边界值分析法的作用:如果在悬崖峭壁边可以自信、安全的行走而不掉下去,平地就不在话下了。
本篇文章中的演示代码均由Python编写
目录
- 一、边界值分析法概述
- 二、边界条件的判断
- 三、边界两侧的判断
- 四、次边界条件
- 五、特殊边界条件:默认值、空值
- 六、等价类划分法与边界值法
- 七、最后
- 附录:【测试用例入门系列目录】
一、边界值分析法概述
- 软件在边界上很容易产生问题,软件是很极端的,要么对,要么不对。
对于软件来说,如果能在边界运行,那么正常情况下就应该不会有什么问题。 - 边界值法也是用例常用的方法之一,它的运用步骤很简单:
1.找到一个边界
2.测试边界
3.测试边界两边
二、边界条件的判断
在边界值方法的运用中,首先、也是最关键的就是找到那个边界。
- 如果在读需求的时候,发现如下关键字——“首次”,“第{数字}天”、“第{数字}页”等等,这种明显的有一个数量、一个边界的描述,就应该敏感的感觉到“这是需要用到边界值法”。
示例
比如经常遇到的页面分页的问题,就是很典型的边界值问题
假设这是一个商城的需求:
- 待测需求:一页只展示10个商品,超过10个时,页面展示“下一页”按钮。
- 测试点:页面大于10条数据,只展示十条数据,并展示“下一页”按钮
- 使用代码演示就是这样,naxt_page 为是否展示下一页按钮的方法,但传入的data_num大于10时,页面才会展示:
def naxt_page(data_num):# 当页面数据大于10时,展示下一页按钮if data_num > 10:print("展示下一页按钮") # 达到按钮展示条件时打印日志
- 显然当data_num=10的时候就是测试的关键点。所以此时10就是边界值。
三、边界两侧的判断
- 找到边界两边。在确定边界之后,通常的做法是简单的对边界加一单位、减一单位来确定边界两边
示例
还是以上面那个示例来说明:
当找到边界值后,再找边界两边的数值。
在这个示例中页面的数据是一个个的商品,由此可知可知数量都是整数。所以边界两边的数据应该是9和11
注意:如果此时待测的目标不是商品,而是价格,比如商品的价格达到10元则可以使用“满十元减一”的优惠券,那么边界值两边的数据应该是9.99和10.01。确定好边界两边的数据之后,现在可以针对这条测试点写出完整的用例:
其实边界不一定是数字, 比如按钮的UI测试上也可以使用边界值法设计测试用例——测试时正好处于按钮边缘点击会响应、处于按钮中间点击会响应、处于按钮之外点击不响应。这样就可以测出程序在写这个按钮的点击区域时是否正确
这是只有一个边界值的情况,而大多数情况下,不止有一个边界时。判断边界值的方式可以遵循如下规律:
- 闭区间:范围为[1-10],左边边界取点 0、1,右边边界取点10、11,边界间再任意取一个点。
- 闭区间和开区间:范围为(1-10],左边边界取点 1、2,右边边界取点10、11,边界间再任意取一个点。
- 开区间:范围为(1-10),左边边界取点 1、2,右边边界取点9、10,边界间再任意取一个点。
四、次边界条件
- 有明确数值的边界值是最容易找到的,它们会在需求文档中有描述,或是使用软件的过程中能明显发现(比如首次启动应用)。
- 有些边界存在于软件内部,在使用过程中几乎是没有表现的。
- 浮点数精度丢失问题:计算机存储数据是使用二进制,代码进行运算的时候使用的是十进制的,十进制一些数,十进制的一些小数并不能很好的被二进制表示,所以在转换的过程中会出现精度丢失。
- 所以在测试时可能会遇到这种bug,一个商品价值9.99元,再加一个0.01元的商品一起结算,却不能使用“满十减一”的优惠券
- 浮点数精度丢失问题就是典型的次边界条件,在设计有关的测试用例时就需要考虑到
- 考虑这一类问题的时候,需要有一定的知识基础,一方面可以多与程序员交流,另一方面也需要平时的积累。
五、特殊边界条件:默认值、空值
- 在考虑明显的边界条件的同时,也要考虑到空值、0、默认值的情况。
- 就是当没有数据输入时、或输入的为空值时,应用应该有一个兜底的处理
- 虽然这些情况可能在需求内不会有明确的描述,但这是在测试用例设计时必须要考虑到的。
六、等价类划分法与边界值法
- 等价类划分法常常与边界值法同时使用。使用时边界值作为等价类划分的条件。
示例
还是以上面分页的例子来说明
- 在这个例子中,对于测试是否展示“下一页”按钮而言,当页面总共有1条数据时和页面总共有9条数据时这两种情况是可以等价的,因为页面都是展示对应的1条和9条数据,且都是不展示“下一页”按钮。同理,当有11条数据与12条数据时也是一样。
七、最后
- 边界值分析法与等价类划分法一样,是非常常见的设计用例方法,网上也有很多教程。
- 但还是有很多人可能只是知道这两种方法,却没有系统的学习过,或是也没有跟工作内容结合起来。希望看过这篇文章之后能对你有帮助。
附录:【测试用例入门系列目录】
测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?
测试用例入门(二)-使用等价类划分法编写测试用例
测试用例入门(三)-使用边界值分析法编写测试用例
测试用例入门(四)-使用流程分析法、状态分析法编写测试用例
测试用例入门(五)-如何进行需求分析
测试用例入门(六) - 根据测试类型与颗粒度归纳测试点
————————————————————————————————————————————
本人运营的博客同名公众号【软件测试必备技能】不定期会上传测试相关资料,有需要可以前往领取。
有需要可点击文章下方二维码,前往领取~
测试用例入门(三)-使用边界值分析法编写测试用例相关推荐
- 测试用例设计方法_边界值分析法(游戏向)
一.前言 经过前面的文章学习,我们了解了行业发展.Bug相关的内容.游戏测试流程以及测试方案的编写,本文章将讲解测试用例设计方法之 "边界值分析法" 详细讲解,快来和我一起看 ...
- 计算机的边界值分析法,黑盒测试:边界值分析法及测试用例设计.doc
文档介绍: 20 14- 20 15 学年第 2 学期软件测试技术课程实验报告学院: 计算机科学技术专业: 软件工程班级: 软件一班姓名: 马文龙学号: 041240 139 任课教师: 刘玉宝-1- ...
- 边界值分析法设计测试用例
边界值分析方法 1.定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界. 2.与等价划分的区别 1 ...
- 常用测试用例设计方法之边界值分析法
边界值分析法 边界值分析法是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例. 实践证明,在设计测试用例时,对边界附近的处理必给予足够的重视,为检验边界附近 ...
- 软件测试用例设计方法之边界值分析法
边界值分析 1)概念 边界值分析方法的理论基础是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小. 2)边界值分析法设计用例 ...
- 用例测试(三)——边界值分析法
1.明确需求: 1)需求:验证标题长度的合法性. 2)要求:标题长度大于0且小于等于30个字符. 2.划分有效等价.无效等价类: 本质上就是针对类型而言. 1)有效等价:大于0且小于等于30个字符. ...
- 功能测试技术——边界值分析法
一.边界值分析法的概念 二.常见的边界值 三.边界值分析法设计测试用例 四.标准型(一般性)测试 五.健壮性测试 一.边界值分析法的概念 边界值分析法就是对输入的边界值进行测试的一种黑盒测试方法.通常 ...
- 测试用例设计——边界值分析法
我们在进行软件测试之前,为了能够逻辑清晰的.更好的没有重复的去执行测试,所以会编写测试用例.在测试用例编写好之后,可以直接按照测试用例来进行测试.那我们用来设计测试用例的方法有很多种,边界值分析法就是 ...
- 使用等价类划分法和边界值分析法设计出学生成绩的测试用例
等价类划分法和边界值分析法的结合使用 1.等价类划分法简介 1.1基本思想 1.2划分基础 1.3等价划分类的规则 1.4测试用例的设计步骤与实例 1.5三角形问题的等价类划分法设计测试用例. 1.6 ...
最新文章
- java 判断数的位数_Java判断数字位数的两种方法
- App字体大小不随系统改变而改变
- Linux中的Kdump
- PREV-3_蓝桥杯_带分数
- Java EE API整合:为什么Spring要与“笨重”的Java EE共舞?
- Python中的str与unicode处理方法
- 最优化课堂笔记05——一维最优化方法(含重点:黄金分割法)
- from server sql 拼接统计两个子查询_[SQL SERVER系列]之嵌套子查询和相关子查询
- 后台数据到mysql怎样保持实时更新_MySQL是如何保证数据的完整性
- 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——B题 小宝的幸运数组
- Spring Boot 2.0 从入门到精通 From Zero to Hero with Spring Boot - Brian Clozel
- 字节跳动开源!超好用的视频抠图工具;GitHub开源项目维护协作指南;自动化数据清洗工具包;强化学习入门教程;前沿论文 | ShowMeAI资讯日报
- 最新借条模板,如何写
- 复活Google右键翻译方法及Google浏览器网页一键翻译
- 数据分析|基础概念/excel/tableau自学笔记
- java mp3合并_java如何实现把两首MP3一系列的帧进行合并
- Processing编写熊猫
- android xml绘制图标,android – 如何为图标制作XML文件
- python 期货现货差价监测_基差,即期货与现货之间价格之差
- NDIS拨号流程+dhcp