正交实验法

article/2025/9/16 7:56:59

1.定义(What)

正交实验法是研究多因素、多水平组合的一种实验法,它是利用正交表来对实验进行设计,通过少数的实验替代全面实验,根据正交表的正交性从全面实验中挑选适量的、有代表性的点进行实验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。

“均匀分散”性使实验点均衡地分布在实验范围内,让每个实验点有充分的代表性;

“整齐可比”性使实验结果的分析十分方便,可以估计各因素对指标的影响,找出影响事物变化的主要因素。

实践证明,正交实验法是一种解决多因素问题卓有成效的方法。

2. 为什么使用正交实验法?(Why)

  • 对于单因素或两因素实验,因其因素少,实验的设计、实施与分析都比较简单。但在实际工作中,常常需要同时考察3个或3个以上的实验因素,若进行全面实验,实验的规模很大,由于时间和成本的限制我们不可能进行全面实验,但是具体挑其中的哪些测试用例进行测试我们心里拿不准,总担心遗漏了未挑选的测试用例从而造成一些严重缺陷;
  • 为了有效的、合理地减少测试的工作量与和成本,我们利用正交实验法来设计测试用例。正交实验法就是为多因素实验、寻求最优水平组合的一种高效率的实验设计方法。

3. 基本概念

正交表是一种特制的表格,一般用 [公式] 表示,L代表正交表,n代表实验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素的水平数,且有n=k*(m-1)+1。

  • 因素(Factors)。表示在一项实验中,需要观察的变量称为因素;
  • 水平(Levels)。表示在实验范围内,因素被考察的值称为水平(变量的取值);
  • 正交表的组成。由行数(正交表的行的个数,即实验的次数)、因素数(正交表列的个数)、水平数(任何单个因素能够取得的值的最大个数)。

正交表必须满足这两个特点,有一条不满足,就不是正交表:

  • 每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与实验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较实验结果并找出最优的实验条件;
  • 在任意两列横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了实验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性。

4. 正交实验法设计用例的步骤(How)

Step1.分析规格描述,确定规格中有哪些因素(变量)和每个因素都有哪些水平(变量取值)。因素数表示规格描述中相互独立的变量的个数,水平数表示所有因素在实验中能够取得的数量最多的个数;

Step2.根据因素数和水平数确定n值。这里区分2种情况:

  • 单一水平正交表。就是各因素的水平数相同的正交表称为等水平正交表。如 [公式] 、 [公式] 、 [公式] 等各列中的水平为2,称为2水平正交表; [公式] 、 [公式] 等各列水平为3,称为3水平正交表。表示为: [公式] ,n=k*(m-1)+1。
  • 混合水平正交表。就是各因素的水平数不完全相同的正交表称为混合水平正交表。如 [公式] 表中有一因素的水平为4,有4个因素的水平数为2。也就是说该表可以安排一个4水平因素和4个2水平因素。再如 [公式] , [公式] 等都是混合水平正交表。表示为: [公式] ,n=k1*(m1-1)+k2*(m2-1)+…kx*(mx-1)+1。

Step3.选择合适的正交表

  • 查Dr. Genichi Taguchi 设计的正交表

Orthogonal Arrays

  • Technical Support (http://support.sas.com)com

http://support.sas.com/techsup/technote/ts723_Designs.txt

查找时需要关注不同类型的正交表,区分以下2种情况:

(1)单一水平正交表

  • 存在实验次数等于n,并且水平数大于等于m、因素数大于等于k的正交表,我们把这个正交表拿过来套用;
  • 不存在实验次数等于n的正交表,我们就得找出满足实验次数大于n并且水平数大于等于m、因素数大于等于k的正交表。

(2)混合水平正交表

  • 存在实验次数等于n,并且水平数大于等于max(m1,m2,m3,…)、因素数大于等于(k1+k2+k3+…)的正交表,我们把这个正交表拿过来套用;
  • 不存在实验次数等于n的正交表,我们就得找出满足实验次数大于n并且水平数大于等于max(m1,m2,m3,…)、因素数大于等于(k1+k2+k3+…)的正交表。当有2个或2个以上正交表可以被选择时,选取原则是选实验次数最少的那个正交表。

Step4.根据正交表把变量的值映射到表中,设计测试用例。把变量的值映射到正交表中,每一行的各因素的取值组合作为一个测试用例;

Step5.补充其他可疑场景用例。

5. 使用场景

  • 输入的参数之间是独立的,不存在相互依赖的关系;
  • 功能测试,配置测试。

6. 优缺点

  • 优点:直接套用,经济高效。根据正交性,从全面实验中挑选出部分有代表性的点进行实验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。通过使用正交实验法减少了测试用例,合理地减少测试的工时与费用,提高测试用例的有效性。是一种高效率、快速、经济的实验设计方法;
  • 缺点:对每个状态点同等对待,重点不突出,容易造成在用户不常用的功能或场景中,花费不少时间进行测试设计与执行,而在重要路径上反而没有重点测试。

7. 正交表生成工具(PICT)

了解了正交实验法原理并知道如何按步骤生成用例之后,就可以直接使用PICT工具生成满足正交的测试用例。PICT工具是在微软公司内部使用的一款承兑组合的命令行生成工具,现在已经对外提供。PICT可以有效地按照两两测试的原理,进行测试用例设计。在使用PICT时,需要输入与测试用例相关的参数,以达到全面覆盖的效果。

8. 实战演练

例1.某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:

  • 根据“性别”=“男,女”进行查询
  • 根据“班级”=“1班,2班”查询
  • 根据“成绩”=“及格,不及格”查询

Step1.分析上述测试需求,有3个被测元素,被测元素我们称为因素,每个因素有两个取值,我们称之为水平。因此,规格描述中有3个独立变量且每个变量2个取值:性别(男, 女),班级(1班, 2班),成绩(及格, 不及格)。

Step2.根据因素数和水平数确定n值。水平数m=2,因素数k=3。n=k*(m-1)+1=3*(2-1)+1=4, [公式] 。

Step3.选择[公式]正交表。正交表获取路径:

http://www.york.ac.uk/depts/maths/tables/orthogonal.htm

并把变量的值映射到表中。

Step4.把每一行转换成一个测试用例,得到4个测试用例如下:

  • TestCase1:选择性别="男"、班级="1班"、成绩="及格",查询
  • TestCase2:选择性别="男"、班级="2班"、成绩="不及格",查询
  • TestCase3:选择性别="女"、班级="1班"、成绩="不及格",查询
  • TestCase4:选择性别="女"、班级="2班"、成绩="及格",查询

Step5.根据实际情况可以在用正交实验法设计用例的基础上补充一些测试用例(非常重要),比如性别="男"、班级="1班"、成绩="不及格"是实际最常用的查询场景,则补充用例如下:

  • TestCase5:选择性别="男"、班级="1班"、成绩="不及格",查询

5个测试用例与8个测试用例相比测试用例个数是减少了,因素数和水平数越大越能体现用正交表的好处。例如:对于一个四因素且每个因素均为三水平的实验,如果按照全面实验需要进行3*3*3*3=81次。但是如果用正交实验法选择 [公式] 正交表,n=4*(3-1)+1=9次实验就可以覆盖。从这点可以说明用正交实验法能有效地、合理地减少测试用例和工时,节约测试成本。

 

例2.手机照相机的拍摄模式是普通模式,针对对比度(正常,极低,低,高,极高)、色彩效果(无,黑白,棕褐色,负片,水绿色)、感光度(自动,100,200,300,400,800)、白平衡(自动,白炽光,日光,荧光,阴光)、照片大小(5M, 3M, 2M, 1M, VGA)、闪光模式(关,开)各个值用正交实验法设计测试用例。该需求类型为不存在实验次数等于n(n=k*(m-1)+1)的正交表。

Step1.确定因素数和水平数。因素数:对比度、色彩效果、感光度、白平衡、照片大小、闪光模式。水平数:对比度(正常、极低、低、高、极高),色彩效果(无、黑白、棕褐色、负片、水绿色),感光度(自动、100、200、400、800),白平衡(自动、白炽光、日光、荧光、阴光),照片大小(5M、3M、2M、1M、VGA),闪光模式(开、关);

Step2.根据因素数和水平数确定n值。m1=5, k1=5,m2=2, k2=1,n=k1*(m1-1)+k2* (m2-1)+1=5*(5-1)+1*(2-1)+1=20+1+1=22, [公式]

Step3.选择合适的正交表。根据计算得出n=22,在

Orthogonal Arrays

查找发现不存在n=22的正交表。这个时候我们就需要根据如下原则确定使用的正交表:

  • 查找同时满足 n>22 && m>=max(m1=5,m2=2) && k>=k1+k2=5+1=6的正交表。发现 [公式] , [公式] 同时满足。
  • 当有2个或2个以上正交表可以被选择时,选取原则是选实验次数最少的那个正交表。所以我们选 [公式] 正交表。
  • 查找 [公式] 正交表。

Step4.将各因素水平值填入映射表,每一行转换成一个测试用例。

 

-----------------------End------------------------

推荐阅读:

吉提:《等价类划分》-有这篇就够了

吉提:《边界值分析》-有这篇就够了

吉提:《错误推测法》-有这篇就够了

吉提:《场景法》-有这篇就够了

更多软件测试干货,请关注公众号:吉提


http://chatgpt.dhexx.cn/article/9QxgU8Z3.shtml

相关文章

正交试验法及其示例

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

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程序。 浏览器如何访…

JavaWeb详解

JavaWeb动态Web资源开发 静态Web: 用户看到的数据始终不变;动态Web:各人看到的信息不同动态Web:1.页面动态展示,淘宝"千人千面";2.和数据库交互 Web应用程序:给浏览器访问的程序 静态Web动态Web 浏览器访问网络资源流程图 客户端通过网络协议(如Http),请求进入服…

JavaWeb是什么?简单的理解!

终于考试周结束了 紧接着的就是一顿迷茫,我学的啥?我自己怎么不知道??? 好吧,这里整理一份JavaWeb的笔记吧! 不知道大家怎么想的,对于不同的人会有不一样的理解,在这里我想总结一下我的个人看法: 很多高手都会告诉你JavaWeb是一个技术的总和,或者说是一种技术体系,都是…

一、什么是JavaWeb?

1、基本概念 1.1、什么是JavaWeb? Java Web是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的应用非常的丰富,…

JavaWeb是什么?总结一下JavaWeb的体系

JavaWeb是什么?通过最近在尚硅谷上学习,分享一下 Java WEB前言JavaWeb的技术体系登录页面的开发涉及的技术知识点HTML是什么? 登录功能实现-环境的搭建涉及的技术知识点Web服务器Tomcat服务器的安装及配置在eclipse中配置tomcat创建动态的web工程 登录功…

JavaWeb是什么?如何学习JavaWeb的体系

java语言是当前最流行的开发语言之一。它的风格十分接近C语言,是一个纯粹的面向对象的程序设计语言。Java继承了C语言面向对象技术的核心,舍弃了C语言中复杂和一些容易出错的特性,并在内存管理方面得到了增强。 web是指Internet 的图形、多媒…

javaweb基本概念

文章目录 什么是javawebweb资源的分类常用的web服务器 什么是javaweb 什么是javaweb Javaweb是指,所有通过java语言编写的可以通过浏览器访问的程序的总称,叫javaweb。 javaweb是基于请求和响应来开发的。 什么是请求 请求是指客户端给服务器发送数据&a…

“在禁用 UAC 时,无法激活此应用”问题解决

微信推送消息的脚本运行时报这个错误 打开cmd窗口,输入以下命令: 如图所示位置找到EnableLUA,双击 重启!!!

彻底关闭Windows操作系统的UAC功能

前言 新装的Windows操作系统默认开启了UAC(User Account Control,用户账户控制),每当用户、程序对计算机进行修改时,都会弹出繁琐的提示框。即使通过控制面板进行UAC级别调整,也无法避免某些情况下依旧被弹…

Win11如何关闭UAC?

小伙伴们都知道UAC的功能通常是指用户账户控,该功能会在我们修改系统设置的时候弹出各种提示框,但有不少使用Win11系统的小伙伴想要关闭却不知道如何操作,下面就和小编一起来看看Win11是如何关闭UCA的吧。 Win11关闭UAC的方法 1、首先我点击底…

聚沙——关于禁用UAC的解决办法(Win8 System)

小伙伴们,有没有遇到过电脑打不开图片的尴尬情况呢~是不是觉得它很不好很不好呢 下面就让我们看看怎么解决这个小麻烦吧 WIN8打开图片或PDF时提示在禁用UAC时,此应用程序无法激活 解决办法: 1.键盘windows图标“X”,选择运行; 2.在…

”在禁用UAC时,无法激活此应用“问题

重装完系统后,打开图片、PDF书籍或是其他一些东西的时候,总是会出现“在禁用UAC时,无法激活此应用”的问题。 之前解决过一次,是在注册表里改了一个东西,但是就会失去管理员权限,这两个是冲突的&#xff0c…