摘要:软件测试的类型通常分为白盒测试和黑盒测试,其中基于等价类的划分法与基于判定表的测试法都是较为典型和实用的黑盒测试技术方法。在实际工作中,为了使测试用例的覆盖更加全面,测试目的更加明确,通常不仅仅局限于某一种测试手段。针对等价类和判定表这两种方法各自的特点,可以将两者有机结合,通过对输入条件进行等价类划分,对输出行为进行判定表列举,用综合的手段进行软件测试工作,从而达到使测试用例的设计覆盖全面、条理清晰的目的。

  关键词:等价类;判定表;软件测试

  1、概述

  软件测试的类型一般来说,可以划分为白盒测试类型和黑盒测试类型。黑盒测试针对的主要是软件功能的正确性和完整性。黑盒测试的理念,是将程序内部的逻辑结构看成一个黑盒子,单纯依据给定的软件需求规格说明中约定的功能要求,设计测试输入数据,观察测试输出结果,通过结果的正确性来验证软件的正确性。黑盒测试的方法比较多,其中较为典型的是等价类划分法和判定表驱动法,实际工作中可以将两种方法有机结合进行软件测试。

  2、等价类划分法

  等价类划分法的一般定义,是依据程序的实际情况,把测试输入划分成具有代表性的几种分类,类与类之间彼此不相交;然后从每个分类中选取部分数据作为测试用例的输入。这其中选取的输入数据在测试中的作用等价于该类中的其他数据,因此对每一个特定的类来说,不需要将该类中所有的输入都作为测试输入,仅选取本类中具有代表性的输入即可覆盖某一方面的验证,大大减少了测试用例的数量,提高了测试效率。

  进行等价类划分时须将对应输入分为有效等价类和无效等价类。有效等价类是指符合程序需求规格说明描述,合理可行且有意义的输入数据所构成的集合。通过有效等价类的输入,可以测试程序是否实现了需求规格说明中所要求实现的功能项。无效等价类是有效等价类的补集,与有效等价类正好相反,通过无效等价类的输入,可以测试程序的功能实现是否会出现意外情况。两种等价类必须同时被考虑,以确保软件的可靠性。

  根据通用的定义,可以根据以下原则进行等价类划分:

  1)如果输入条件规定了输入值的强制集合,则可确定一个有效等价类和一个无效等价类;

  2)如果输入条件规定了取值范围,或者规定了所取值的个数,则可确定一个有效等价类和两个无效等价类;

  3)如果规定了一组输入数据的数量为n,且程序需对每个输入值分别处理,则可确定n个有效等价类和一个无效等价类;

  4)如果输入条件为布尔值,则可确定一个有效等价类和一个无效等价类。

  5)如果输入数据有必须遵守的规则,则可确定一个遵守规则的有效等价类和若干个从不同角度违反规则无效等价类;

  6)已知的大等价类可以根据实际情况进一步划分为更小的等价类。

  等价类一经确定,可以构造等价类划分表。然后为每一个等价类规定一个的编号,并设计测试用例来 覆盖所有的等价类。用例设计原则为:1个用例应覆盖尽可能多的有效等价类,直到所有有效等价类都被覆盖为止;1个用例仅覆盖一个尚未被覆盖的等价类,直到所有无效等价类都被覆盖为止。

  3、判定表驱动法

  判定表也叫决策表,在所有的功能性测试方法中,基于判定表的测试方法是严格的,因为判定表具有逻辑严格性。从20世纪60年代初开始,判定表一直被用来表示和分析复杂的逻辑关系,作为编写程序的辅助工具。判定表很适合描述不同条件集合下采取行动的若干组合情况。

  判定表由4个部分组成,分别为条件桩、动作桩、条件项和动作项。其中条件桩列出了各种可能的单个条件,动作桩列出了可能采取的单个操作,条件项列出了所给条件的多组取值组合,动作项列出了在给定条件项的各种取值情况下对应采取的动作。