当前位置 工程之家 软件工程 正文 下一篇:

典型的黑盒测试方法:等价分类法

等价类划分是一种典型的黑盒测试方法。它是将程序的输入域划分为数据类,以便导出测试用例。理想的测试用例是一个用例可以发现一类错误,等价类划分试图定义一个测试用例,以发现各类错误,从而减少测试用例数。

如果对象由具有对称性、传递性或自反性的关系连接,就意味着存在等价类。因此,等价类是指某个输入域的子集合。在该集合中,各输入数对揭露程序中的错误都是等效的。如果将某个等价类的一个输入条件作为测试数据进行测试并查出了错误,那么使用这一等价类中的一个输入条件进行测试也会查出同样的错误;反之,若使用某个等价类中的一个输入条件作为测试数据进行测试没有查出错误,则使用这个等价类中的其他输入条件也同样查不出错误。因此,把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性数据,取得较好的测试效果。

等价类划分要考虑以下两种情况:

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

●无效等价类。对于程序的规格说明来说,无效等价类是不合理的、无意义的输入数据构成的集合。这一类测试用例主要用于检测程序中的功能和性能是否有不符合规格说明要求。

在设计测试用例时,必须同时考虑有效等价类和无效等价类的设计,只有经过这样测试的软件才能达到较高的可靠性。

(1)确定有效等价类

划分等价类是使用等价类的关键。以下结合具体实例给出几条确定等价类的原则。

●如果输入条件中规定了取值范围或值的个数,则可以确立一个有效等价类和两个无效等价类。例如,在程序的规格说明中,若对输入条件有一个规定:

“…项数可以从1到999…”

则有效等价类是“1<=项数<=999”,两个无效等价类是“项数<1”或“项数>999”。

●如果输入条件中规定了输入值的集合,或者是规定了“必须如何…”的条件,则可确立一个有效等价类和一个无效等价类。例如,若在Pascal语言中对变量标识符规定为“以字母打头的…串”,那么所有以字母打头的构成有效等价类,而不以字母打头的归于无效等价类。

●如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。

●如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理,则可以每个输入值确定一个有效等价类,并针对这组值确立一个无效等价类,即所有不允许的输入值的集合。

●如果给定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如,Pascal语言规定“一个语句必须以分号‘;’结束”,据此就可以确定一个有效等价类“以‘;’结束”,若干个无效等价类“以‘;’结束”“以‘,’结束”“以‘’结束”“以LF结束”等等。

●如果确知已经划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。

(2)确立测试用例

在确立了等价类之后,建立等价类表,列出所有划分出的等价类,再从划分出的等价类中按以下原则选择测试用例:

●为每一个等价类规定一个唯一的编号。

●设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。

●设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。之所以要这样做,是因为在某些程序中对某一输入错误的检查往往会屏蔽对其他输入错误的检查。因此必须针对每一个无效等价类,分别设计测试用例。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/535.html
返回顶部