正交试验设计法(Orthogonal Experimental Design)是从大量的试验点中挑选出适量的、有代 表性的点,应用依据伽罗瓦理论导出的“正交表”,合理地安排试验的一种科学的试验设计方法, 是研究多因素、多水平的一种设计方法。它是根据正交性从全面试验中挑选出部分有代表性的点进 行试验,这些有代表性的点具备“均匀分散、齐整可比”的特点,正交试验是一种基于正交表的, 高效率、快速、经济的试验设计方法。 正交试验分析法包括以下常用术语:
(1)指标:通常把判断试验结果优劣的标准叫做试验的指标。 (2)因子:是指所有影响试验指标的条件。 (3)因子的状态:是指影响试验因子的因素,也称之为因子的水平。 正交表的表示形式: ( ) n r L m (1)n 表示因子数(Factors),即正交表中列的个数。 (2)m 表示水平数(Levels),也称为状态,任何单个因子能够取得的值的最大个数。 (3)r 表示行数(Rows),正交表中行的数量,即测试用例数。 行数 r=(m-1)×n+1,如 3 L4 (2 ) ,测试用例数 4=(2-1)×3+1,这是等水平的正交表。但对于非等 水平的正交表,其表示形式为 ( , ) n q r L m p ,那么行数 r=(m-1)×n+(p-1)×q+1,如 11 12 L36 (2 ,3 ) ,测试 用例 36=(2-1)×11+(3-1)×12+1。 在网站http://www.york.ac.uk/depts/maths/tables/orthogonal.htm中可以查找到相关的正交表。 正交试验分析法的步骤如下: (1)提取功能说明,构造因子-状态表。 分析规格说明书,通过规格说明书提取影响该功能的因子以及每个因子可能取值的最大数,即 因子状态。 (2)加权筛选,生成因素分析表。 计算各因子和状态的权值,删去一部分权值较小即重要性较小的因子或状态,使最后生成的测 试用例集缩减到允许范围。 (3)画出布尔图。 如果各个因子的状态数是不统一的,几乎不可能出现均匀的情况,必须先用逻辑命令来组合各 因子的状态,作出布尔图。 (4)查找最接近的相应阶数的正交表。 根据布尔图选择最接近的相应阶数的正交表,实际的测试工作中,因子和因子状态很难与正交 表完全符合,所以只能选择一个阶数最接近的正交表。 (5)将实际的因子和状态带入正交表中,得到最终的正交表。 选择好正交表后,应该将实际的因子和因子水平带入正交表中,此时可能出现以下三种情况: 第一种情况:因子的状态数正好和正交表的状态数相等,那么此时只需要直接替换正交表中的 值即可。 第二种情况:因子的状态数多于正交表中的状态数,那么此时需要先将多余的状态合并,带入 正交表中,然后再将合并的中间状态展开。 第三种情况:因子的状态数少于正交表中的状态数,那么只要将正交表中多出来的状态,使用 实际状态中的任意值替换即可。 (6)利用正交表每行数据构造测试用例。 在使用实际因子和状态替换过的正交表中的每一行,选择数据构造测试用例即可。 【实例】某数据库查询系统的测试。
步骤 1:分析规格说明书,生成因子-状态表,步骤 2:对因子—状态表进行加权筛选,本实例中加权筛选时,将打印方式和查询类别中的逻 辑符号删掉,不进行分析,加权筛选后的因素分析。使用字母表示因素分析表中各种 因子和状态。步骤 3:根据因子和状态分析表画出布尔图,步骤 4:选择正交表,本例选择的正交表为 3 L4 (2 ) ,把 21、22、23 作为因子,带入正交表中, 将正交表中的中间结点展开,步骤 5:根据每行写出测试用例,以第一个测试用例为例,完成测试用例的写作,以上步骤是使用手工进行构建正交表,实际测试过程中可以借助 Allpairs 工具来自动生成正交 表。使用 Allpairs 工具自动生成正交表的步骤如下:
(1)首先下载 Allpairs 工具,该工具是一款开源的工具。 (2)将因子和因子状态写入 Excel 文件中,(3)将 Excel 文件另存为以 Tab 键作为分隔符的文本文件(假设保存的文件名为 test.txt),保 存的路径为 Allpairs 工具所在的目录。 (4)运行 cmd 程序,进入 Allpairs 工具所在的目录,执行命令 appairs.exe test.txt > output.txt; output.txt 为正交表输出的文件,只有 TEST CASES 的内容是正交表的内容,PAIRING DETAILS 的内容不需要关注。