大量实践表明,错误通常在输入定义域或输出值域的边界而不是内部发生,由此催发了采用边界值分析测试的方法。

  使用边界值分析方法设计测试用例重要的是确定边界情况,通常选取输入(输出)等价类的边界来测试。对于单个输入(输出)变量来说,以a<=x<=b为例,选取的边界值应为a,a+1,b-1,b四个值来保证边界值测试有效。当变量的取值空间更多样化时则需要更多的边界值来保证测试有效。

  而对于多个元素,则需要进行条件假设:

  单缺陷假设:软件失效极少是由多个缺陷同时发生引起的。在这种情况下,我们可以将每个变量分开处理,假设函数F(x,y)的变量x,y(整数)满足以下条件

  2<=x<=12

  3<=y<=9

  则边界值分析测试的用例为:

  {<2,6>,<3,6>,<11,6>,<12,6>,<7,3>,<7,4>,<7,8>,<7,9>,<7,6>,}

  每个变量有四组边界值测试,后一组为所有变量均为正常值的测试,总共会产生4n+1个测试用例。

  多缺陷假设:认为软件失效可能由两个或以上的缺陷同时发生引起。此时需要对所有变量的边界值进行测试,通常也称为坏情况测试。此时需采用各变量的笛卡尔积(叉乘)来计算测试用例数,如果各变量间相互独立或者松耦合则可以直接采用各变量所需的测试用例个数简单相乘。假设所有的变量均为单个区间输入,则终会生成5n个测试用例。以下是图表显示2个变量需要生成25个测试用例。

  边界值法在满足一定的条件下可以进行扩展(有些情况下是不能用的,比如说在C++等强制语言中扩展可能导致程序崩溃),除了取以上所说的边界值,还可以取略大于大值和略小于小值的取值,从而对程序的健壮性进行测试。此时单区间变量所需的边界值测试用例为6,单缺陷与多缺陷下的测试用例数变为6n+1和7n。