• [ 黑盒测试方法 ] 边界值分析法


      边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。根据大量的测试统计数据,很多错误是发生在输入或输出范围的边界上,而不是发生在输入/输出范围的中间区域。因此针对各种边界情况设计测试用例,可以查出更多的错误。

    边界值分析方法

      边界值分析不是从某等价类中随便挑一个典型值或者任意值作为测试数据,而是着重测试已划分出的等价类的每个边界,选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。也就是边界值方法中常说的边界5点,即上点、内点和离点。

    (1)上点:是指边界上的点,如果域的边界是闭区间的,上点就是在域范围内,如果是开区间的话,上点就是在域范围外。

    (2)离点:是指离上点最近的点,如果域的边界是是开区间,那么离点就在范围域内,如果是闭区间,那么离点就在域范围外。

    (3)内点:域内的任意一个点都是内点。

      举例说明边界值中上点、离点、内点的取值。如下:

    (1)区间为正整数值域[66,88],上点就是66,88,并且都是在域范围内。内点就是域内得任意点,离点是65,89。

    (2)区间为正整数值域(66,88],这种情况上点是66,88,其中一个是域内,一个是域外,内点就是域内的任意点,离点是:67,89。

    (3)区间为正整数值域(66,88),这样的情况上点还是66,88,只是都是在域外,内点还是域内的任意点,离点此时为:67,87。

     再做进一步说明,如下:

    (1)上点、离点的确定和这个域的边界是开区间还是闭区间有关,不论边界是开区间还是闭区间,上点和离点总有一个在域范围内,一个在域范围外。如边界是开区间,上点在域范围内,离点在域范围外,如果是闭区间,则相反。

    (2)上点、离点的选择还和区间的数据类型有关。如果是整数,可以通过在上点的基础上加1或者减1确定离点。如果是实数,可以人为设置一个精度,在这个精度下选择一个最靠近的点。

    (3)总结。不论是开区间还是闭区间,上点就是边界值离点是在闭区间下,上点取值减去1或者人为设置的精度。如果是开区间,上点取值是加1或者人为设置的精度。内点就是域范围内的任意一个点。

    边界值使用场景

      下面根据不同场景的输入或输出条件下,基于边界值分析方法选择测试用例的原则如下:

    (1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值以及刚刚超越这个范围边界的值作为测试输入数据。例如,如果程序的规格说明中规定:"重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……"。考虑重量是实数,设置精度为0.01,则边界取值为10、50(上点),9.99、50.01(离点),10.01(内点)。

    (2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。例如,一个输入文件应包括1~255个记录,因为取值个数是整数,所以边界值取值为1、255(上点),0、256(离点),126(内点)。

    (3)将规则(1)和(2)应用于输出域,即设计测试用例使输出值达到边界值及其左右的值。例如,某程序的规格说明要求计算出“每月保险金扣除额为0至1165.25元",则边界取值为可0.00、1165.25(上点),0.01、1165.26(离点),1165.24(内点)。

    (4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

    (5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。

    (6)分析规格说明,找出其它可能的边界条件。

    边界值分析使用实例

    1、测试计算平方根的函数。当输入1个大于等于0的数时,返回其正平方根;当输入一个小于0的数时,提示错误信息Error。

    (1)按照等价类划分,得到输入有效等价类为:大于等于0,无效等价类为:小于0。输出有效等价类为大于等于0,无效等价类为Error。

    (2)设计测试用例。

      TestCase1:输入4,输出2。

      TestCase2:输入-10,提示“Error”。

    (3)使用边界值分析方法补充测试用例。分析步骤(1)中的等价类,可知大于等于0的边界值为0和最大正实数、小于0的边界值为0或最小负实数。由此得到以下测试用例:

      TestCase3:输入最小负实数,提示“Error”。

      TestCase3:输入绝对值最小负实数,如-0.0001,提示“Error”。

      TestCase4:输入0,输出0。

      TestCase5:输入最小实数,如0.0001,输出0.01。

      TestCase5:输入最大正实数,如1000000,输出,1000。

      TestCase4:输入0,输出0。

    练习题

    (1)n>0,n是整数。边界5点取值分别是?如果n是实数?

    (2)n>=0,n是整数,边界5点取值分别是?如果n是实数?

    参考资料

    1、边界值分析法_百度百科

  • 相关阅读:
    乌龟棋 (codevs 1068)题解
    全排列 (codevs 1294)题解
    最小伤害 题解
    编码问题 题解
    基础DAY3-运算符 逻辑运算符 if elif
    图解算法——合并k个排序列表(Merge k Sorted Lists)
    算法图解——组合求和( Combination Sum)
    make命令使用 & makefile编写详解
    并发工具CountDownLatch源码分析
    线程局部变量ThreadLocal实现原理
  • 原文地址:https://www.cnblogs.com/linyfeng/p/9211660.html
Copyright © 2020-2023  润新知