
广泛的测试实践表明,在输入或输出数据范围的边界上会发生许多错误,因此针对各种边界条件设计测试用例有助于揭露程序中的错误.
边界值分析方法是等效类分析方法的补充. 边界值分析方法使用每个输入等价类的最小值,一个稍大于最小值的值,一个正常值,一个略小于最大值的值以及一个最大值的值.
1. “单一失败”的假设
边界值分析的另一点是基于一个非常重要的假设“单个故障”,也就是说,故障问题通常不是由两个(或多个)故障同时引起的. 因此,构造边界值测试用例的方法是让一个变量获取边界值,让其他变量获取正常值.
例如,函数F(x1,x2)a≤x1≤b,c≤x2≤d,则边界值应为:

因此,对于具有n个变量的函数,将生成4n + 1个不同的测试用例.

2. 健壮性测试
鲁棒性测试是边界值分析的简单扩展. 除了分析变量的五个边界值外,下一步还考虑了最大值稍大且小于最小值的情况. 然后,函数F(x1,x2)的边界值的值应为:

边界值分析的大多数属性直接适用于鲁棒性测试. 对于健壮性测试,最重要的不是输入三角形边界值测试用例,而是预期的输出.
3. 最坏情况的测试
如前所述,边界值分析基于可靠性理论中的单个失效假设. 如果搁置这一假设,则意味着我们需要检查多个变量同时取极值的情况. 在电路分析中,这称为“最坏情况分析”,并且此思想在此处也用于构造最坏情况的测试用例. 对于每个变量,首先构造一组5个最小,最小大于,正常,小于最大和最大的边界值,然后计算这些集合的笛卡尔积. 对于具有n个变量的函数,最坏情况的测试将构造5n个测试用例.
函数F(x1,x2)的边界值应如下:


最坏情况的测试适用于各种物理量之间存在大量相互作用且功能失效的成本极高的情况.
当对测试有特别极端的要求时,应使用最坏情况下的耐用性测试. 这是使用健壮性测试的7个值的集合来做笛卡尔乘积以获得7n个测试用例. 函数F(x1,x2)的边界值应为:

4. 特殊价值测试
特殊值测试可能是使用最广泛的功能测试方法,也是最直观和最难统一的方法. 在特殊价值测试中,测试人员会使用他们的背景知识,在类似程序中积累的经验以及对软件“软点”的知识来设计测试用例.
5. 边界值分析法设计测试用例的原则

1)如果输入条件指定了一个值范围,则应将刚达到该范围边界的值和刚超出该范围边界的值作为测试输入数据.
2)如果输入条件指定了值的数量,则将最大数量,最小数量,小于最小数量的一个和大于最大数量的一个用作测试数据.
3)将规则1)和2)应用于输出条件,即设计测试用例,以使输出值达到边界值和边界值.
例如三角形边界值测试用例,程序的规范要求计算“ 0至1165.25元的月度保险扣除额”,其测试用例可以为0.00和1165.24,或0.01和1165.26.
另一个示例是属于信息检索系统的程序,该程序一次需要“显示至少1个和最多4个信息摘要”. 此时,我们应考虑的测试用例包括1和4,还应包括0和5.
4)如果程序规范给出的输入域或输出域是有序集合,则应选择集合的第一个元素和最后一个元素作为测试用例.
5)如果在程序中使用了内部数据结构,则应选择该内部数据结构边界上的值作为测试用例.

6. 例子
NextDate函数包含三个变量: 月(月),日(日期)和年(年). 函数的输出是输入日期之后的第二天. 例如,输入为2007年9月9日,函数的输出为2007年9月10日. 输入变量month,day和year均为整数值并满足以下条件:
1)1≤月≤12
2)1≤天≤31
3)1812≤年份≤2012
最坏情况下的测试用例:

7. 边值分析方法的局限性
边界值分析方法非常适用于多个变量彼此独立并且都代表实际物理量的情况. 例如: NextDate函数中没有2月和leap年的测试. 实际上,变量月,日和年之间存在特殊的依存关系. 边界值分析假定每个变量应该完全独立.
变量的物理指标同样重要. 如果某个变量表示特定的物理量,例如温度,压力,速度等,则此量的物理边界非常重要.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-233774-1.html
因此广得民心
2的不会卡