包含的前缀数目超过了最大值。最大值为 2_4.2.2 边界值分析

4.2.2 边界值分析

边界值分析(Boundary Value Analysis)方法的理论基础,是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。

当测试对象的输入条件明确了一个值的取值范围,规定了值的个数,或者明确了一个有序集合,我们就可以使用边界值分析方法。

边界值是一种非常重要的测试技术,它有如下的特点:

  • 价值:边界值分析技术可以显著的减少测试用例数量。边界值上是最容易发现缺陷的地方;边界值分析技术应该和等价类划分技术紧密结合使用。
  • 局限/困难:精确性取决于等价类划分的精确性,它的局限和困难与等价类相仿。必须注意有效数据和无效数据的增幅以便于精确地定义测试数据。只有有序的等价类可以做边界值分析,但这并不妨碍对某个范围内有效输入的分析。例如,测试电子表格支持的单元格数量,一个包含可以允许的最大单元格数量(边界)的等价类,而另一个等价类则从超过这个边界1 个单元格(超过边界)开始 。
  • 覆盖率:等于测试的边界条件总数除以识别的边界条件总数(二值测试法或三值测试法)。这就提供了边界测试的覆盖百分率。

边界值分析总能发现边界的位移或遗漏,也可能会发现额外的边界情况。这种技术可用于发现处理边界值,尤其是小于和大于逻辑错误(即位移)的缺陷。它也可以用来寻找非功能性缺陷,例如负载限制的容差(如,系统支持10,000个并发用户)。

有两种边界值分析法:二值测试法、三值测试法。二值测试法,就是在边界上取两个值,分别在不同的等价类里面。例如,如果等价类的值域是1到10,步长是0.5,上界的边界值为10和10.5,下界的边界值为1和0.5。三值测试法,就是找到边界,边界值加上最小步长,以及边界值减去最小步长。在上面的例子中,上界为 9.5、10和10.5,下界为:1.5、1 和 0.5。采用二值测试法还是三值测试法取决于被测项的风险大小。风险高的采用三值测试法。

1.设计原则:

  • 如果输入条件规定了值的范围,按照二值法,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。例如:如果软件的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……,重量精确到小数点后2位”。设计基于边界值的测试用例,如果采用二值法,我们应取10、50,还应取9.99及50.01等。
  • 如果输入条件规定了值的个数,在二值法的情况,则用最大个数,最小个数,比最小个数少1,比最大个数多1的数作为测试数据。例如:一个输入文件可存储1~255个记录。测试用例可取1和255,还应取0及256等。
  • 尽量选择非常庞大的数据结构、列表和表格等作为边界值分析的数据。例如:那些能使内存溢出、文件和数据存储到达边界的数据,来检查测试对象在这种极端情形下的行为。
  • 对于列表和表格,空列表和满列表以及列表的第一个元素和最后一个元素都是应该作为分析的对象,因为测试它们常常可以发现由于编程错误而导致的失效。

2.设计步骤

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

  • 将软件的输入或者输出参数进行等价类划分
  • 在等价类的基础之上进行边界值分析。一般情况下,假如边界值已经由等价类划分覆盖,则可以不予考虑
  • 将边界值进行组合,作为测试用例的输入数据

3.渐进健壮

在利用边界值分析技术的时候,大部分情况面对的都是两个或两个以上的变量。那么情况比只有单个变量要复杂。同时,在进行了基本的边界值分析的基础上,可以根据情况适当增加更多的测试。图4.2.2-1展示的是两个变量X1,X2。它们的有效取值区间分别为[a,b],[c,d]。除了基准测试之外,还可以进行其他各种更进一步的测试。

2748f81af4c92581df467fa9568f380a.png

图4.2.2-2 边界值分析的渐进健壮

对于有n个输入变量的程序,基准测试边界值分析的测试用例个数为4n+1。

前面讲到的边界值测试分析采用了可靠性理论的单缺陷假设。

  • 优点:简便易行;生成测试数据的成本很低
  • 局限性:测试用例不充分;不能发现测试变量之间的依赖关系;不考虑含义和性质;
  • 结论:只能作为初步测试用例使用

容错性/健壮性是指在异常情况下,软件还能正常运行的能力。健壮性考虑的主要部分是预期输出,而不是输入。健壮性测试是边界值分析的一种简单扩展。除了变量的5 个边界分析取值还要考虑略超过最大值(max)和略小于最小值(min)时的情况。健壮性测试的最大价值在于观察处理异常情况,它是检测软件系统容错性的重要手段。如图4.2.2-1所示。

对于有n个输入变量的程序,健壮性测试的测试用例个数为6n+1。

对于有n个输入变量的程序,最坏情况测试的测试用例个数为5^n。

对于有n个输入变量的程序,健壮最坏情况测试的测试用例个数为7^n。

4.次边界

对系统越了解,你就越能发现系统的边界;对相关的背景知识越了解,你就能越能发现系统的“次边界”。次边界是由具体实现产生的,例如,计算机本身的限制,数据存储的限制,协议的限制,操作系统的限制等。例如,在32位操作系统中,整形的最大值65536,支持的内存最大4GB;电话线传输速率小于光纤传输速率等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值