边界值分析法也是一种黑盒测试用例设计方法。
由大量的测试经验总结得知大量错误往往发生在边界情况,所以针对边界情况设计测试用例,可以更大概率的查出错误。
一、哪些情况需要做边界值分析
1、输入条件明确了值的范围(比如参数值范围1-99)
2、输入条件明确了值的个数(比如参数表示个数,需求规定个数1-5个)
3、输入条件明确了是一个有序的集合(比如参数只能是(1,2,3))
二、如何使用边界值分析
举个例子
淘宝店铺老板想搞活动,假设淘宝服务搞活动接口其中一个参数就是活动时长,后端规定活动的时长最多72个小时,最少24个小时。此时针对创建活动的这个时长参数,我们可以设计如下用例。
首先用等价类划分法做一下划分。
然后结合有效等价类1和无效等价类2345分别设计测试用例。
结合前一篇等价类的知识可以知道,等价类是用最少的用例覆盖所有等价类即可,但这里前3个用例都是覆盖等价类1的,这就是等价类设计时结合了边界值分析法。
24<=time<=72
这里的边界有两个24和72,这里边界情况取了5种,24,72,23,73,36。
因为是闭区间,所以除了边界值,还要考虑边界值过去一点点,比如23,73
然后因为time是个范围,还要在范围内补充一个测试点,这里取36。
三、边界值分析有技巧,如何用例最少?
继续使用上面分析的例子。
前面介绍了范围是个闭区间的情况,我们边界分析法如何取值。现在介绍另外两种情况。
1、如果范围是个半开半闭区间,那用例要怎么取值呢?比如24<time<=72
此时:有效等价类先取边界,因为24是无效等价类,所以最小值只能取25,最大还是72,然后范围内还要取一个值比如36,目前有效等价类有3个用例覆盖:25,72,36
此时设计覆盖无效等价类的值,首先24是卡在边界上的第一个值,然后同样73
所以如果是半开半闭的区间,用例取值有:25,72,36,24,73
2、如果范围是个开区间,此时用例要怎么取值呢?比如24<time<72
同理,覆盖有效等价类的最靠近边界的值为25,71,然后范围再取一个值,如36
覆盖无效等价类的边界值显然为24,72
所以如果是开区间,用例取值有:25,71,36,24,72
囧:有一种糊涂的边界值分析法是不管开闭区间,取所有边界和临近边界的值,如:
23,24,25,71,72,73,36
缺点就是会有冗余的测试用例,增加无用的工作量
总结:边界值分析时结合等价类做到合理的取边界值,而不是盲目的取所有边界和临近边界的值!