在软件测试中,有几种常用的测试用例设计方法,每种方法都有其特定的应用场景和优缺点。以下是几种常见的测试用例设计方法:
正交表的表现形式可描述如下:
L 行数(水平数因素数)
行数(Runs):正交表中行的个数,也就是实验的次数,也指测试用例的个数。
因素数(Factors):指正交表中列的个数。
水平数(Levels):任何单个因素能够取得的值的最大个数。
如何选择正交表是一个关键问题。首先考虑因素的个数,其次考虑因素水平的个数,最后考虑正交表的行数,且选择符合条件的行数最少的一个正交表进行套用。笔者会通过案例详细讲解它的套用方法。
读者可能会有疑问,正交实验法是根据正交性从全面实验中挑选出部分有代表性的点进行实验,它的选择原理是什么呢?为什么这个表格可以代表所有的实验可能呢?主要是因为选择出来的这些有代表性的点具备了“均匀分散、齐整可比”的特点。
整齐可比性: 在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在实验中每个因素的每个水平与其他因素的每个水平参与实验的几率是完全相同的,这就保证在各个水平中最大程度的排除了其他因素水平的干扰。因而,能最有效地进行比较和做出展望,容易找到好的实验条件。
均衡分散性: 在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了实验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的实验条件。
以上特点充分体现了正交表的两大优越性,通俗地说,每个因素的每个水平与另一个因素的每个个水平都能够出现一次组合,这就是正交性。使用正交实验法设计测试用例的步骤如下:
进入下一章节
-
等价类划分法(Equivalence Partitioning):
- 根据输入域的特性,将输入数据划分为若干个等价类,然后从每个等价类中选择一个代表性的值作为测试用例。
- 这种方法可以有效地减少测试用例的数量,同时覆盖了各个等价类的情况。
- 例如,对于一个要求输入 1 到 100 的数字的功能,可以选择 1、50、100 作为测试用例,分别代表小于、中间和大于范围的情况。
-
正交法
交实验法是套用正交表来设计测试用例的方法。
那什么是正交表呢?古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方,正交表由此演化而来。正交表是通过运用数学理论在拉丁方和正交拉丁方的基础上,从大量的(实验)数据中挑选合适的、有代表性的条件组合构造而成的规格化表格。
正交实验法是一种基于正交表的、高效率、快速、经济的实验设计方法,它研究的“多因素多水平”的情况,然后套用正交表来随机地产生用例(用例之间没有主次之分),是一种提高测试覆盖率的简单易用的方法。
因素(Factor):在一项实验中,凡是被考查的变量就称为因素。
水平(Level):在实验范围内,因素被考查的值称为水平。
前文有提到,正交实验法是套用正交表来随机地产生用例的一种方法。一些测试新人容易陷入“研究如何得出正交表”的错误思维,在此提醒一下,正交表格是无数科学家的智慧凝聚而成,读者无需去深究正交表是如何得出的,我们在设计测试用例的时候直接去套用对应的表格即可。
查询正交表的方式有 2 种:
- 为方便读者使用,本书在附录 1 中列出了一些常用的正交表格。可通过附录查询适合的正交表。
- 通过链接查询:http://support.sas.com/techsup/technote/ts723_Designs.txt
- 确定有哪些因素?
- 确定每个因素有几个水平?
- 选择合适的正交表。
- 把变量的值映射到表中。
- 加上认为可疑且没有在表中出现的组合。
- 把每一行的各因素水平的组合作为一个测试用例
-
边界值分析法(Boundary Value Analysis):
- 在等价类划分的基础上,选择处于边界值的数据作为测试用例,以验证系统对边界情况的处理能力。
- 通常会选择边界值、边界值的上下限以及边界值附近的值作为测试用例。
- 这种方法有助于发现输入数据边界处的错误,是一种常用的测试用例设计方法。
- 场景法
场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。我们知道,现在的软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想已被引入到软件测试中,生动的描述出事件触发时的情景。提出这种思想的是 Rational 公司,在 RUP2000 中文版当中有其详尽的解释和应用。
场景法一般包含基本流和备选流,从一个流程开始,通过描述经过的路径来确定测试用例的过程,经过遍历所有的基本流和备选流来完成整个场景。我们通常以正常的用例尝尽刚开始分析,再着手分析其他的场景。
基本流也叫有效流或正确流,主要是模拟正确的业务操作过程的情景。
备选流也叫无效流或错误流,主要是模拟错误的业务操作过程的情景。
基本流一般采用直黑线表示,是经过用例的最简单路径,无任何差错,程序从开始直接执行到结束;备选流则采用不同颜色表示。一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不再加入到基本流中,备选流一般代表了各种错误情况。
下图展示了一个场景的示例图,在下图中,有一个基本流和 4 个备选流。每个经过的可能路径可以确定不同的用例场景。从“用例开始”到“用例结束”,遍历所有的路径,可以确定以下 8 个用例场景。(为了方便,场景 5、6、8 只考虑了备选流 3 循环执行一次的情况。)
场景 1:基本流
场景 2:基本流 备选流 1
场景 3:基本流 备选流 1 备选流 2
场景 4:基本流 备选流 3
场景 5:基本流 备选流 3 备选流 1
场景 6:基本流 备选流 3 备选流 1 备选流 2
场景 7:基本流 备选流 4
场景 8:基本流 备选流 3 备选流 4