等价类测试用例设计方法是一种典型的黑盒测试设计方法,使用该方法主要对测试子项进行测 试规格分析,进而得到测试用例,不需要对系统内部处理进行深入了解,它也是目前测试设计过程 中使用最普遍的一种方法。采用等价类设计方法是将系统的输入域划分为若干部分,然后从每个部 分选取少数代表性数据进行测试,这样可以避免穷举产生的大量用例。 等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露软件中的错误都是等 效的。在测试设计中合理地假设,假设测试某等价类的代表值就等于该等价类子集合中的其他值的 测试。因此可以将全部输入数据进行合理的划分,划分为若干等价类,在每一个等价类中取一个数 据作为测试的输入条件,这样可以使用少量代表性测试数据取得较好的测试结果。 等价类通常可以划分为有效等价类和无效等价类两种。
(1)有效等价类:是指对于系统的规格说明书是合理的、有意义的输入数据构成的信息集合。 利用有效等价类可以检验程序是否实现了规格说明书中所规定的功能和性能。 (2)无效等价类:是指对于系统的规格说明书是不合理的或无意义的输入数据构成的信息集合。 设计测试用例时需要充分考虑这两种等价类,需要验证系统不但能正确地接收合理的数据,还 能处理无效数据。 使用等价类测试用例设计方法的步骤如下:
步骤 1:划分等价类。 划分等价类可以参考以下几方面原则: (1)在输入条件规定了取值范围或值的个数时,则可以确定一个有效等价类和两个无效等 价类。(2)在输入条件规定了输入值的集合或者规定了必须在什么条件的情况下,可以确定一个有 效等价类和一个无效等价类。 (3)在输入条件是一个布尔值的情况下,可以确定一个有效等价类和一个无效等价类。 (4)在规定了输入数据的一组值假定 N 个,并且程序要对输入值分别处理的情况下,可以确 定 N 个有效等价类和一个无效等价类。 (5)在规定了输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等 价类。(6)在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,应该再将该等价类 进一步划分,划分为更小的等价类。
步骤 2:根据划分的等价类确定测试用例。 等价类测试用例设计方法虽然对输入的数据域进行了全面的分类,但在工作中使用等价类分析 法存在以下问题: (1)等价类是以效果来换取效率,等价类细分程度和等价类组合程度取决于进度和人力资源 情况。(2)等价类的出发点是考虑设计用例把输入的每种情况都有用例测试到,就认为达到了充分 性,但对于各情况的组合并没有进行充分的考虑。 (3)等价类划分的优劣,关键是需要把输入背后隐藏的信息从各个角度进行分类。 【实例】使用等价类测试用例分析方法,分析保险费率计算的功能。 某保险公司承担人寿保险已经很多年,该公司保费计算方式为投保额×保险率,保险率受点数 的影响,点数不同保险率也不同,10 点及以上的费率为 0.6%,10 点以下的费率为 0.1%。 保险率和以下参数关系如下,见表 8-2。 年龄:数字 0~150 岁; 性别:字符组合,区分大小写(如 FEMALE/MALE); 婚姻:字符组合(已婚/未婚); 抚养人数:数字 1~9 人。
等价类测试用例设计方法分析步骤如下: 步骤 1:确定输入。 输入:年龄、性别、婚姻、抚养人数 内部数据结构:点数 设计用例时,除了考虑以上输入外,还要考虑内部数据结构“点数”,需要构造相关输入数据 覆盖“点数”的等价类。 步骤 2:确定每个输入项的输入条件。 年龄:非负整数、0~150、必填; 性别:字符组合、区分大小写、MALE 或者 FEMALE、必填; 婚姻:字符组合、已婚或者未婚、必填; 抚养人数:正整数、1~9、选填。
数据覆盖等价类应该依据以下原则: (1)每个输入值应该尽量多地覆盖该输入没有覆盖的其他有效等价类。 (2)每个输入值只能覆盖该输入所对应的一个无效等价类。
设计用例覆盖的依据如下: (1)设计测试用例时,每个测试用例尽可能多地覆盖还没有覆盖的有效值。 (2)设计测试用例时,每个测试用例只覆盖一个无效值。