黑盒测试_边界值分析法

来源:互联网 发布:php开发基础入门 编辑:程序博客网 时间:2024/05/16 10:58

引入

一个软件无论实现怎样各种各样丰富的功能,其内部实现都不可避免的对各种各样的数据范围进行界定与判断,从而针对不同的数据范围进行所需的处理,从而实现软件的需求。而由于需求界定不准确、设计不严密、程序书写手误等原因,对于这些数据范围边界的判断是软件极容易出错的地方,使软件做出错误的处理。从而无法满足软件需求。

针对于这种情况,软件测试中有一个测试方法叫做边界值法,这个方法也是经常被测试人员提到,我们下面来看看这个方法具体的操作方法。

 

为什么会有边界值分析法?

长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。

例如:

程序员只处理了1-10位的情况,忘记对10位进行处理;

程序员把误写成了<,计数器发生少计数一次。

 

边界值分析法

输入输出的边界值进行测试的一种黑盒测试方法。

是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

 

边界点

1、边界是指相对于输入等价类和输出等价类而言,稍高于、稍低于其边界值的一些特定情况。

2、边界点分为上点、内点和离点。

 

边界值分析法&等价类划分法

边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。

 

如何选择测试数据?(原则)

1、如果输入条件规定了值的范围,则应取刚达到这个范围的边界值,以及刚刚超越这个范围边界的值作为测试输入数据。

例如:程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。

测试数据取7个点应取102550,还应取10.01,49.99,9.9950.01

测试数据取5个点赢取102550,还应取9.9950.01

重量可以是小数,没有规定小数点个数时默认取两位

2、如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少1,比最大个数多1的数作为测试数据。

例如,一个输入文件应包括1-255个记录。

测试数据可取1255,还应取0256

3、根据规格中每个输出条件,使用原则1,如果输出条件规定了值的范围,则应取刚达到这个范围的边界值,以及刚刚超越这个范围边界的值作为测试输入数据。

例如,程序的规格说明要求计算出“每月绩效奖金为01165.25元”。

测试用例可取0.001165.25,还可取-0.011165.26等。

4、根据规格中每个输出条件,使用原则2,如果输出条件规定了值的个数,则用最大个数、最小个数,比最小个数少1,比最大个数多1的数作为测试数据。

例如,情报检索系统,要求每次“最少显示1条、最多显示4条情报摘要”。

这时我们应考虑的测试用例包括14,还应包括05等。

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

例如,程序系统设计文档中,上传的图片:图片格式、图片名字、图片大小、图片是否有效

6、分析规格说明,找出其他可能的边界条件

例如,特殊边界值:默认值、空值、空格、零、无效数据等

 

边界值检验的主要类型

边界类型

输入

数字

最大、最小

字符

首位、末位

位置

上、下

重量

最高、最低

速度

最快、最慢

方位

最高、最低

尺寸

最长、最短

空间

空、满

在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的需求规格或常识中得到,也是最终用户可以很容易发现问题的。

 

还有没有从软件规格说明中看不到的边界值呢?

内部边界值

有些边界值条件在软件内部,用户几乎看不到,但同时确实属于检验范畴内的边界条件,成为内部边界条件或次边界值条件。

常见的内部边界值条件有下面两种:

数值的边界值

字符的边界值

在实际的测试用例中,需要将基本的软件设计要求和程序定义的要求结合起来,即结合基本边界值条件和内部边界值条件来设计有效的测试用例。

 

内部边界值(1):数值的边界值

计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。

范围或值

位(bit

01

字节(byte

0-255

字(Word

0-65535(单字)或0-4294967295(双字)

例如,程序有一个输入变量x的范围是(0,10000),但是在程序内部,当想x255时,用一个字节表示,当x>255时用一个字表示,那么,255就是一个内部边界值。

 

边界条件设计测试用例步骤

1、确定边界情况

通常输入或输出等价类的边界就是应该着重测试的边界情况。

2、选取测试数据

选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。

例如:程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。

测试数据取7个点应取102550,还应取10.01,49.99,9.9950.01

测试用例

X

输入数据

预期输出

T1

Xmin-

9.99

F1

T2

Xmin

10

F2

T3

Xmin+

10.01

F3

T4

Xnom

25

F4

T5

Xmax-

49.99

F5

T6

Xmax

50

F6

T7

Xmax+

50.01

F7

例如:对于函数Fx1x2),其输入变量x1x2的取值边界定义如下:

ax1bcx2d

其中两个变量都为正数。

编号

X1

X2

Fx1x2

1

ab

c

F(ab,c)

2

ab

d

F(ab,d)

3

ab

cd

 

4

ab

c-

 

5

ab

d+

 

6

a

cd

 

7

b

cd

 

8

a-

cd

 

9

b+

cd

 

 

边界条件测试用例设计法

基于边界的方法是根据定义域来实现的,最终演变成一般边界值条件测试、健壮性测试、最坏情况测试和健壮最坏情况测试四种技术。

1、一般边界值条件测试:(1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取minmin+nommax-max

2)对程序中的每个变量重复(n个变量的测试用例个数为4n+1个)

2、健壮性测试:(1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min-minmin+nommax-maxmax+

2)对程序中的每个变量重复(n个变量的测试用例个数为6n+1个)

3、最坏情况测试:(1)所有变量均可去minmin+nommax-max+这五个边界值中的任何一个。(组合)

2)测试用例为五个集合的笛卡尔乘积。对于一个n变量函数,该方法生成的测试用例数为5n次方个。

4、健壮最坏情况测试:(1)所有变量均可取min-minmin+nommax-maxmax+7个边界值中的任何一个。

2)测试用例为7个集合的笛卡尔乘积。对于一个n变量函数,该方法生成的测试用例数为7n次方个。

原创粉丝点击