测试用例入门(三)-使用边界值分析法编写测试用例

在《软件测试》一书中是这样描述边界值分析法的作用:如果在悬崖峭壁边可以自信、安全的行走而不掉下去,平地就不在话下了。
本篇文章中的演示代码均由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条数据时也是一样。
    在这里插入图片描述

七、最后

  • 边界值分析法与等价类划分法一样,是非常常见的设计用例方法,网上也有很多教程。
  • 但还是有很多人可能只是知道这两种方法,却没有系统的学习过,或是也没有跟工作内容结合起来。希望看过这篇文章之后能对你有帮助。

附录:【测试用例入门系列目录】

测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?
测试用例入门(二)-使用等价类划分法编写测试用例
测试用例入门(三)-使用边界值分析法编写测试用例
测试用例入门(四)-使用流程分析法、状态分析法编写测试用例
测试用例入门(五)-如何进行需求分析
测试用例入门(六) - 根据测试类型与颗粒度归纳测试点

————————————————————————————————————————————
本人运营的博客同名公众号【软件测试必备技能】不定期会上传测试相关资料,有需要可以前往领取。
在这里插入图片描述
在这里插入图片描述
有需要可点击文章下方二维码,前往领取~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40883833/article/details/126651900