更新时间:2022年03月09日10时22分 来源:传智教育 浏览次数:
等价类划分法是一种常用的黑盒测试方法,它主张从大量的数据中选择一部分数据用于测试,即尽可能使用最少的测试用例覆盖最多的数据,以发现更多的软件缺陷。本节将针对等价类划分法的概念及使用进行详细的讲解。
一个程序可以有多个输入,等价类划分就是将这些输入数据按照输入需求进行分类,将它们划分为若干个子集,这些子集即为等价类,在每个等价类中选择有代表性的数据设计测试用例。这种方法类似于学生站队,男生站左边,女生站右边,老师站中间,这样就把师生群体划分成了3个等价类。使用等价类划分法测试程序需要经过划分等价类和设计测试用例2个步骤,具体介绍如下。
1、划分等价类
等价类可分为有效等价类与无效等价类,其含义如下所示。
(1)有效等价类:有效等价类就是有效值的集合,它们是符合程序要求、合理且有意义的输入数据。
(2)无效等价类:无效等价类就是无效值的集合,它们是不符合程序要求、不合理或无意义的输入数据。
了解了有效等价类与无效等价类,那么如何划分等价类呢?一般在划分等价类时需要遵守以下原则。
(1)如果程序要求输入值是一个有限区间的值,则可以将输入数据划分为1个有效等价类和2个无效等价类,有效等价类为指定的取值区间,两个无效等价类分为有限区间两边的值。例如,某程序要求输入值x的范围为[1,100],则有效等价类为1≤x≤100,无效等价类为x<1和x>100。
(2)如果程序要求输入的值是一个“必须成立”的情况,则可以将输入数据划分为1个有效等价类和1个无效等价类。例如,某程序要求密码正确,则正确的密码为有效等价类,错误的密码为无效等价类。
(3)如果程序要求输入数据是一组可能的值,或者要求输入值必须符合某个条件,则可以将输入的数据划分为1个有效等价类和1个无效等价类。例如,某程序要求输入数据必须是以数字开头的字符串,则以数字开头的字符串是有效等价类,不是以数字开头的字符串是无效等价类。
(4)如果在某一个等价类中,每个输入数据在程序中的处理方式都不相同,则应将该等价类划分成更小的等价类,并建立等价表。
同一个等价类中的数据发现程序缺陷的能力是相同的,如果使用等价类中的一个数据不能捕获缺陷,那么使用等价类中的其他数据也不能捕获缺陷;同样,如果等价类中的一个数据能捕获缺陷,那么该等价类中的其他数据也能捕获缺陷,即等价类中的所有输入数据都是等效的。
正确地划分等价类可以极大地降低测试用例的数量,测试会更准确有效。划分等价类时不单要考虑有效等价类,还要考虑无效等价类,对于等价类要认真分析、审查划分,过于粗略的划分可能会漏掉软件缺陷,如果错误地将两个不同的等价类当作一个等价类,则会遗漏测试情况。例如,某程序要求输入取值范围在1~100之间的整数,若一个测试用例输入了数据0.6,则在测试中很可能只检测出非整数错误,而检测不出取值范围的错误。
2、设计测试用例
确立了等价类之后,需要建立等价类表列出所有划分出的等价类,用以设计测试用例。基于等价类划分法的测试用例设计步骤如下所示。
(1)确定测试对象,保证非测试对象的正确性。
(2)为每个等价类规定一个唯一编号。
(3)设计有效等价类的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,直到测试用例覆盖了所有的有效等价类。
(4)设计无效等价类的测试用例,使其覆盖所有的无效等价类。