用正交法设计测试用例
一、正交表的由来
1、拉丁方名称的由来
古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。
数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方。
2、什么是n阶拉丁方?
用n个不同的拉丁字母排成一个n阶方阵(n<26 ),如果每行的n个字母均不相同,每列的n个字母均不相同,则称这种方阵为n*n拉丁方或n阶拉丁方。每个字母在任一行、任一列中只出现一次。
3、什么是正交拉丁方?
设有两个n阶的拉丁方,如果将它们叠合在一起,恰好出现n2个不同的有序数对,则称为这两个拉丁方为互相正交的拉丁方,简称正交拉丁方。
例如:3阶拉丁方
A B C A B C
B C A 和 C A B
C A B B C A
用数字替代拉丁字母:
1 2 3 1 2 3 (1,1)(2,2)(3,3)
2 3 1 和 3 1 2 ---> (2,3)(3,1)(1,2)
3 1 2 2 3 1 (3,2)(1,3)(2,1)
二、正交试验法介绍
人类在认识自然界的过程中,进行着多方面的探索,试验是构成学习过程的一个重要要素。
爱迪生一生艰苦奋斗,经历了无数次的失败之后,为人类发明了许多重要的科技成果。他的座右铭是:“天才靠的是百分之一的灵感和百分之九十九的汗水”。他的助手在他去世后的第二天说:“如果在爱迪生工作的黑屋中能有一支蜡烛照亮他前进的方向,以他蜜蜂般地努力,他会获得远比他发明多的多的成果”。就是说如果有一点理论知识和计算能帮助爱迪生,他会节省90%的精力。爱迪生是边试验边分析后决定下次试验,这种方法速度太慢。
正交试验设计是研究多因子(术语解释:把实验中影响响应变量的那些变量称为实验中的因子,因子分为可控因子和非可控因子)多水平(术语解释:把因子不同的取值称为水平)的一种试验方法,它是根据正交性从全面试验中挑选出有代表性的点进行试验,正交试验具备了“均匀分散,齐整可比”的特点,正交试验设计是分式析因设计的主要方法。
日本著名的统计学家田口玄一将正交试验选择的水平组合列成表格,称为正交表。例如作一个三因素三水平的实验,按全面实验要求,须进行33=27种组合的实验,且尚未考虑每一组合的重复数。若按L9(33) 正交表安排实验,只需作9次,大大减少了工作量。正交实验设计是一种高效率、快速经济的实验设计方法,因此在很多领域得到广泛应用。
利用场景法来设计测试用例时, 作为输入条件的场景非常庞大,以至于得到的测试用例数目多的惊人,给软件测试带来沉重的负担。如果舍弃一些场景又怕测试设计的覆盖度达不到,将缺陷遗留给客户。为了有效地减少测试缺陷遗留,合理地减少测试的工时与费用,从2008年开始公司推行正交试验设计方法进行测试用例的设计。
三、正交表的构成
1、正交表的构成
行数(Runs):正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。
因子数(Factors) :正交表中列的个数,即我们要测试的功能点。
水平数(Levels):任何单个因子能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数” 。即要测试功能点的输入条件。
2、正交表的形式
L行数(水平数因子数)
如:L8(27)
3、正交表的正交性
● 整齐可比性
在同一张正交表中,每个因子的每个水平出现的次数是完全相同的。由于在试验中每个因子的每个水平与其它因子的每个水平参与试验的机率是完全相同的,这就保证在各个水平中最大程度的排除了其它因子水平的干扰。因而,能最有效地进行比较,容易找到较佳的试验条件。
● 均衡分散性
在同一张正交表中,任意两列(两个因子)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因子水平的完全组合之中,因而具有很强的代表性,容易得到好的试验条件。
4、用正交表设计测试用例的优点
● 不需要对所有组合情况穷举,只需要少量的抽样组合数据,可明显地提高效率;
● 用正交表抽样出的组合数据,对组合情况具有最佳的覆盖性;
● 能减少手工对组合数据抽样导致的大量测试遗漏
四、设计步骤
(1)提取功能说明,提取因子
把影响实验指标的条件称为因子,而影响实验因子的条件叫因子的水平。
利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把它们当作因子;而把各个因子的取值当作状态,把它们当做水平。对软件需求规格说明中的功能要求进行划分,把整体的、概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的、基本的功能要求。这样就可以把被测试软件中所有的因子都确定下来,并为确定每个因子的权值提供参考的依据。确定因子与状态是设计测试用例的关键。因此要求尽可能全面的、正确的确定取值,以确保测试用例的设计作到完整与有效。
(2)判断是否可以使用正交表
并不是任何情况都可以使用正交表,以下情况无法使用正交表:
● 因素的个数非常少,如只有2个;
● 因子数很大。
另外在识别的因子中,还要进行以下分析:
● 组合因素之间必须为平行关系(平行:可以同时存在)
● 不能为互斥(互斥:1个因素存在,另1个因素不能存在)
● 因素不能被其它因素的因子制约(制约:当A因素的因子为A1,B因素不能存在)
● 排除非组合因素
(3)查找和调整正交表
如果判断可以使用正交测试方法设计测试用列,需要根据测试功能点的实际情况,选择正交表。
选择正交表的原则如下:
● 实际因素数≤正交表因素数;
● 实际每个因子数≤正交表每个因子数;
● 如果出现2个或2个以上正交表符合以上条件,则选择Case数最少的正交表。
选取了正交表后,删除正交表中多余的因子列,原则是删除靠后的列;
(4)加权筛选,生成因素分析表
对因子与状态的选择可按其重要程度分别加权。可根据各个因子及状态的作用大小、出现频率的大小以及测试的需要,确定权重的大小。对于权重高的因子放在最前面的列中,以此类推。
(5)把变量的值映射到表中
在使用正交法时,要考虑到被测系统中要准备测试的功能点,而这些功能点就是要获取的因子,但每个功能点要输入的数据按等价类划分有多个,也就是每个因素的输入条件,即状态或水平值。
选取了因子和水平后,需要把变量实际的值映射到正交表中。
(6)正交测试用例的制作
把实际因子和水平代入正交表后,每一行制作成一个测试用例。
(7)组合补充测试用例
根据需求规格说明书或错误推断法,补充需要测试但正交表没有覆盖的测试数据,将其制作成测试用例。
本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/
用正交法设计测试用例相关推荐
- 《软件测试技术实战:设计、工具及管理》—第2章 2.5节运用正交法设计测试用例...
本节书摘来自异步社区<软件测试技术实战:设计.工具及管理>一书中的第2章,第2.5节运用正交法设计测试用例,作者顾翔,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- 正交法设计测试用例的小工具:Allpairs
(我的公众号"墨石测试攻略",分享测试经验,欢迎关注!) 继上一篇<使用正交法高效地设计测试用例>,有小伙伴反馈说正交表不好找,方法不实用.这里推荐一个小工具Allpa ...
- 【tool】正交法设计测试用例
用正交实验法设计测试用例 软件测试 正交实验法的由来 一.正交表的由来 拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表. ...
- 运用正交法设计测试用例
正交实验法百科 正交实验法就是利用排列整齐的表 -正交表来对试验进行整体设计.综合比较.统计分析,实现通过少数的实验次数找到较好的生产条件,以达到最高生产工艺效果,这种试验设计法是从大量的试验点中挑选 ...
- 软件测试中什么是正交分析法,软件测试中正交法设计测试用例实例分析
说明:首先分析第一个要素"用户权限",其取值只有2个,即"用户权限"的值只有可能是1或2,这样3和4的取值所在的情况就可以删除,之后在考虑"用户权限& ...
- 【测试设计】基于正交法的测试用例设计工具--PICT
前言 我们都知道成对组合覆盖是一种非常有效的测试用例设计方法,但是实际工作过程中当成对组合量太大,我们往往很难做到有效的用例覆盖. PICT是微软公司出品的一款成对组合命令行生成工具,它很好的解决了上 ...
- 测试用例设计方法之正交法
概念: 正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合.正交试 ...
- 软件测试(用例Ⅰ)· 测试用例的基本概念 · 万能公式 · 设计测试用例的方法(等价类、边界值、判定表法、正交法、场景设计法、错误猜测法)
一.测试用例 基本要素 好处 设计方法 - 万能公式 二.设计测试用例的方法 等价类 边界值 判定表法 正交法 场景设计法 错误猜测法 一.测试用例 基本要素 测试用例(Test Case)是为了实施 ...
- 【黑盒测试】 正交排列法设计测试用例
正交法设计测试用例 如何设计测试用例 一.正交表的概念 二.使用步骤 1.设计步骤 2.案例分析 三.判定表和正交表的使用场景 判定表 正交表 如何设计测试用例 在测试时,要考虑一些控件的组合情况,组 ...
最新文章
- python评委打分代码_STL案例—评委打分
- Android应用程序开发环境的建立
- 前端学习(2911):cdn的加速策略
- 2020阿里云双12-企业飞天会员年终盛典全攻略
- TaskTracker执行map或reduce任务的过程(二)
- Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别
- 浮点数比较大小的时候不能直接用等号
- mysql dump h_mysqldump
- 大数据挖掘处理技术有哪些
- html5 的 webScoket 和 C# 建立Socket连接
- pyltp安装及运行
- 计算机上自带的打字游戏,完美运行金山打字通2016(包括自带的小游戏)
- 服务器pbs傻瓜操作
- Visual SourceSafe 2005 简体中文语言包
- vba自定义函数,设置加载宏,建立自己的excel函数库,代码库
- R语言实战(统计分析1)
- asp.net930-绿能店电动车租赁系统
- mysql错误合集_mysql错误合集
- 如何采用离线的 Google Map API 加载离线谷歌地图的方法
- 易语言写微信群AI人工智能机器人,自动对话、聊天、发消息
热门文章
- insmod命令加载驱动详解
- windows版docker安装镜像
- 对联弹窗html,悬停对联广告.html
- 《软件测试和质量管理》实验报告1——白盒测试
- 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一) .
- TensorFlowLite量化-网上资料摘抄
- linux中find常见用法
- 运维工程师面试题(15道)
- html添加地图坐标,肿么把用html经纬度在地图上标记
- pla是什么计算机原理,计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).ppt...