软件测试 - 测试用例设计方法之正交法

1,107 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情

1 基础概念理论

正交法的核心就是用最小的测试用例获得最大的测试覆盖率。当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。

正交表是一种特制的表格,一般用公式Ln(mk)Ln(m^k)表示。

  • L代表是正交表,n代表试验次数或正交表的行数,
  • k代表因素,在测试中表示输入的参数
  • m表示每个因素包含的取值个数(各因素的水平数,即各因素的状态数)
  • 且有n=k*(m-1)+1行数=变量*(变量取值-1)+1,也表示测试用例的数量。

基于正交法设计测试用例可以参照下述步骤:

  • 需求分析
  • 确定因素和水平,也就是需要确定有多少输入参数,每个参数对应的取值又有多少
  • 确定采用的正交表,也可以借助工具直接生成,比如allpairs
  • 如果采用了正交表,需要将正交表中的数字替换成数字所对应的值
  • 设计测试用例,一行就是一条测试用例

2 案例

案例1:窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值 字体:仿宋、楷体、华文彩云 字符样式:粗体、斜体、下划线 颜色:红色、绿色、蓝色 字号:20号、30号、40号

首先进行需求分析,通过分析需求可以发现,因素(输入条件)有四个,每个输入条件的水平(参数取值)也有三个,就可以确定我们需要的是四因素三水平的正交表。因为正交表中的数据都是数字代替,因此需要将正交表中的数字替换成案例中的每个输入条件的具体值。

下图是数字和输入条件对应值的关系。

image-20220731102608748.png 根据上述数字和取值的对应关系,就可以生成最后的正交表,每一行对应一条测试用例。

列号字体字符样式颜色字号
试验号
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表格中写好

image-20220731104433667.png

  • 第二步,将表格中的数据复制到txt文件中,复制时不要改动格式。

image-20220731104604536.png

  • 保存之后,打开命令行,进入allpairs目录,运行命令allpairs.exe test.txt > result.txt,将test.txt中的数据生成的正交表将会导出到allpairs目录中的result.txt中。每一条数据表示一条测试用例。

image-20220731105731506.png