需求:

窗体中有多个控件(字体、字符样式、颜色、字号),

每个控件有多个取值

字体:仿宋、楷体、华文彩云

字符样式:粗体、斜体、下划线

颜色:红色、绿色、蓝色

字号: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文本 > 用例结果文本(可以不存在)

例:

软件测试---如何选择合适的正交表相关推荐

  1. 软件测试/测试开发丨Java or Python?测试开发工程师如何选择合适的编程语言?

    很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对 ...

  2. 正确选择合适的移动应用测试工具很重要

    您知道吗,据Statista称,到 2025 年,智能手机用户数量将达到 182.2 亿?其实也不用惊讶,数字化转型正在飞速发展,并将继续如此.这给移动应用程序开发市场带来了各种选择,并引发了对最佳移 ...

  3. 软件测试如何选择适合自己的工作?

    一年一度的金三银四就业季又来了,这个阶段不仅是各企业在选择合适的人才,也是优秀的人士在挑选自己心仪公司的时候.不管怎样,软件测试工程师只要掌握了过硬的技术就会有更多选择的机会.今天我就来和大家聊聊软件 ...

  4. 和12岁小同志搞创客开发:如何选择合适的传感器?

    目录 1.信号采集 2.信号输出 3.物美价廉 4.如何选型采购 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0 ...

  5. [mongodb翻译]选择合适的shard key

    为一个集合(collection)选择合适的shard key非常重要.如果这个集合非常庞大,那么将来再来修改shard key将会很困难.如有任何疑问请到论坛或者IRC寻求帮助. 示例文档 view ...

  6. R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数、阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化、基于数据阳性样本比例选择合适的分类评估指标

    R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数.阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化.基于数据阳性样本比例选择合适的分类评估指标 目录

  7. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.17 如何选择合适的拍摄地点...

    本节书摘来自异步社区出版社<淘宝网开店 拍摄 修图 设计 装修 实战150招>一书中的第1章,第1.17节,作者: 葛存山,更多章节内容可以访问云栖社区"异步社区"公众 ...

  8. 如何选择合适的NoSQL数据库

    与传统的表格(或SQL)数据库相比,NoSQL数据库为软件开发人员和其他用户提供了更高的运行速度和更高的灵活性. NoSQL数据库使用的数据结构 - 键值对,宽列,图形或文档 - 与关系数据库使用的数 ...

  9. 2.3.1 为超参数选择合适的范围

    调试处理 对于超参数,如何才能找到一个比较好的设定呢? 如图所示,我们可能会需要调试很多的超参数.但其中最重要的超参数还是学习率.被红色圈住的是最重要的超参数,橙色的是次重要的超参数.紫色是再其次重要 ...

  10. [Java并发编程(二)] 线程池 FixedThreadPool、CachedThreadPool、ForkJoinPool?为后台任务选择合适的 Java executors...

    [Java并发编程(二)] 线程池 FixedThreadPool.CachedThreadPool.ForkJoinPool?为后台任务选择合适的 Java executors ... 摘要 Jav ...

最新文章

  1. /dev/rdsk 与 /dev/dsk区别
  2. 为360极速浏览器添加搜索引擎
  3. 安卓市场官方版_尖端实用的安卓手机APP推荐 是你们想要的!
  4. Matlab中存储及读取数据
  5. 在eclipse中使用svn
  6. ActiveX技术在WEB页上的应用[转载]
  7. .Net Core2.0下使用Dapper遇到的问题
  8. linux 远程拒绝服务,Linux Kernel SCTP远程拒绝服务漏洞
  9. 【clickhouse】clickhouse 副本与分片 分片详解
  10. 关于git clone 下载apex 过程中,缺少libssl.so.1.0.0的问题
  11. sklearn 学习实践之——基于自带数据集(波士顿房价、鸢尾花、糖尿病等)构建分类、回归模型
  12. java8 新特性_Java8新特性系列之-日期处理详解(二)
  13. 酱茄社区论坛圈子小程序pro更新与WordPress开源版小程序下载
  14. Axure产品设计软件视频教程大全
  15. [博应用软件]如何正确安装路由器?
  16. HTML调用Java函数或语句,在动态THML语句中调用JS函数传递带空格参数的问题
  17. C语言核心知识点大汇总
  18. Python爬虫实战:爬取YY上漂亮小姐姐视频
  19. SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图...
  20. Linux netfilter 学习笔记 之十五 netfilter模块添加一个match

热门文章

  1. css中字体的大小怎么设置,css样式中怎么设置字体大小
  2. 网站通行证的交互设计分析
  3. android 平板root,安卓平板电脑怎么root 安卓平板一键root方法_硬件教程
  4. FreeSWITCH权威指南-基础篇-1.4-信令
  5. [工具] Mac下一键APK逆向环境
  6. axure7.0 汉化包下载
  7. android 四大组件,安卓四大组件及其作用
  8. 淘宝小程序开发demo下载
  9. python代码在哪里写_python的代码写在哪里,怎么样运行python代码
  10. vscode 软件 git提交代码步骤(结合webstorm软件)