【1+X】正交实验法

article/2025/9/16 7:29:45

想看更多内容请移步专栏

转载:【1+X】软件测试技术 - 正交实验法 - 蓝桥云课 (lanqiao.cn)

正交实验法

知识点

  • 正交实验法介绍
  • 正交实验法案例

简介

判定表法和因果图法均是考虑有多个输入条件,并且不同的输入条件的组合会得出不同的动作的情况,但他们不适合输入条件过多的情况。比如某学校有一个查询历年学生档案的程序,有 5 个查询条件,如下图所示。可以通过程序界面上查询条件中的其中一项或多项进行查询,然后把查询结果罗列出来。那么测试人员该如何对该查询功能点进行测试呢?

暂且不考虑每个文本框输入内容的限制,只考虑他们“填”或“不填”的组合条件查询的话,可以设计出 25=32 条测试用例,根据组合的原理,设计用例如下表所示。

序号姓名专业年级班级户籍地
1不填不填不填不填不填
2不填不填不填不填
3不填不填不填不填
4不填不填不填
5不填不填不填不填
6不填不填不填
7不填不填不填
8不填不填
9不填不填不填不填
10不填不填不填
11不填不填不填
12不填不填
13不填不填不填
14不填不填
15不填不填
16不填
17不填不填不填不填
18不填不填不填
19不填不填
20不填不填
21不填不填不填
22不填不填
23不填不填
24不填
25不填不填不填
26不填不填
27不填不填
28不填
29不填不填
30不填
31不填
32

仅仅组合“填”或“不填”的组合测试,就有 32 条测试用例,测试用例太多了,投入和回报不相符。那如果随机取部分用例进行测试呢?测试时又没有把握,那些没有被测试到的组合该怎么办呢?那么作为测试人员,该怎么解决这种问题呢?这个时候就要使用到正交实验法,正交实验法设计测试用例是考虑用最少的用例来覆盖大量组合的情况。接下来一起来看一下什么是正交实验法。

正交实验法介绍

正交实验法是套用正交表来设计测试用例的方法。

那什么是正交表呢?古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方,正交表由此演化而来。正交表是通过运用数学理论在拉丁方和正交拉丁方的基础上,从大量的(实验)数据中挑选合适的、有代表性的条件组合构造而成的规格化表格。

正交实验法是一种基于正交表的、高效率、快速、经济的实验设计方法,它研究的“多因素多水平”的情况,然后套用正交表来随机地产生用例(用例之间没有主次之分),是一种提高测试覆盖率的简单易用的方法。

因素(Factor):在一项实验中,凡是被考查的变量就称为因素。

水平(Level):在实验范围内,因素被考查的值称为水平。

前文有提到,正交实验法是套用正交表来随机地产生用例的一种方法。一些测试新人容易陷入“研究如何得出正交表”的错误思维,在此提醒一下,正交表格是无数科学家的智慧凝聚而成,读者无需去深究正交表是如何得出的,我们在设计测试用例的时候直接去套用对应的表格即可。

查询正交表的方式有 2 种:

  • 为方便读者使用,本书在附录 1 中列出了一些常用的正交表格。可通过附录查询适合的正交表。
  • 通过链接查询:http://support.sas.com/techsup/technote/ts723_Designs.txt

正交表的表现形式可描述如下:

L 行数(水平数因素数)

行数(Runs):正交表中行的个数,也就是实验的次数,也指测试用例的个数。

因素数(Factors):指正交表中列的个数。

水平数(Levels):任何单个因素能够取得的值的最大个数。

如何选择正交表是一个关键问题。首先考虑因素的个数,其次考虑因素水平的个数,最后考虑正交表的行数,且选择符合条件的行数最少的一个正交表进行套用。笔者会通过案例详细讲解它的套用方法。

读者可能会有疑问,正交实验法是根据正交性从全面实验中挑选出部分有代表性的点进行实验,它的选择原理是什么呢?为什么这个表格可以代表所有的实验可能呢?主要是因为选择出来的这些有代表性的点具备了“均匀分散、齐整可比”的特点。

** 整齐可比性:** 在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在实验中每个因素的每个水平与其他因素的每个水平参与实验的几率是完全相同的,这就保证在各个水平中最大程度的排除了其他因素水平的干扰。因而,能最有效地进行比较和做出展望,容易找到好的实验条件。

均衡分散性: 在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了实验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的实验条件。

以上特点充分体现了正交表的两大优越性,通俗地说,每个因素的每个水平与另一个因素的每个个水平都能够出现一次组合,这就是正交性。使用正交实验法设计测试用例的步骤如下:

  • 确定有哪些因素?
  • 确定每个因素有几个水平?
  • 选择合适的正交表。
  • 把变量的值映射到表中。
  • 加上认为可疑且没有在表中出现的组合。
  • 把每一行的各因素水平的组合作为一个测试用例

正交实验法案例

案例 1-学生信息查询

如本节开篇所示的程序“历年学生信息查询”界面,利用正交实验法对其设计测试用例。

【解析】:

确定表中的因素数。

共有 5 个因素:姓名、专业、年级、班级、户籍地。故因素数=5。

确定每个因素的水平数。

通过分析,以上 5 个因素的水平数均为“填”和“不填”。故水平数=2。

选择合适的正交表。

通过第 1 步和第 2 步的分析,正交表应该是 25,但经过查询附录 1,表格中接近的只有 L4(23)和 L8(27),那么我们只能选择 L8(27),因为如果选择列数少的表格会缺失部分因素的取值。但如果表格中列数数多于实际因素数,则把表格中多余的列简单粗暴地直接删除就可以了。L8(27)正交表如下表所示:

把变量的值映射到表中

因为程序中只有 5 个因素,只需要 5 列,所以直接删除第 6、7 列,然后把变量的值映射到表格中就得到了下表(1 为填,2 为不填)。

增加几条可疑测试用例,如下表所示:

综合第 4 步和第 5 步,共设计出 13 条测试用例,如下表所示:

用例编号操作步骤描述预期结果
TC-001姓名填写、专业填写、年级填写、班级填写、户籍地填写正确显示查询结果
TC-002姓名填写、专业填写、年级填写、班级不填、户籍地填写正确显示查询结果
TC-003姓名填写、专业不填、年级不填、班级填写、户籍地填写正确显示查询结果
TC-004姓名填写、专业不填、年级不填、班级不填、户籍地不填正确显示查询结果
TC-005姓名不填、专业填写、年级不填、班级填写、户籍地不填正确显示查询结果
TC-006姓名不填、专业填写、年级不填、班级不填、户籍地填写正确显示查询结果
TC-007姓名不填、专业不填、年级填写、班级填写、户籍地不填正确显示查询结果
TC-008姓名不填、专业不填、年级填写、班级不填、户籍地填写正确显示查询结果
TC-009姓名填写、专业不填、年级不填、班级不填、户籍地不填正确显示查询结果
TC-010姓名不填、专业填写、年级不填、班级不填、户籍地不填正确显示查询结果
TC-011姓名不填、专业不填、年级填写、班级不填、户籍地不填正确显示查询结果
TC-012姓名不填、专业不填、年级不填、班级填写、户籍地不填正确显示查询结果
TC-013姓名不填、专业不填、年级不填、班级不填、户籍地填写正确显示查询结果

案例 2-打印功能

在正交实验法案例 1 中,每个因素的水平数都等于 2,是相等的,被称为等水平正交表。但正交表中各因素的水平数也可以不相等,这种被称为混合型正交表。

【题目】:有一个 PowerPoint 软件打印功能,功能描述如下:

打印效果:幻灯片加框、幻灯片不加框; 打印方式:单面打印、双面打印; 打印范围:全部、当前幻灯片、给定范围; 打印颜色:颜色、灰度、黑白; 打印内容:幻灯片、讲义、备注页、大纲视图、阅读视图、普通视图。 请用正交实验法设计测试用例。

【解析】:

确定表中的因素数。

本题中因素数有 5 个:打印效果、打印方式、打印范围、打印颜色、打印内容。故因素数=5。

确定表中的水平数。

本题中有 2 个因素有 2 个水平,有 2 个因素有 3 个水平,有 1 个因素有 6 个水平。

选择合适的正交表。

表中因素数>=5;表中至少有 2 个因素的水平数>=2;至少有另外 2 个因素的水平数>=3;至少有另外一个因素的水平数>=6;通过查询正交表,可知公式 L49(78)或者 L18(3661)比较接近题目。取行数较少的一个公式 L18(3661)得出正交表如下表 所示。

这个表并不完全符合我们的题目,需要改造成我们需要的表格。

  • 因为题目中有 2 个元素只有 2 个水平,故把列号为 1 和 2 的 2 列中的水平数为 3 的值换成 1 或者 2;
  • 题目中只有 5 个元素,故把列号为 5 和 6 的 2 列从表格中删除,变成 5 列表格。

映射变量的值到表格中,并加上可疑用例 n 条。

此题中笔者没有添加可疑用例,n=0。如下表 所示为 PowerPoint 幻灯片软件打印功能的映射表。

序号打印效果打印方式打印颜色打印范围打印内容
1幻灯片加框单面颜色全部幻灯片
2灯片加框单面灰度当前幻灯片讲义
3灯片加框双面颜色给定范围备注页
4灯片加框双面黑白全部大纲视图
5灯片加框单面灰度给定范围阅读视图
6灯片加框双面黑白当前幻灯片普通视图
7灯片不加框单面颜色给定范围普通视图
8灯片不加框单面黑白全部阅读视图
9灯片不加框双面灰度当前幻灯片幻灯片
10灯片不加框双面黑白给定范围讲义
11灯片不加框单面颜色当前幻灯片大纲视图
12灯片不加框双面灰度全部备注页
13灯片加框单面灰度给定范围大纲视图
14灯片不加框单面黑白当前幻灯片备注页
15灯片加框双面颜色当前幻灯片阅读视图
16灯片不加框双面灰度全部普通视图
17灯片加框单面颜色全部讲义
18灯片不加框双面黑白给定范围幻灯片

设计测试用例,如下表所示。

原本应该有 216 条组合用例,现在缩减到 18+n(n 是可疑用例的个数,此处 n=0),大大简化了测试用例的数量,并且保证了测试的有效性。以下列举其中一条测试用例的编写(测试用例 TC001),其他的用例读者自行编写即可。

小结

正交实验法能够使用最小的测试过程获得最大的测试覆盖率。正交实验法适用的场合和判定表(因果图)不一样。当一个界面中有多个控件,每个控件有多个取值,控件取值的组合数量很大,不可能(也没有必要)为每一种组合编写一条用例,要使用最少的组合进行测试,就适合运用正交排列法。判定表(因果图)也是考虑控件组合,但是组合数量较少(一般不会超过 20 种)。

使用正交实验法也有其局限性,因为目前常见的正交表数量有限,即使是已有的正交表,基本也都要求每个控件中取值个数(水平个数)相等,在实践中很难说遇到的全是这种情况。通过正交实验法的学习,我们更多的是学习到一种测试思想,也就是从所有组合集合中选取测试数据时,应该均匀的选取其中的组合作为测试用例,而不只是从某个局部选择数据。

附录 1 常用的正交表

(1)L4(2^3)

试验号\列号123
1111
2122
3212
4221

(2)L8(2^7)

试验号\列号1234567
11111111
21112222
31221122
41222211
52121212
62122121
72211221
82212112

(3)L12(2^11)

试验号\列号1234567891011
111111111111
211111222222
311222111222
412122122112
512212212121
612221221211
721221122121
821212221112
921122212211
1022211112212
1122121211122
1222112121221

(4)L9(3^4)

试验号\列号1234
11111
21222
31333
42123
52231
62312
73132
83213
93321

(5)L16(4^5)

试验号\列号12345
111111
212222
313333
414444
521234
622143
723412
824321
931342
1032431
1133124
1234213
1341423
1442314
1543241
1644132

(6)L25(5^6)

试验号\列号123456
1111111
2122222
3133333
4144444
5155555
6212345
7223451
8234512
9245123
10251234
11313524
12324135
13335241
14341352
15352413
16414253
17425314
18431425
19442531
20453142
21515432
22521543
23532154
24543215
25554321

(7)L8(4×2^4)

试验号\列号12345
111111
212222
321122
422211
531212
632121
741221
842112

(8)L12(3×2^4)

试验号\列号12345
111111
211122
312212
412221
521211
621222
722122
822122
931212
1031121
1132112
1232221

(9)L16(4^4×2^3)

试验号\列号1234567
11111111
21222122
31333212
41444221
52123221
62214212
72341122
82432111
93134122
103243111
113312221
123421212
134142212
144231221
154324111
164413122

http://chatgpt.dhexx.cn/article/s5BCK7lN.shtml

相关文章

正交试验测试法

正交试验法,是从大量试验点中挑选出适量的,有代表性的点,应用依据迦罗瓦理论导出的“正交表”,合理安排试验的一种科学的试验方法。 指标:判断试验结果优劣的标准 因子:所有影响试验指标的条件 因子的状态&…

实用干货!正交试验设计及极差分析步骤总结!

一、研究背景 当前有一项研究,研究大豆出油率分别与3个因素的关系情况,分别是萃取液,温度和处理时间。需要设计一个三因素三水平的正交试验表,并收集试验数据后进行分析,希望找出3个因素时各水平的最佳大豆出油率组合…

正交实验进行方差分析

一、案例介绍 想要从某种草药中提取植物酚,利用专业知识发现可能有三个条件会影响植物酚的提取,每个条件有三个水平,想要通过实验,寻找植物酚的最佳提取条件,其中提取植物酚的参考标准为植物酚的含量(案例…

正交实验法的使用

前面一篇我们讲了测试用例的定义,重要性以及相关基础知识点.那么我们怎么去撰写测试用例呢?怎么去实现撰写达到评价标准的测试用例呢?是凭空想象?是想到哪里写到哪里?不不,这么专业的事情,我们有专业的方法去实现,针对撰写测试用例,我们有专业的测试用例设计方法. 说起测试…

黑盒测试之正交试验法

在许多应用系统的测试工作中,输入条件的因素很多,而且每个因素也不能简单用“是”和“否”来回答。 例:为提高某化工产品的转化率,选择了三个有关因素进行条件试验:反应温度(A),反应…

正交实验法设计测试用例

文章目录 一 正交实验法的由来1 正交表的由来1.1 拉丁方名称的由来1.2 什么是n阶拉丁方?1.3 什么是正交拉丁方? 2 正交实验法3 利用正交实验设计测试用例的步骤:3.1 提取功能说明,构造因子--状态表3.2 加权筛选,生成因素分析表3.3 利用正交表…

正交实验法实战

一、正交实验法概述 正交实验法是研究多因素多水平的一种方法,它是通过正交表挑选部分有代表性的水平组合试验替代全面试验。这些有代表性的组合试验具备了“均匀分散,整齐可比”的特点。正交表一般用Ln​(mk)表示,L 代表是正交表&#xff0…

功能测试---正交实验法

首先我们先看一下案例 案例: PPT打印功能 PowerPoint软件打印功能描述如下: 打印范围分:全部、当前幻灯片、 给定范围 共三种情况; 打印内容分:幻灯片、讲义、备注页、大纲视图 共四种方式; 打印颜色/灰度分: 颜色…

软件测试之正交法

正交法 通过分析我们发现,对于图中的程序而言,我们要设计81条测试用例,那么有没有一种方法能够使用最小的测试过程集合获得最大的测试覆盖率呢? 1. 概述 1.1 定义 正交法,也叫正交实验法或者正交排列法, 就是使用最小的测试过程集合获得最大的测试覆盖率。 “正交实验”是…

正交试验法

正交实验法 正交试验设计法(Orthogonal experimental design),是从大量的试验点中挑选出适量的、有代表性的点,应用依据伽罗卡瓦理论导出的 "正交表",合理的安排试验的一种科学的试验设计方法 正交实验法 …

正交实验法

1.定义(What) 正交实验法是研究多因素、多水平组合的一种实验法,它是利用正交表来对实验进行设计,通过少数的实验替代全面实验,根据正交表的正交性从全面实验中挑选适量的、有代表性的点进行实验,这些有代…

正交试验法及其示例

正交试验法及其示例 正交实验法是一种测试组合的方法。把影响实验指标的条件称为因子,而影响实验因子的条件叫因子的状态。 利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素(输入??)…

JavaWeb期末大作业 Javaweb项目 Javaweb Servlet html

1.前端效果展示 1.进入之后是一个分页查询所有数据的内容 该页面有基础的增删改查 还有分页查询 批量删除 进行条件查询 有什么不对的地方欢迎提出 谢谢 2.增删改查 1.添加 添加成功 2.删除 将刚才添加的OPPO删除 3.修改 4.查询的话就是主页查询所有 页面所用的是分…

初识javaweb

javaweb,顾名思义,分为java和web,而web又包括前端和数据库 1.基本概念 1.1前言 web开发: -----web,网页的意思,表示我们可以从互联网上拿到一定的资源。 例如打开网址www.baidu.com所链接的页面是一个web页面,如下…

JavaWeb期末题库

JavaWeb期末题库 提示:如果您需要更多题库和编程知识,请微信搜索:口袋Code,获取更多得题库,包含C,C,C#,java,python,javaweb,Go语言,…

JavaWeb概述

目录 1.JavaWeb概念 2.常用软件体系结构 3.为什么学习JavaWeb技术? 4.web 应用程序的工作原理 5.web应用程序的资源分类 6.web 服务器软件 7.思维导图总结 本人对JavaWeb的理解 从百科全说中了解到是用Java技术来解决相关web互联网领域的技术栈。 可以先了解…

JavaWeb:JavaWeb技术架构演进

Java Web,是用 Java 技术来解决相关web互联网领域的技术栈。web 包括:web 服务端和 web 客户端两部分。Java 在客户端的应用有 Java Applet,不过使用得很少,Java 在服务器端的应用非常的丰富,比如 Servlet,…

什么是JAVAweb?

文章目录 JAVAweb一、基本概念1、web开发:2、web应用程序3、静态web4、动态web JAVAweb 一、基本概念 1、web开发: web:网页的意思,它用于表示Internet主机上供外界访问的资源,例如:www.jd.com; 静态web …

Eclipse 创建JavaWeb工程

Eclipse 创建JavaWeb工程 配置环境: ​ Eclipse:Version: 2022-06 ​ tomcat:9.0.65 创建Web工程流程 1.先在Eclipse上配置tomcat,打开Eclipse,选择菜单栏上的Window–>Preferences–>在下拉菜单中找到Serv…

什么是javaWeb

什么是JavaWeb 简单理解: javaWeb是指,我们通过java语言编写的所有程序,这些程序是得可以通过浏览器来访问的。 web不就是网的意思嘛,所以javaweb可以简单理解就是我通过发送请求的方式来访问我编写的Java程序。 浏览器如何访…