测试:如何选择合适的正交表
需求:
窗体中有多个控件(字体、字符样式、颜色、字号),
每个控件有多个取值
字体:仿宋、楷体、华文彩云
字符样式:粗体、斜体、下划线
颜色:红色、绿色、蓝色
字号:20号、30号、40号
如果按照正常步骤进行,需要 3*3*3*3=81 种组合,就需要写81个测试用例,显得比较多,针对这种组合量比较大的情况,如何采用最少的测试用例集合获得最大的测试覆盖率呢,就可以采用 正交排列法(---定义:正交排列法就是能够使用最小的测试过程集合获得最大的测试覆盖率。附:这是统计学的一个研究成果)。
正交表的类别
可分为:单一水平正交表 和 混合水平正交表。
单一水平正交表:各列水平数相同的正交表称为等水平正交表。比如:L9 (3**4) -->(附:括号里意思为3的4次方,下同。)、L2 7(3**13) 称为3水平正交表。 L4 (2**3)、L8 (2**7) 称为2水平正交表。单一水平正交表可以用 Ln(m**k) 表示,n是行数,m是水平数,k是因数。比如上边需求示例:可以理解为4因数(字体,字符样式,颜色,字号),3水平(意思是每个因数里都有三个选项,比如:字体里有 仿宋、楷体、华文彩云 3个选择)。一般情况下,我们可以直接确定m和k,n 可以根据水平数和因数计算行数,公式为:n=k*(m-1)+1。
混合水平正交表:各列水平数不完全相同的正交表称为混合水平正交表。比如:L8 (4**1 2**4)-->(附:括号里意思为4的1次方 和 2的4次方。意思为表中共有8行,有一列的水平为4,有4列的水平为2。)。混合水平正交表可以用 Ln(m1**k1 m2**k2) 表示。一般情况下,我们可以直接确定m和k,n 可以根据水平数和因数计算行数,公式为:n=k1*(m1-1)+k2*(m2-1)+k3*(m3-1)......+ kx*(mx-1) + 1。
查看正交表
http://support.sas.com/techsup/technote/ts723_Designs.txt
如何选取合适的正交表
假如我们确定有3因数2水平,计算n=3*(2-1)+1=4,应该表示为 L4(2**3),那么我们看看有木有和这个正好相等的正交表,如果有,那么把变量值复制进去这个表中,如果没有,按照如下方法选取:
1. 水平数相等,因数相等时,取行数刚好比自定义正交表略大的
2. 水平数相等,因数不相等时,取行数刚好比自定义正交表略大的,因数刚好比自定义正交表略大的。比如:自定义为: L7(3**3), 我们选取为 L9(3**4), 套用之后,最后一列因素去掉
3. 水平数不相等时,即:混合正交表。
例:
有五个因素(变量):
A、B、C、D和E
两个因素有两个水平(变量的取值)、两个因素有三个水平,一个因素有六个水平:
A:A1、A2
B:B1、B2
C:C1、C2、C3
D:D1、D2、D3
E:E1、E2、E3、E4、E5、E6
自定义为:L11(2^2 3^2 5^1)
选择正交表:
表中的因素数(变量)>=5
表中至少有二个因素的水平数(变量的取值)>=2
至少有另外二个因素的水平数>=3
还至少有另外一个因素的水平数>=6
行数取最少的一个:L49(7^8)或者L18(3^6 6^1))
结果:L18(3^6 6^1)
例:
m1=5 k1=5
m2=2 k2=1
n=22
自定义为:L22(5^5 2^1)
没有正好等于22的正交表,此时选择大于22并且满足m>=max(m1=5, m2=2), k>=k1+k2=6 的正交表,查到有
L25(5^6)、L49(7^8) 都符合,选择行数少的,即:最终选择 L25(5^6)
对于混合正交表,可以使用allpairs工具辅助我们进行选择。
allpairs工具使用:
1)制作取值表(不要编号) 因素和水平 (因素是一行 。。。。 )
2)制作的取值表复制到一个txt文本中(不要改格式) user.txt
3)把txt文本放入allpairs工具的文件夹中
4)在文件夹中运行 cmd (我到达了这个文件夹下面)
4)在allpairs工具的文件夹路径下使用DOS命令:
allpairs.exe 建立的txt文本 > 用例结果文本(可以不存在)
例:
测试:如何选择合适的正交表相关推荐
- 福禄克光纤测试如何选择合适的光纤链路测试标准?
本期我们和大家一起讨论福禄克光纤测试如何选择合适的光纤链路测试标准?不仅在新建数据中心.办公大楼时是必须采用综合布线认证测试作为验收测试的,此外我们日常的网络维护.故障诊断也是需要相对应的检测手段快速 ...
- 正确选择合适的移动应用测试工具很重要
您知道吗,据Statista称,到 2025 年,智能手机用户数量将达到 182.2 亿?其实也不用惊讶,数字化转型正在飞速发展,并将继续如此.这给移动应用程序开发市场带来了各种选择,并引发了对最佳移 ...
- 软件测试/测试开发丨Java or Python?测试开发工程师如何选择合适的编程语言?
很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对 ...
- 带负荷测试要求二次最小电流_开关柜设计人员如何选择合适的零序电流互感器?...
作者介绍了开关柜内配零序电流互感器(适用于0.38-66kV),分析特性,探讨如何选择合适的零序电流互感器,以期达到最佳的使用效果. 1 概述 在中压电力系统的项目中,我们开关柜的设计人员经常会遇到开 ...
- 为你的集成需求选择合适的ESB
公司内外的不同应用间需要进行相互通信.企业服务总线(Enterprise Service Bus,ESB)已经被视为支持应用集成的工具.但是ESB是什么呢?什么时候使用集成套件(integration ...
- 嵌入式工程师该如何选择合适的开发系统
在进入正题之前,需要先理解"嵌入"的概念,在工程师来看主要从以下3个方面入手. 1.从硬件上,将基于CPU的处围器件整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CP ...
- redis value多大会影响性能_选择合适Redis数据结构,减少80%的内存占用
前言 redis作为目前最流行的nosql缓存数据库,凭借其优异的性能.丰富的数据结构已成为大部分场景下首选的缓存工具. 由于redis是一个纯内存的数据库,在存放大量数据时,内存的占用将会非常可观. ...
- (转)如何选择合适的射频模块
要选择合适的射频模块,以下几个问题我们都需要搞搞清楚:无线设备该通多远.该用多大的功率.如何扩大通信距离.天线是否该重视.该选什么样的模块.初学者如何选择仪器.如何确定通信状况等等. 无线设备该通多远 ...
- 一条案例:如何选择合适的第三方数据源
一条案例:如何选择合适的第三方数据源 真实案例阐述 不论是银行还是非银机构进行金融信贷产品展业过程中,都需要持续的与外界资源进行互换沟通.获客.导流.风控.委外催收,正是因为整个产业链条的分工合作,金 ...
- 选择合适的垃圾收集器
HotSpot虚拟机提供了种类繁多的垃圾收集器,选择太多反而令人踌躇难决,若只挑最先进的显然不可能满足全部应用场景,但只用一句"必须因地制宜,按需选用"又未免有敷衍的嫌疑,本节我们 ...
最新文章
- ParLECH: Parallel Long-Read Error Correction with Hadoop
- Android JNI入门第七篇——C调用Java
- python的concat用法_Pandas串联操作concat()用法介绍
- 160个Crackme036
- OS / Linux / 主线程退出了,子线程会退出吗?
- 3000元电脑配置_2019年全新九代i59400F配RTX2060打游戏的装机电脑配置清单及价格...
- ITK:在没有写访问权的情况下迭代图像中的区域
- Windows10家庭中文版没有本地策略选项完美解决方案
- Java GUI应用程序关闭陷阱
- $(this)与this.id速度比较
- 观察者模式java类图_初探Java设计模式------观察者模式
- Qt4_读取和写入二进制数据
- 热炉法则:规章制度面前人人平等 | 每天成就更大成功
- IBM和DoE推出世界上最快的超级计算机
- Somebody Loved
- Apache RocketMQ源码学习之生产者发送消息
- 如何在python中获得当前时间前几天的日期
- 使用PHPstudy在Windows服务器下部署PHP系统
- JAVA面试题(选择题)
- Mysql连接命令join