软件测试规范(9)

发表于:2016-01-11来源:博客园作者:我思故我在点击数: 标签:软件测试规范
把数目极多的输入数据(有效的和无效的)划分为若干等价类。所谓等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都

  把数目极多的输入数据(有效的和无效的)划分为若干等价类。所谓等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等价于对这一类其它值的测试。因此,我们可以把全部输入资料合理划分为若干等价类,在每一个等价类中取一个数据做为测试的输入条件,就可用少量代表性测试数据,取得较好的测试效果。

  等价类的划分有两种不同的情况:

  有效等价类:是指对于程序规格说明来说,是合理的,有意义的输入数据构成的集合。利用它,可以检验程序是否实现了规格说明预先规定的功能和性能。

  无效等价类:是指对于程序规格说明来说,是不合理的,无意义的输入数据构成的集合。利用它,可以检查程序中功能和性能的实现是否有不符合规格说明要求的地方。

  在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。软件不能都只接收合理的数据,还要经受意外的考验,接受无效的或不合理的数据,这样获得的软件才能具有较高的可靠性。划分等价类的原则如下:

  按区间划分:如果可能的输入数据属于一个取值范围或值的个数限制范围,则可以确立一个有效等价类和两个无效等价类。

  按数值划分:如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。则可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。

  按数值集合划分:如果可能的输入数据属于一个值的集合,或者须满足“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。

  按限制条件或规则划分:如果规定了输入数据必须遵守的规则或限制条件,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

  ② 确立测试用例

  在确立了等价类之后,建立等价类表,列出所有划分出的等价类:

  再从划分出的等价类中按以下原则选择测试用例:

  设计尽可能少的测试用例,覆盖所有的有效等价类;

  针对每一个无效等价类,设计一个测试用例来覆盖它。

  4.4边界值分析

  边界值的分析是利用了一个规律,即程序最容易发生错误的地方就是在边界值的附近,它取决于变量的类型,以及变量的取值范围。比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等式中的任何一个大于号 “>”错写成大于等于号“≥”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。

  使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入等价类与输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试资料。一般对于有n个变量时,会有6n+1个测试用例,取值分别是min-1, min, min+1, normal, max-1, max,max+1的组合。

  边界值分析方法是最有效的黑盒测试方法,但当边界情况很复杂的时候,要找出适当的测试用例还需针对问题的输入域、输出域边界,耐心细致地逐个考虑。

  4.5错误推测法

  人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。

  错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。例如,在介绍单元测试时曾列出许多在模块中常见的错误,这些是单元测试经验的总结。此外,对于在程序中容易出错的情况,也有一些经验总结出来。例如,输入数据为0,或输出数据为0是容易发生错误的情形,因此可选择输入数据为0,或使输出数据为0的例子作为测试用例。又例如,输入表格为空或输入表格只有一行,也是容易发生错误的情况。可选择表示这种情况的例子作为测试用例。再例如,可以针对一个排序程序,输入空的值(没有数据)、输入一个数据、让所有的输入数据都相等、让所有输入数据有序排列、让所有输入数据逆序排列等,进行错误推测。

原文转自:http://www.uml.org.cn/Test/201511262.asp