正交试验设计(orthogonal design简称正交设计(orthoplan),是利用正交表(orthogonal table)科学地安排与分析多因素试验的方法,是最常用的试验设计之一。正交表是一种特殊的表格,内容是特定的,不过表头可以根据需要自己选择。正交表又分为等水平正交表和混合水平正交表。

一、正交表

上表即正交表L9(34),它表示需作9次实验,最多可观察4个因素,每个因素均为3水平。一个正交表中也可以各列的水平数不相等,我们称它为混合型正交表,如L8(41×24),此表的5列中,有1列为4水平,4列为2水平。根据正交表的数据结构看出,正交表是一个n行c列的表,其中第j列由数码1,2,… Sj 组成,这些数码均各出现n/Sj 次。

1.1 正交表的性质

每一列中,不同的数字出现的次数相等。例如在两水平正交表中,任何一列都有数码“1”与“2”,且任何一列中它们出现的次数是相等的;如在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出现数均相等。

任意两列中数字的排列方式齐全而且均衡。例如在两水平正交表中,任何两列(同一横行内)有序对子共有4种:(1,1)、(1,2)、(2,1)、(2,2)。每种对数出现次数相等。在三水平情况下,任何两列(同一横行内)有序对共有9种,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每对出现数也均相等。

以上两点充分体现了正交表的两大优越性,即“均匀分散性,整齐可比”。通俗的说,每个因素的每个水平与另一个因素各水平各碰一次,这就是正交性。

1.2 正交表的结构

行数(Runs):正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。

因素数(Factors) :正交表中列的个数,即我们要测试的功能点。

水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数” 。即要测试功能点的输入条件。

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

如:L8(27)



正交试验法是用最少的测试用例覆盖两两组合,根据经验来看,如何两两组合没有问题,三三组合、四四组合等出问题的可能性也不大。

1.3 常用正交表

二、正交表的生成(R语言)

  1. install.packages("DoE.base")
  2. library(DoE.base)
  3. design1 <- oa.design(L9.3.4)
  1. A B C D
  2. 1 1 2 3 2
  3. 2 1 1 1 1
  4. 3 1 3 2 3
  5. 4 3 2 1 3
  6. 5 2 2 2 1
  7. 6 3 1 2 2
  8. 7 3 3 3 1
  9. 8 2 3 1 2
  10. 9 2 1 3 3

三、正交实验设计步骤

正交实验设计法,就是使用已经造好了的表格——正交表来安排实验并进行数据分析的一种方法。正交实验采用两两组合方式,减少用例个数,使用于兼容性测试、测试范围小。

3.1 打印机正交实验设计

PowerPoint软件打印功能描述如下:打印范围分:全部、当前幻灯片、给定范围;打印内容分:幻灯片、讲义、备注页、大纲视图;打印颜色/灰度分:演的、灰度、黑白共三种设置;打印方式:是否加框。

正交实验设计步骤如下:

Step1、如果需求是文字描述,将文字转化为图形

Step2、需求中包含1个独立功能——打印功能

Step3、针对打印功能开展需求分析

    界面可见输入参数:打印范围、打印内容、打印颜色、打印方式

    界面不可见输入参数:网络、打印机本身(耗材、阴间)、驱动打印服务

Step4、分析界面可见输入参数之间的关系及特点

    

Step5、使用正交实验法设计测试用例

①将需求转化为因子状态表(因子:输入参数,状态输入参数取值)

②将因子状态表中的文字用字母代替

③将因子状态表带入正交表(规则:多则合并,少则补充)

④如果正交表中有合并项,将合并项拆分成多行

⑤将正交表中的字母用文字代替

⑥一行对应一条测试用例

3.2 web系统正交实验设计

web包含大量的服务器、操作系统、浏览器插件如下:

Web浏览器 插件 服务器 操作系统
Netscape6.2 IIS Windows2000
IE6.0 RealPlayer Apache Windows NT
Opera4.0 MediaPlayer Netscape Linux
Enterprise

选择四因子三状态的正交表,代入可得

总结

正交试验设计总的来说包括两部分:一是试验设计;二是数据处理、基本步骤可简单归纳如下:

(1) 明确试验目的,确定评价指标

(2) 挑选因素,确定水平。应对实际问题进行具体分析,并根据试验目的,选出主要因素。如果对问题了解不够,可以适当多取一些因素。确定因素的水平数时,一般尽可能使因素的水平数相等,以方便试验数据处理。最后列出因素水平表

(3) 选正交表,进行表头设计。根据因素数和水平数来选择合适的正交表。一般要求,因素数≦正交表列数,因素水平数与正交表对应的水平数一致,在满足上述条件的前提下,选择较小的表。如果要求精度高,可以选择较大的表

(4) 表头设计就是将试验因素安排到所选正交表相应的列中。一般一个因素占有一列,不同因素占有不同的列(可以随机排列)。不放置因素或交互作用的列称为空白列(简称空列),空白列在正交设计的方差分析中也称为误差列,一般最好留至少一个空白列

(5) 明确试验方案,进行试验,得到结果。对试验结果进行统计分析。通常采用两种方法:一种是直观分析法(或称极差分析法);另一种是方差分析法。通过试验结果分析可以得到因素主次顺序、优方案等信息

(6) 进行验证试验,作进一步分析

参考资料

正交试验法及其示例

正交实验

方差分析3——正交表与正交实验设计(R语言)的更多相关文章

  1. R语言实战(五)方差分析与功效分析

    本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...

  2. 实验的方差分析(R语言)

    实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结--实验的方差分析(one-way analysis of variance) 概述 实验结果\(S\)受多个因素\(A ...

  3. R语言函数总结(转)

    R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达 ...

  4. 【R笔记】R语言函数总结

    R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...

  5. R语言笔记完整版

    [R笔记]R语言函数总结   R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头, ...

  6. 【转】R语言函数总结

    原博: R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头, ...

  7. R 语言实战-Part 3 笔记

    R 语言实战(第二版) part 3 中级方法 -------------第8章 回归------------------ #概念:用一个或多个自变量(预测变量)来预测因变量(响应变量)的方法 #最常 ...

  8. 用R语言的quantreg包进行分位数回归

    什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数 ...

  9. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  10. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

随机推荐

  1. c++ 在项目中创建DLL,并调用

    创建DLL分为两种方法,先介绍第一种 一.创建DLL (1) // dll.h #pragma once //dll.h #ifndef DLL_H_ #define DLL_H_ void prin ...

  2. 昨天写了个ATM系统,学了点思想

    昨天上黑马的基础课终结,有个小测验是做个ATM系统 拿到之后我就明白该怎么做了 但是在后面遇到了瓶颈 就是 不知道怎么进入下级菜单 后面稍微看了一下他的做法,学会了 就继续做了,后面就做出来了 他这个 ...

  3. VSCode Snippet

    { // Place your snippets for javascript here. Each snippet is defined under a snippet name and has a ...

  4. C语言初级阶段7——指针2——特殊指针

    C语言初级阶段7--指针2--特殊指针 指针函数:是一个函数,返回值类型是一个指针. #include<stdio.h> int* fun() { //a是一个局部变量 int a = 1 ...

  5. Hyperkernel验证实验的复现与z3环境初识

    Hyperkernel验证实验的复现与z3环境初识 前言 建议顺序阅读本文!禁止转载.--@CarpVexing(https://www.cnblogs.com/CarpVexing/p/159483 ...

  6. WebLogic & Kubernetes

    搭建kubernetes集群环境 安装前的规划 主机名 地址 角色 组件 k8s-master 192.168.56.118 k8s-master etcd.kube-apiserver.kube-c ...

  7. Abaqus:单位、高清图片

    参考: https://blog.csdn.net/Rayyyy/article/details/113798490 Abaqus高清图片: https://jingyan.baidu.com/art ...

  8. 记一次dubbo服务丢失的问题排查

    主要环境与用到的(关键)组件: Springboot2.3.2 其中,dubbo-spring-boot-starter版本为2.7.8 zookeeper3.5.9 首先是服务报错: No prov ...

  9. 接口自动化之request几种常见请求及响应方法

    request 的几种常见方法 1.request.get() 发送get请求 2.request.post() 发送post请求 3.request.delete() 发送delete请求 4.re ...

  10. Java-10接口与抽象类

    Java-10接口与抽象类 抽象方法 abstract method机制 这是一个不完整的方法,它只有一个声明,没有方法体 abstract void f(); 包含抽象方法的类被称为抽象类:如果一个 ...