【黑盒测试用例设计】测试方法之边界值分析法
原理: 针对输入或输出范围的边界值进行测试。
通常是针对有效等价类的边界值进行测试。
考虑范围:变量的最大值、最小值、中间值、比最大值大的值、比最小值小的值。
适用场景:有范围的输入或输出。
使用技巧:通常结合等价类划分法使用,是作为对等价类划分法的有效补充。
应用实例:
如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。例如,如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。例如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。
例如,一程序属于情报检索系统,要求每次"最少显示1条、最多显示4条情报摘要",这时我们应考虑的测试用例包括1和4,还应包括0和5等。
如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
分析规格说明,找出其它可能的边界条件。
应用实例
几种边界值分析法模型
一般性边界值、健壮性边界值、最坏边界值、最坏健壮性边界值。
(1)边界条件
如果软件在能力达到极限时能够运行,那么在正常情况下一般也不会有什么问题。普通边界条件在产品说明书中有定义,或在用户实际使用中确定,比较容易发现。
(2)次边界条件
有些边界值在软件内部,称作内部边界条件,要测试到这些内部边界,要求大体了解软件的工作方式,如2的乘方和ASCII表。
(2.1)2的乘方:
计算机和软件的计数基础是二进制数,在建立等价区间时,要考虑是否需要包含2的乘方边界条件。
例如,联系人号码最多支持500个字符,除考虑0,1,2和499,500,501外,还要覆盖任何可能的2的乘方次边界,包含临近双位边界的14、15和16,以及临近字节边界的254、255和256。
(2.2)ASCII表
另一个常见的次边界条件是ASCII字符表。
0~9的后面ASCII值是48~57.斜杠字符“/”在数字0的前面,而冒号字符“:”在数字9的后面。大写字母A~Z对应65~90.小写字母对应97~122,这些情况都代表次边界条件。例如,联系人的邮件地址编辑文本框只接受用户输入字母A~Z、a~z、0~9、“_”、“@”、“.”等字符,就应该在非法区间中包含ASCII表中这些字符前后的值包括:问号“?”、开方括号“[”、开花括号“{”、斜杠“/”、“:”脱字符“^”、开单引号“`”、减号/破折号“-”等。
(3)设计原则
3.1 如果输入条件规定了值的范围,刚刚超越范围边界的值,在范围内紧贴边界的值;3.2 如果输入条件规定了值的个数,则用最大个数,最大个数多1,最小个数,最小个数少1的数作为测试数据;3.3 前面两条对输出条件同样适用;3.4 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个和最后一个元素作为测试数据;3.5 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试数据。3.6 分析规格说明,找出其他可能的边界条件。
三角形问题的边界值分析测试用例
在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。
2.1 三角形边长取值为:0,101;2.2 三角形边长取值为:50;
NextDate函数的边界值分析测试用例
在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。
3.1 year的边界值取值为1911,2051;1970;3.2 mouth的边界值取值可以为:0, 13; 6;3.3 day的边界值取值可以为:0, 32, 15;