正交实验法的由来

拉丁方名称的由来

古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。

数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方。

什么是n阶拉丁方?

用n个不同的拉丁字母排成一个n阶方阵(n<26 ),如果每行的n个字母均不相同,每列的n个字母均不相同,则称这种方阵为n*n拉丁方或n阶拉丁方。每个字母在任一行、任一列中只出现一次。

什么是正交拉丁方?

设有两个n阶的拉丁方,如果将它们叠合在一起,恰好出现n2个不同的有序数对,则称为这两个拉丁方为互相正交的拉丁方,简称正交拉丁方。

例如:3阶拉丁方

用数字替代拉丁字母:

正交实验法

正交试验设计(Orthogonal experimental design)是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是分式析因设计的主要方法。是一种高效率、快速、经济的实验设计方法。

日本著名的统计学家田口玄一将正交试验选择的水平组合列成表格,称为正交表。例如作一个三因素三水平的实验,按全面实验要求,须进行33=27种组合的实验,且尚未考虑每一组合的重复数。若按L9(33) 正交表按排实验,只需作9次,按L18(37) 正交表进行18次实验,显然大大减少了工作量。因而正交实验设计在很多领域的研究中已经得到广泛应用。

利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

正交实验设计方法:依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的、有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。类似的方法有:聚类分析方法、因子方法方法等。

利用正交实验设计测试用例的步骤:

(1)提取功能说明,构造因子--状态表

把影响实验指标的条件称为因子,而影响实验因子的条件叫因子的状态。

利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子;而把各个因子的取值当作状态。对软件需求规格说明中的功能要求进行划分,把整体的、概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的、基本的功能要求。这样就可以把被测试软件中所有的因子都确定下来,并为确定每个因子的权值提供参考的依据。确定因子与状态是设计测试用例的关键。因此要求尽可能全面的、正确的确定取值,以确保测试用例的设计作到完整与有效。

(2)加权筛选,生成因素分析表

对因子与状态的选择可按其重要程度分别加权。可根据各个因子及状态的作用大小、出现频率的大小以及测试的需要,确定权值的大小。

(3)利用正交表构造测试数据集

利用正交实验设计方法设计测试用例,比使用等价类划分、边界值分析、因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。

在使用正交实验法时,要考虑到被测系统中要准备测试的功能点,而这些功能点就是要获取的因子或因素,但每个功能点要输入的数据按等价类划分有多个,也就是每个因素的输入条件,即状态或水平值。

正交表的构成

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

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

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

正交表的形式:

L行数(水平数因素数)

如:L8(27)

正交表的正交性

整齐可比性

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

均衡分散性

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

用正交实验法设计测试用例
以上介绍了正交实验法的由来。怎么用正交实验法进行用例的设计呢?

用正交实验法设计测试用例

以上介绍了正交实验法的由来。怎么用正交实验法进行用例的设计呢?

用正交表设计测试用例的步骤

(1) 有哪些因素(变量)

(2) 每个因素有哪几个水平(变量的取值)

(3) 选择一个合适的正交表

(4) 把变量的值映射到表中

(5) 把每一行的各因素水平的组合做为一个测试用例

(6) 加上你认为可疑且没有在表中出现的组合

如何选择正交表

考虑因素(变量)的个数
考虑因素水平(变量的取值)的个数
考虑正交表的行数
取行数最少的一个

设计测试用例时的三种情况

(1)因素数(变量)、水平数(变量值)相符

(2)因素数不相同

(3)水平数不相同

我们来看看第一种情况:

(1)因素数与水平数刚好符合正交表

我们举个例子:

这是个人信息查询系统中的一个窗口。我们可以看到要测试的控件有3个:姓名、身份证号码、手机号码,也就是要考虑的因素有三个;而每个因素里的状态有两个:填与不填。

选择正交表时分析一下:

1、表中的因素数>=3;

2、表中至少有3个因素数的水平数>=2;

3、行数取最少的一个。

从正交表公式中开始查找,结果为:

L4(23)

变量映射:

测试用例如下:

1:填写姓名、填写身份证号、填写手机号

2:填写姓名、不填身份证号、不填手机号

3:不填姓名、填写身份证号、不填手机号

4:不填姓名、不填身份证号、填写手机号

增补测试用例

5:不填姓名、不填身份证号、不填手机号

从测试用例可以看出:如果按每个因素两个水平数来考虑的话,需要8个测试用例,而通过正交实验法进行的测试用例只有5个,大大减少了测试用例数。用最小的测试用例集合去获取最大的测试覆盖率。

(2)因素数不相同

如果因素数不同的话,可以采用包含的方法,在正交表公式中找到包含该情况的公式,如果有N个符合条件的公式,那么选取行数最少的公式。

(3)水平数不相同

采用包含和组合的方法选取合适的正交表公式。

正交实验法的又一个例子

上面就正交实验法进行了讲解,现在再拿PowerPoint软件打印功能作为例子,希望能为大家更好地理解给方法的具体应用

假设功能描述如下:

打印范围分:全部、当前幻灯片、给定范围 共三种情况;
打印内容分:幻灯片、讲义、备注页、大纲视图 共四种方式;
打印颜色/灰度分: 颜色、灰度、黑白 共三种设置;
打印效果分:幻灯片加框和幻灯片不加框两种方式。
因素状态表:

我们先将中文字转换成字母,便于设计。得到:

因素状态表:

我们分析一下:

被测项目中一共有四个被测对象,每个被测对象的状态都不一样。

选择正交表:

1、表中的因素数>=4

2、表中至少有4个因素的水平数>=2

3、行数取最少的一个

最后选中正交表公式:

L16(45)

正交矩阵为:

用字母替代正交矩阵:

我们看到:

第一列水平值为3、第三列水平值为3、第四列水平值3、2都需要由各自的字母替代。

第五列去掉没有意义。通过分析,由于四个因素里有三个的水平值小于3,所以从第13行到16行的测试用例可以忽略。

那么这样的话,就可以有12个测试用例了:
1、

2、

3、

4、

5、

6、

7、

8、

9、

10、

11、

12、

总结

正交实验法或正交表法,是一种大量精简测试组合得到高效有效组合的高级策略算法,有着深厚的理论基础和实践意义.
在判定表和因果图中,如果组合过多的话,可以考虑使用该方法来减少组合.减轻后续测试实施压力.

转载于:https://www.cnblogs.com/1737623253zhang/p/10859419.html

测试用例设计之正交表法详解相关推荐

  1. 测试用例设计之正交表法以及工具allpairs下载使用

    当遇到软件测试中输入条件组合数很多的情况时,比如下图这种 我们不可能把所有选择排列全部列举并测试,这时就用到了正交表法设计测试用例.其最基本的思想是使用最小的测试组合来获得最大的测试覆盖率,适用于搜索 ...

  2. 测试用例设计方法之因果图详解

    一.因果图概述 因果图是从需求中找出因(输入条件)和果(输出或程序状态的改变),通过分析输入条件之间的关系(组合关系.约束关系等)及输入和输出之间的关系绘制出因果图,再转化成判定表,从而设计出测试用例 ...

  3. 软件测试【测试用例设计】面试题详解

    目录 前言 一.微信功能测试 二.QQ功能测试 三.微信发红包测试 四.转账功能测试 结语 前言 今天笔者想和大家来聊聊测试用例,这篇文章主要是想要写给测试小伙伴们的,因为我发现还是有很多小伙伴在遇到 ...

  4. 视频教程-沐风老师3DMAX室内建模挤出法详解-3Dmax

    沐风老师3DMAX室内建模挤出法详解 沐风课堂创始人,专栏作家,独立媒体人,资深互联网从业者. 沐风老师 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP ...

  5. 关于网线水晶头的接法详解(1)

    关于网线水晶头的接法详解(1) 一直以来关于1000M网线做法,在采用6类线做材质的情况下,有两种意见: 1.使用 TIA568B 即两头都用 白橙   橙   白绿   蓝   白蓝   绿   白 ...

  6. STM32 VBAT外围电路接法详解--备用电源(纽扣电池)

    STM32 VBAT外围电路接法详解 给大家看几块开发板的VBAT外围电路的设计图: (1)不满足 (2)符合要求,但不是最佳 (3)不满足        (4)不满足        (5)最好的设计 ...

  7. vgc机器人编程1到13题_杀戮尖塔故障机器人怎么玩 故障机器人玩法详解

    杀戮尖塔故障机器人怎么玩 故障机器人玩法详解 2018-07-02 14:15:04来源:游戏下载编辑:Rysj评论(0) 再来看这些能力牌. 和战士和猎人的牌不同,智障机器人的能力牌泛用性都不错. ...

  8. 安卓miracast花屏_创维酷开电视多屏互动Miracast玩法详解

    创维酷开电视多屏互动Miracast玩法详解 安卓手机是可以通过多屏互动Miracast玩法直接让我们手机与创维酷开电视进行无线投屏的,但是有些创维电视的Miracast功能找不到怎么办? 创维酷开电 ...

  9. WEB前端之网页设计③----最新最全详解/如何在网页上创建表格

    WEB前端之网页设计③--最新最全详解/如何在网页上创建表格 一.表格效果图1: <table border="0px" cellspacing="1px" ...

最新文章

  1. 达观数据于敬:个性化推荐系统实践
  2. RSA 公钥加密——私钥解密
  3. RxSwift之UI控件UIGestureRecognizer扩展的使用
  4. windows环境里React-Native运行失败,找不到Nullable的原因分析
  5. 医院(jzoj 1611)
  6. aws 静态网站_如何使用AWS托管静态网站-入门指南
  7. 使用Flink集群环境进行数据处理
  8. git pull ---rebase
  9. Python 第五章 数据预处理
  10. 中琛物联‘连接+云+数据’服务助阵
  11. FPGA零基础学习:SPI 协议驱动设计
  12. gmoj 6842. 【2020.11.5提高组模拟】淘淘蓝蓝之扮猪吃愉悦
  13. win10禁用笔记本键盘
  14. 国开网电大 动物常见病防治 形考任务1-5
  15. 计算的威力,智慧的传奇——Fabrice Bellard
  16. Java IO流:(十二)NIONIO2简单介绍
  17. ESP8266制作天气预报海藻球微景观生态缸记录(六)-网页控制灯光颜色准备
  18. 管理者一定要会讲故事
  19. ue4 小知识点 图片变灰 hlsl 材质 custom shader
  20. 方块 游戏界面java_JAva 判断方块游戏清除方法

热门文章

  1. Ubuntu13.04 配置smb服务器-new
  2. linux线程同步之互斥锁——linux的关键区域
  3. SoapRpcMethodAttribute.OneWay属性
  4. 通用联手谷歌,应用程序和语音助手将整合到车辆中
  5. Velodyne收购高清地图公司 将研发更安全的ADAS系统
  6. Python使用you-get批量下载bilibili网站视频
  7. static 函数和普通函数
  8. 项目怎么查服务器,服务器查询项目标签
  9. linux文件给另一用户名和密码错误,linux重命名root后,使用su命令切换新用户时,提示密码错误...
  10. 020_Transfer穿梭框