携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情
1 基础概念理论
正交法的核心就是用最小的测试用例获得最大的测试覆盖率。当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。
正交表是一种特制的表格,一般用公式表示。
- L代表是正交表,n代表试验次数或正交表的行数,
- k代表因素,在测试中表示输入的参数
- m表示每个因素包含的取值个数(各因素的水平数,即各因素的状态数)
- 且有
n=k*(m-1)+1
即行数=变量*(变量取值-1)+1
,也表示测试用例的数量。
基于正交法设计测试用例可以参照下述步骤:
- 需求分析
- 确定因素和水平,也就是需要确定有多少输入参数,每个参数对应的取值又有多少
- 确定采用的正交表,也可以借助工具直接生成,比如allpairs
- 如果采用了正交表,需要将正交表中的数字替换成数字所对应的值
- 设计测试用例,一行就是一条测试用例
2 案例
案例1:窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值 字体:仿宋、楷体、华文彩云 字符样式:粗体、斜体、下划线 颜色:红色、绿色、蓝色 字号:20号、30号、40号
首先进行需求分析,通过分析需求可以发现,因素(输入条件)有四个,每个输入条件的水平(参数取值)也有三个,就可以确定我们需要的是四因素三水平
的正交表。因为正交表中的数据都是数字代替,因此需要将正交表中的数字替换成案例中的每个输入条件的具体值。
下图是数字和输入条件对应值的关系。
根据上述数字和取值的对应关系,就可以生成最后的正交表,每一行对应一条测试用例。
列号 | 字体 | 字符样式 | 颜色 | 字号 |
---|---|---|---|---|
试验号 | ||||
1 | 仿宋 | 粗体 | 红色 | 20号 |
2 | 仿宋 | 斜体 | 绿色 | 30号 |
3 | 仿宋 | 下划线 | 蓝色 | 40号 |
4 | 楷体 | 粗体 | 绿色 | 40号 |
5 | 楷体 | 斜体 | 蓝色 | 20号 |
6 | 楷体 | 下划线 | 红色 | 30号 |
7 | 华文彩云 | 粗体 | 蓝色 | 30号 |
8 | 华文彩云 | 斜体 | 红色 | 40号 |
9 | 华文彩云 | 下划线 | 绿色 | 20号 |
案例2:基于allpairs工具,生成正交表。
假设有一个用户筛选功能,有3个输入分别是体型、年龄段、性别, 体型有3个取值:胖、适中、瘦; 年龄段有3个取值:老人、青年、儿童; 性别有2个取值:男,女; 请设计测试用例。
设计测试用例的步骤和案例1基本一致,唯一不同的是在选择正交表这一步,本案例借助allpairs工具生成正交表。
allpairs生成正交表的方法如下:
- 首先将需求分析中的输入条件和取值在excel表格中写好
- 第二步,将表格中的数据复制到txt文件中,复制时不要改动格式。
- 保存之后,打开命令行,进入allpairs目录,运行命令
allpairs.exe test.txt > result.txt
,将test.txt
中的数据生成的正交表将会导出到allpairs目录中的result.txt
中。每一条数据表示一条测试用例。