边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
与等价划分的区别
1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
边界值分析方法的考虑:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据1) 对16-bit 的整数而言 32767 和 -32768 是边界
2) 屏幕上光标在最左上、最右下位置 3) 报表的第一行和最后一行 4) 数组元素的第一个和最后一个
5) 循环的第 0 次、第 1 次和倒数第 2 次、最后一次 5. 边界值分析
1) 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。 例:测试计算平方根的函数 --输入:实数
--输出:实数
--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息\平方根非法-输入值小于0\并返回0;库函数Print-Line可以用来输出错误信息。 2) 等价类划分:
I.可以考虑作出如下划分: a、输入 (i)<0 和 (ii)>=0 b、输出 (a)>=0 和 (b) Error II.测试用例有两个:
a、输入4,输出2。对应于 (ii) 和 (a) 。
b、输入-10,输出0和错误提示。对应于 (i) 和 (b) 。 3) 边界值分析:
划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。由此得到以下测试用例:
a、输入 {最小负实数}
b、输入 {大于最小负实数,且趋近于最小值} c、输入 0
d、输入 {小于最大正实数,且趋近于最大值} e、输入 {最大正实数}
4) 通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、重量、大小、速度、方位、尺寸、空间等。
5) 相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最长、 空/满等情况下。
边界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值,记为:min、min+、nom、max-、max考虑到健壮性测试,还可以加一个略大于最大值max+,以及一个略小于最小值min-的值。 6) 利用边界值作为测试数据 例子
在软件测试中,假定 X 为整数,10≤X≤100,用边界值分析法,那么 X 在测试 中应该取( )边界值。
A.X=9,X=10,X=100,X=101 B.X=10,X=100
C.X=9,X=11,X=99,X=101 D.X=9,X=10,X=50,X=100
怎么是A?? 9不是小于10吗 1010不是大于100吗??
答案选择A
边界值的选择:
(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。 (2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。
所以为10、100、9、101
边界是指相对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。基于边界的方法是根据定义域来实现的,最终演变成边界值分析、健壮性测试、最坏情况测试和健壮最坏情况测试四种技术。
边界值分析也是一种黑盒测试方法,是对等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。
边界值分析关注的是输入空间边界,用以标识测试用例,基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等处取值。边界值分析手段主要有两种方式:通过变量数量和通过值域的种类进行。如一个n变量函数f(x1,x2,??xn)按以上方式每次确定一个测试对象(基于“单缺陷假设”理论),会产生4n+1个测试用例。健壮性测试是扩展边界值分析的测试,即增加一个略大于最大值(max+)和略小于最小值(min-)的取值,则用例数将变为6n+1。当边界值变量不是独立变量时,则以上测试用例就显的不充分。对于逻辑变量而言这种用例也没有什么用处。
边界值法示意图 最坏情况测试
拒绝“单缺陷假设”理论的情况下,对所有变量的边界值集合进行5元素笛卡儿积计算,用以生成测试用例,对于n变量函数的最坏测试基于边界值分析会产生5n个测试用例,基于健壮性分析则产生7n个测试用例。相比而言最坏情况测试代价较高,因此其最佳运用是物理变量具有大量交互作用,或者函数失效的代价极高的情况下。
①“在最小值、和最大值处”是指的一般边界值分析。
②“略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值、略大于最大值”其实是健壮性边界值分析,也就是考虑了非法的意外值。
③可靠性理论“单缺陷假设”:失效极少是由两个(或多个)缺陷的同时发生引起的。
一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;
边界值法
二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1格、比最小个数少1个的数做为测试数据;
三、根据规格说明的每一个输出条件,使用规则一; 四、根据规格说明的每一个输出条件,使用规则二;
五、如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;
六、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例; 七、分析规格说明,找出其他可能的边界条件。 找零钱最佳组合
假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 ) 一、 分 析 输 入 的 情 形 。 R > 100 0 < R < = 100 R <= 0