3、边界值分析

如何选定边界值

很难提供一份如何进行边界值分析的“详细说明”,因为这种方法需要一定程度的创造性,以及对问题采取一定程度的特殊处理办法。

但是可以提供一些通用指南:

  • 如果输入条件规定了一个输入值范围,那么应针对范围的边界设计测试用例,针对刚刚越界的情况设计无效输入测试用例。举例,如果输入值的有效范围是-1.0至+1.0,那么应针对-1.0、1.0、-1.001和1.001的情况设计测试用例。
  • 如果输入条件规定了输入值的数量,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例。举例,如果某个输入文件可容纳1~255条记录,那么应根据0、1、256和255条记录的情况设计测试用例。
  • 对每个输出条件应用指南1。举例,如果某个程序按月计算FICA的扣除额,且最小金额是0,最大金额是1165.25,那么应该设计测试用例来测试扣除0和1165.25的情况。此外,还应观察是否可能设计出导致扣除金额为负数或超过1165.25的测试用例。
  • (Tips:检查结果空间的边界很重要,因为输入范围的边界并不总是能代表输出范围的边界情况(例如三角正弦函数sin)。但是总是产生超过输出范围的结果也是不大可能的,但无论如何,应该考虑这种可能性。)
  • 对每个输出条件应用指南2。如果某个信息检索系统根据输入请求显示关联程度最高的信息摘要,而摘要的数量从未超过4条,则应编写测试用例,使程序显示0条、1条和4条摘要,还应设计测试用例,导致程序错误地显示5条摘要。
  • 如果程序的输入或输出是一个有序序列(例如顺序的文件、线性列表或表格),则应特别注意该序列的第一个和最后一个元素。
  • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
  • 此外,发挥聪明才智找出其他的边界条件。

Tips:边界值分析方法和等价类划分之间的重要区别是,边界值分析考察正处于等价划分边界或在边界附近的状态

设计测试用例

A.确定边界值

在尝试针对划分好的等价类进行边界值取值的时候,一定要有适当的范围,不是根据我们的端点值往左右两侧随意选择测试值,而是也有科学的方法进行选择。

边界值点的定义:
上点:边界上的点,闭内开外(“闭”是指域的边界是封闭的,即闭区间;“开”是指域的边界是开放的,即开区间)。
离点:离上点最近的点称为离点。开内闭外。
内点:域范围内的任意一点。

三点分析法:结合等价类划分的具体情况,针对边界值的选择就包括开区间、闭区间以及半开半闭区间

  • 闭区间:闭区间中的情况,上点为可以取值的点,在上点之间任取一点就是内点。而紧邻上点范围之外的第一对点被称为离点(也称为外点)

  • 半开半闭区间:半开半闭区间中,上点与内点的定义不变。离点是开区间一侧上点内部范围内紧邻的点,而在闭区间一侧是上点外部范围内紧邻的点。
  • 开区间:开区间中,上点与内点的定义仍然不变。而离点就是上点内部范围内紧邻的一对点。

总结为,上点就是区间的端点值,而内点就是上点之间任意一点。对于离点,要分具体情况,如果开区间的离点,就是开区间中上点内侧紧邻的点;如果是闭区间的离点,就是闭区间中上点外侧紧邻的点。

边界的分类

  • 边界条件:可以在产品说明书中有定义或者在使用软件过程中确定;
  • 内部边界条件:在软件内部,也称为内部边界条件;
  • 其他边界条件:如输入信息为空、非法、错误、不正确和垃圾数据。

A.边界条件的常见数据类型

数值、速度、字符、地址、位置、尺寸、数量、空间

  • 例如,“字符”,边界值是起始-1字符、结束+1个字符。测试用例的设计思路是,假设一个文本输入区域允许输入1个到255个 字符,输入1个和255个字符作为有效边界值;输入0个和256个字符作为无效边界值,这几个数值都属于边界条件值。
  • 例如“数值”,边界值是最小值-1、最大值+1。测试用例的设计思路是,假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的数值来作为边界条件。
  • 例如“空间”,边界值是小于空余空间一点、大于满空间一点。测试用例的设计思路是,例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。

B.内部边界条件

在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。

内部边界值条件主要有下面几种:

  • 数值的边界值检验:计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。
范围或值 范围或值
位(bit) 0或1
字节 (byte) 255
字(word) 0~65535(单字)或0~4294967295(双字)
千(K) 1024
兆(m) 1048576
吉(G) 1073741824

符的边界值检验:在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。如下列出了一些常用字符对应的ASCII码值。

字符 ASCII码值 字符 ASCII码值
空(nul1) 0 A 65
空格 (space) 32 a 97
斜杠(/) 47 Z 90
0 48 z 122
冒号( :) 58 单引号(‘) 96
@ 64

其它边界值检验:在不同的行业应用领域,依据硬件和软件的标准不同而具有各自特定的边界值。如下列出部分手机相关的边界值

硬件设备 范围或值
手机锂电池电压 工作电压:3.6-4.2V
手机正常使用温度 -25°C~60°C

使用场景

有数据输入且存在取值边界或长度边界时,一般可以使用边界值法。边界值法往往跟等价类划分法一起使用,从而形成一套较为完善的测试方案。

.划分等价类&选取边界值

步骤一、要求输入6个数字字符yyyynn;参照等价类划分法规则5,划分为一个有效等价类和三个无效等价类。

  • 有效等价类(1):输入6个数字字符
  • 无效等价类(2):输入6个字符,存在非数字的情况
  • 采用边界值,6个字符全为非数字:abcdef
  • 采用边界值,6个字符中有1个为非数字:19930m
  • 无效等价类(3):输入少于6个数字字符
  • 采用边界值,输入5个数字字符
  • 无效等价类(4):输入多于6个数字字符
  • 采用边界值,输入7个数字字符

步骤二、在有效等价类(1)的基础上,参照等价类划分法规则6,对该等价类进行细分;考察6个数是否满足日期格式要求,1990<=yyyy<=2049,01<=nn<=12,参照规则,划分为一个有效等价类和四个无效等价类。

  • 有效等价类(5):日期格式满足要求,1990<=yyyy<=2049,01<=nn<=12
  • 采用边界值,[yyyy,nn]取值为:[1990,06],[1991,06],[2020,06],[2048,06],[2049,06],[2020,01],[2020,02],[2020,11],[2020,12]
  • 无效等价类(6):yyyy不满足要求,yyyy<1990
  • 采用边界值,[yyyy,nn]取值为:[1989,06]
  • 无效等价类(7):yyyy不满足要求,yyyy>2049
  • 采用边界值,[yyyy,nn]取值为:[2050,06]
  • 无效等价类(8):nn不满足要求,nn<01
  • 采用边界值,[yyyy,nn]取值为:[2020,00]
  • 无效等价类(9):nn不满足要求,nn>12
  • 采用边界值,[yyyy,nn]取值为:[2020,13]

例4. 假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客的最少货币个(张)数?(货币面值50元,10元,5元,1元四种)

题目分析:设四种货币的张数分别为n50、n10、n5、n1(均为整数)它们的值即为结果。

  • 输入情况有R>100, 0<R<=100, 0<R, P>100, R<=P<=100, P<R。
  • 输出情况有n50=1||0, 0<= n10 <5, n5=1||0, 0<= n1 <5。
  • 测试实例(R,P)有:

 边界值分析的优缺点

  • 优点:更全面更系统的测试边界上存在的问题,是最有效的测试用例设计方法之一;
  • 缺点:只能作为一个对其他设计方法的补充;这种方法表面上听起来简单,但有的边界值非常微妙,不容易确定下来;只适用于多个变量相互独立又都代表实际物理量的情况,对变量之间的依赖关系则考虑不到。

猜你喜欢

转载自blog.csdn.net/qq1092881420/article/details/128791643