• 测试用例设计方法之:入门试招,等价边界初探


    等价边界

    等价类方法

    概念及原理

    定义

    • 等价类:某个输入与的子集合
    • 等价类划分:有效等价类(合理的、有意义的输入集合)
    • 无效等价类(不合理的 or 无意义的输入集合)

    基本思想
    设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

    方法步骤

    • 根据需求,大体上可以先划分有效和无效两种
    • 然后再细化相应的等价类(从组合情况进行细化)
    • 建立等价类表
    • 生成测试用例

    举例说明

    • 场景:一个输入框的输入规则为1~12位字母和数字组合
    • 根据等价类划分法,具体可建立等价类表如下(把输入拆分成长度和符号组合两种),即可得到用例
    划分有效等价类编号无效等价类编号
    长度[1,12](1)0(2)
    --(12,+无穷)(3)
    符号a(4)数字+其他字符(5)
    --其他字符(6)

    边界值分析法

    概念及原理

    定义
    是等价类划分的一个补充方法,将等价类划分的边界作为用例设计(在有效和无效等价类的边界取值中,会存在值重复的情况,可按有效无效进行取舍)
    基本思想
    大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部,所以为了保证测试质量,就需要重点测试边界,就有了边界值这样的测试方法。
    等价类和边界值的关系

    • 边界值分析法是作为对等价类划分法的补充,边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
    • 边界值数据本质上是属于某个等价类的范围,测试时有时是一种冗余(正好等于,刚刚大于或刚刚小于边界的值),但是为了更好的测试质量,边界值必须要单独进行测试,适当必要的冗余是可以接受的。
      使用方法
      那我们怎么去找边界值呢?一般会关注以下几个点:
    • 上点:区间的端点值
    • 内点:上点之间任意一点
    • 离点:若是开区间的离点,就是开区间重伤点内侧紧邻的点;若是闭区间的离点,就是闭区间中上点外侧紧邻的点
      闭区间、半开半闭区间、开区间

    举例说明

    场景:一个输入框的输入规则为1~12位字母和数字组合
    具体可建立等价类表如下(把输入拆分成长度和符号组合两种)
    根据边界值法,按照闭区间[1,12]确定上点(1,12),内点(2),离点(0,13),建立等价类和边界值表如下(长度和符号组合两种),即可得到用例。

    划分有效等价类边界值无效等价类边界值
    长度[1,12]1,2,11,1200
    --(12,+无穷)13
    符号a数字+其他字符
    --其他字符

    测试设计——“等价类+边界值”

    场景:手机号兼容座机号的格式校验

    • 有横杠:XXX(3位或4位)-XXXXXXXX(7或8位):3+7或者3+8或者4+7或者4+8
    • 有横杠有分机号:XXX(3位或4位)-XXXXXXXX(7或8位)-XXX(1-5位)
    • 无横杠:XXX(3位或4位)XXXXXXXX(7或8位) 11位-17位
    • 取消第一位必须为”1“,且取消第二位必须为“除0,1,2”限制。
      设计步骤:
      1)等价类划分:以第一条为例-有横杠:XXX(3位或4位)-XXXXXXXX(7或8位)
      根据等价类划分法的步骤,首先进行拆分第一部分和第二部分,获得第一部分的有效等价类[3, 4]和无效等价类(len>4 & 08 & 0 2)边界值分析:根据区间开闭性,定位上点、内点、离点。 如:有效等价类[3, 4]的上点为3和4,无效等价类(len>4 & 0 3)数据处理:按照步骤1和2及数据的组合情况,列出所有的情况。
      4)整理最终用例:根据步骤3得到的数据,按照要求设计测试数据及相应的预期结果,得到最终测试用例。

    总结

    方法等价类划分法边界值分析法
    核心“分类”及代表性边界值和边界两边的邻值
    优点通过把输入数据和输出数据进行分类,选用分类中的代表值,在保证了测试覆盖的情况下大大减少了测试用例的数量,使测试工作变得简单高效大量的程序错误发生在输入的边界上,考虑了边界值的测试用例能更高效发现程序中的错误和缺陷
    缺点输入和输入之间的关系考虑少,可能产生一些逻辑错误。还需要其他用例设计方法来补充测试只能作为一个对其他设计方法的补充;这种方法表面上听起来简单,但有的边界值非常微妙,不容易确定下来;只适用于多个变量相互独立又都代表实际物理量的情况,对变量之间的依赖关系则考虑不到
    适用场景有数据输入(编辑框)的地方,可以使用等价类划分法。例如:用户登录、注册、新建、查询有数据输入且存在取值边界或长度边界时,边界值法往往跟等价类划分法一起使用,从而形成一套较为完善的测试方案

    等价类划分和边界值分析法只考虑了单个的输入条件,在输入条件有各种组合、输入条件之间的相互制约关系的场景中很难发挥有效作用,这个时候就需要因果图与判定表法来帮助我们设计测试用例了

  • 相关阅读:
    在Mongodb查询语句中使用hint()
    千亿贴息助科研,维视智造院校实验室建设攻略来了(四)!
    Spring系列26:Spring AOP 通知与顺序详解
    SpringBootApplication注解的简介说明
    h5下载文件,无兼容问题~
    小程序数据导出文件
    数据结构刷题(三十三):完全背包最小值情况。322. 零钱兑换、279. 完全平方数
    二叉树—堆(C语言实现)
    JavaS
    Java泛型简介、定义和使用含有泛型的类、定义和使用含有泛型的方法、定义和使用含有泛型的接口、泛型通配符?、受限泛型
  • 原文地址:https://blog.csdn.net/fanfangyu/article/details/125888181