边界值产生的原因
经过长期的测试工作经验表明,在输入域的边界或边界附近,常常会发现大量缺陷
边界值测试倾向于选择系统边界或边界附近的数据来设计测试用例
边界值测试要解决的问题
边界在哪里?
如何定义边界的邻域?
如何选择测试数据?
如何设计测试用例?
我们来结合案例进行分析,试试根据以下业务的需求,设计边界值测试用例
某保险网站的前台计算保费的页面中要求输入被保险人的年龄,根据不同的年龄使用不同的保险费率计算标准。保费计算方式为:保费=投保额X保险费率。其中:1-15岁,保险费率为10%;16-20岁,保险费率为15%;21-50岁,保险费率为20%;51-70岁,保险费率为25%。
依赖于边界值的等价类划分
年龄 | 保险费率 | 年龄 | 保险费率 |
x<0 | 无效输入 | 20<x≤50 | 20% |
1≤x≤15 | 10% | 50<x≤70 | 25% |
15<x≤20 | 15% | x>70 | 无效输入 |
问题1:边界在哪里?
边界点就是可能导致被测系统内部处理机制发生变化的点
需求中有利于识别边界点的文字:
位置,尺寸,数量,长度,速度,高度,距离,质量,时间...
可能的边界点:
第一个/最后一个,最小/最大,最少/最多,最短/最长,最快/最慢,最高/最低,最近/最远,最重/最轻,最早/最晚...
总结:找到每个输入条件的边界点即可确定系统的边界点。
问题2:如何确定邻域?
输入条件:a<=x<=b
边界点:a,b
邻域:【a-δ1,a+δ1】,【b-δ2,b+δ2】
δ1=δ2 ?
问题3:如何选择测试数据?
输入条件:a<=x<=b
边界点:a,b
邻域:【a-δ1,a+δ1】,【b-δ2,b+δ2】
测试数据:【a-δ1,a+δ1】,【b-δ2,b+δ2】
问题4:如何设计测试用例?
穷尽测试
在边界及边界附近的邻域内选择所有的测试数据,构成测试用例。
做一做:ind add(int x1,int x2)
1 ≤ x1 ≤ 100
10 ≤ x2 ≤ 50
使用边界值测试设计测试用例
我们这时候x1的边界点为1和100,x2的边界点为10和50结合前面三个问题我们可以去试着写出测试用例的数据如果只测试有效类,x1可只取1,2和99,100,x2可取10,11和49,50;如果我们需要考虑无效类,x1取-1.1,2和99,100.101,x2取9,10,11和49,50,51