正交实验设计法(Orthogonal Experimental Design)是指从大量的实验点中挑选出适量的、有代表性的点,依据 Galois 理论导出“正交表”,从而合理地安排实验的一种实验设计方法。正交实验设计法是研究多因素多水平的一种实验方法,生物学中经常会用这种方法研究植物的生长状况,一株植物的生长状况会受到多种因素的影响,包括种子质量等内部因素,还包括阳光、空气、水分、土壤等外部因素。在软件测试中,如果软件比较复杂,也可以利用正交实验设计法设计测试用例对软件进行测试。 正交实验设计法包含 3 个关键因素,具体如下所示。
(1)指标:判断实验结果优劣的标准。
(2)因子:因子也称为因素,是指所有影响实验指标的条件。
(3)因子的状态:因子的状态也叫因子的水平,它指的是因子变量的取值。
利用正交实验设计法设计测试用例时,可以按照如下步骤进行。
(1)提取因子,构造因子状态表 分析软件的规格需求说明得到影响软件功能的因子,确定因子可以有哪些取值,即确定 因子的状态。
(2)加权筛选,简化因子状态表
在实际软件测试中,软件的因子及因子的状态会有很多,每个因子及其状态对软件的作 用也大不相同,如果把这些因子及状态都划分到因子状态表中,最后生成的测试用例会相当 庞大,从而影响软件测试的效率。因此需要根据因子及状态的重要程度进行加权筛选,选出 重要的因子与状态,简化因子状态表。
(3)构建正交表,设计测试用例
正交表的表示形式为 Ln(t c)。
·L 表示正交表。
·n 为正交表的行数,正交表的每一行可以设计一个测试用例,因此行数n 也表示可以设计的测试用例的数目。
·c 表示正交实验的因子数目,即正交表的列数,因此正交表是一个n 行c 列的表。
·t 称为水平数,表示每个因子能够取得的最大值,即因子有多少个状态。
实例:微信 Web 页面运行环境正交实验设计
微信是一款手机 App 软件,但它也有 Web 版微信可以登录,如果要测试微信Web 页面运行环境,需要考虑多种因素。在众多的因素中,我们可以选出几个影响比较大的因素,如服务器、操作系统、插件和浏览器。对于选取出的 4 个影响因素,每个因素又有不同的取值,同样,在每个因素的多个值中,可以选出几个比较重要的值,具体如下。
·服务器:IIS、Apache、Jetty。
·操作系统:Windows 7、Windows 10、Linux。
·插件:无、小程序、微信插件。
·浏览器:IE 11、Chrome、FireFox。
对于多因素多水平的测试可以选择正交实验法,正交实验法的第一步就是提取有效因子。由上述分析可知,微信 Web 版运行环境正交实验中有 4 个因子:服务器、操作系统、插件、浏览器,每个因子又有 3 个水平,因此该正交表是一个 4 因子 3 水平正交表,在正交表查询网站查询可得其n 值为9,即该正交表是一个 9 行 4 列的正交表。如果按照上述所列顺序,从左至右为每个水平编号0、1、2,则生成的正交表如表 1 所示。
表 1 中的水平编号分别代表因子的不同取值,将因子、状态映射到正交表,可生成具体的测试用例,如表 2 所示。
表 2 中每一行都是一个测试用例,即微信 Web 页面的一个运行环境。对于该测试案例,如果使用因果图法要设计 3 4=81 个测试用例,而使用正交实验设计法,只需要9 个测试用例就可以完成测试。
正交实验设计法虽然高效,但并不是每种软件测试都适用,在实际测试中,正交实验设计法其实使用比较少,但读者要理解这种测试用例的设计模式及思维方式。
实验内容: 某企业内部要进行薪资核算,
功能描述如下:
学历分为大专、本科、硕士;
职称分为初级、中级、高级;
工作年限分为 1~3 年、3~5 年、5 年以上。
要求使用正交实验法设计测试用例。
根据上述功能说明,列出薪资构成因素表,如表 3 所示。
根据以上内容,为了方便测试的设计,构造因素状态表,如表 4 所示。
测试对象为 3 因素(A、B、C),均为 3 状态,因此,应采用 3 因素3 水平正交表。但是通过查询正交表查询网站发现并没有对应的正交表,因此当水平数(变量的取值)与某正交表相同,但因素数(变量)却不相同,则取因素数最接近但略大于实际值的正交表表,套用之后,最后一列因素去掉即可,所以应使用 L9(33)正交表,如表 5 所示。
从表 5 我们可以看出,因素的每种状态组合都是唯一的,每个因素出现的次数是相同的,符合正交表的原则。接下来用每一个字母代号对应的状态情况代替字母代号,完成测试用例设计的因素和状态的组合,如表 6 所示。
表 6 中,每一行代表一个测试用例。