3.等价类划分法和边界值分析法的组合

  数据测试是功能测试的主要内容,或者说功能测试主要手段之一是借助数据的输入/输出来判断功能能否正常运行。所以在测试用例的黑盒设计方法中,常用的方法是等价类划分法、边界值分析法。

  等价类划分方法的基本思想是设想用一组有限的数据去代表近似无限的数据,是基于对输入或输出数据的评估将数据划分为两个或更多子集(如有效的和无效的数据集),从每个等价类中选择一定的代表值进行测试,来代表整个数据集的输入/输出。

  边界值分析法是在某个变量范围的边界上,验证独立的输入/输出是否正确的测试方法。因为实践证明,程序往往在输入/输出数据边界更容易发生错误,所以检查边界情况的测试用例是比较高效的,可以更快地查出错误。

  但是,仅仅测试边界数据是不够的,正常区域内的数据也是需要测试的,而且对于那些非法的、无效的数据也需要测试,以测试系统的容错性。所以,必须采用等价类划分方法来对边界值分析法的补充。从另一个方面看,要划分数据的等价类,首先是要确定数据边界,也是找出数据等价类的边界。所以,在实际测试用例设计工作中,将边界值分析法和等价类划分方法结合起来,先用边界值分析法确定数据边界,再用等价类划分方法得到等价的数据类,从而有效地设计出精而少的测试用例。

  让我们看一个简单的例子。假如一个输入数据是一个有限范围的整数,如学生成绩管理系统中的学生分数的输入(不计小数点)。这时,我们可以确定输入数据的小值Nmin和大值NMax,则有效的数据范围是Nmin?N?NMax,如学生分数的输入范围是0?N?100,这个范围是有效数据区域。除此之外,是无效数据区域,即N<Nmin或N>NMax,如N<0或N>100。这时测试的数据从近乎无限的数据简化为5个输入数据,是:

  *  边界值两个:Nmin和NMax,如0和100

  *  有效数据的等价输入值 Ni, 如75

  *  无效数据的等价输入值两个:NLm1和NLm2, 如 -999和 999

  为了得到更好的覆盖率,可以在靠近边界取一些值,共四个,即:

  Nmin +1,Nmin -1,NMax +1,NMax -1,如-

  1,1,99,101

  所以一个有效的测试数据集合是{-1,0,1,99,

  100,101};更完整的测试数据集合是{-999,-1,

  0,1,75,99,100,101,999}。

  4.因果图法和组合分析法

  因果图法和组合分析可以看作测试用例黑盒设计方法的综合方法。因果图法是一种利用图解法分析输入的各种组合情况,生成判定表,从而设计测试用例的方法,它适合于检查程序输入条件的各种情况的组合。我们知道,即使各种单个输入条件可能出错的情况已经被排除了,但多个输入情况组合起来还是可能会出错。检验各种输入条件的组合并非一件很容易的事情,因为即使将所有的输入条件划分成等价类,它们之间的组合情况也相当多,因此,必须需要考虑采用一种适合于多种条件的组合,相应能产生多个动作的形式来进行测试用例的设计,这是因果图法。

  而组合分析是一种基于每对参数组合的测试技术,主要考虑参数之间的影响是主要的错误来源和大多数的错误起源于简单的参数组合。

  5.功能图法

  功能图法是一种黑盒和白盒混合用例设计方法,在功能图方法中,要用到逻辑覆盖和路径测试的概念和方法,这属于白盒设计方法;而确定输入数据序列以及相应的输出数据,则是黑盒设计方法。

  我们知道,每个程序的功能通常由静态说明和动态说明组成,
动态说明描述了输入数据的次序或者转移的次序;静态说明描述了输入条件和输出条件之间的对应关系。对于比较复杂的程序,由于大量的组合情况的存在,如果我们仅仅使用静态说明来组织测试往往是不够的,必须还要动态说明来补充。功能图法是因此而产生的一种测试用例设计方法。

  功能图法是使用功能图形式化地表示程序地功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型组成。其中,状态迁移图用于表示输入数据序列以及相应的输出数据,由输入和当前的状态决定输出数据和后续状态; 逻辑功能模型用于表示再状态输入条件和输出条件之间的对应关系。逻辑功能模型只适合于描述静态说明,输出数据仅仅由输入数据决定。测试用例测试由测试中经过的一系列的状态以及在每个状态中必须依靠输入/输出数据满足的一对条件组成。