先给大家简单介绍两个重要的算法:“ OATS(Orthogonal Array Testing Strategy)” 和 “Pairwise/All-Pairs Testing”,简称 “正交表法” 和 “配对测试法”。

正交表法

正交表法有两个重要的特性,大家尝试着理解一下:

1.每列中不同数字出现的次数相等

备注:这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。

2.在任意两列其横向组成的数字对中,每种数字对出现的次数相等

备注:这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性。

举个例子:有三个字段,每个字段可以取三个值,设字段表现为 A(A1,A2,A3)、B(B1,B2,B3)、C(C1,C2,C3),可以组成的集合恰好可以表现为一个三维空间图,如下图所示:

图中的正方体中每个字段的每个水平代表的是一个面,共九个面,任意两个字段的水平之间都存在交点,共 27(3x3x3)个,这就是笛卡尔积。按照两大特性设计出的正交表如右图所示,试验点用⊙表示。我们看到,在 9 个平面中每个平面上都恰好有三个点而每个平面的每行每列都有一个点,而且只有一个点,总共九个点。这样的试验方案,试验点的分布很均匀,试验次数也不多。

国外有一个网站能查询正交表的结果案例:http://www.york.ac.uk/depts/maths/tables/orthogonal.htm

配对测试法

配对测试法(Pairwise)是 L. L. Thurstone( 1887 – 1955) 在 1927 年首先提出来的。他是美国的一位心理统计学家。Pairwise 是基于数学统计和对传统的正交分析法进行优化后得到的产物。

定义:Most field faults were caused by either incorrect single values or by an interaction of pairs of values." If that's generally correct, we ought to focus our testing on the risk of single-mode and double-mode faults. We can get excellent coverage by choosing tests such that 1) each state of each variable is tested, and 2) each variable in each of its states is tested in a pair with every other variable in each of its states. This is called pairwise testing or all-pairs testing.

大概意思是:缺陷往往是由一个参数或两个参数的组合所导致的,那么我们选择比较好的测试组合的原则就是:

1)每个因子的水平值都能被测试到;

2)任意两个因子的各个水平值组合都能被测试到,这就叫配对测试法。

参看:http://www.developsense.com/pairwiseTesting.html

Pairwise 基于如下 2 个假设:

每一个维度都是正交的,即每一个维度互相都没有交集。

根据数学统计分析,73% 的缺陷(单因子是 35%,双因子是 38%)是由单因子或 2 个因子相互作用产生的。19% 的缺陷是由 3 个因子相互作用产生的。

因此,基于覆盖所有 2 因子的交互作用产生的用例集合性价比最高而产生的。国外也有一份类似的数学统计:

我们通过一个订飞机票的实际例子来看一下,配对测试法是怎样从笛卡尔积中提炼出局部最优解的。

依然是三个字段的组合,分别是 Destination(Canada, Mexico, USA),Class(Coach, Business Class, First Class), Seat Preference(Aisle, Window),所对应的笛卡尔积共有 3x3x2=18 中测试组合,如下表所示。

经过配对测试法筛选后,结果如下:

经过筛选以后,我们的测试用例变成了 9 条,case 数量精简了 50%。简单总结 pairwise 的筛选原理就是,发现两两配对在全集中有重复的就去掉其中之一,这样筛选也有副作用,每次筛选完了条数是固定的,但是结果却不尽相同。但是通过上面的介绍我们不难比较出两种算法的差异。

备注说明:

该文应该是搜集整理过来的,只是觉的定义和解释的比较规范,非本人原创.若有不当,请联系我,更新援引说明.

C语言正交表测试用例,测试用例设计之正交表法和配对测试法相关推荐

  1. 测试用例设计之正交表法详解

    正交实验法的由来 拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表. 数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的 ...

  2. 测试用例---常用设计方法,等价类,边界值,因果图判定表,正交表,场景法,大纲法

    等价类划分 1.概念:等价类划分属于典型的功能测试方法,根据程序对数据的要求,把程序的输入域划分成若干个部分,区分出那些是有效的,那些是无效的,每个区域选取典型数据为测试用例.每个区域中的输入时等价的 ...

  3. 测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

    目录 一.测试用例的万能公式 二.对登录页面设计测试用例 三.测试用例的设计方法 3.1 基于需求的设计方法 3.2 等价类 3.3 边界值 3.4 判定表 3.5 正交排列 3.6 场景设计法 3. ...

  4. 2021最详细的测试用例的设计方法及案例——骚操作

    测试用例的设计方法 一.概念 1.什么是测试用例? 在测试过程中很重要的一类文档,它是测试工作的核心.是一组在测试时输入输出的标准.是软件需求的具体对照. 2.测试用例的作用: 检验软件是否满足客户需 ...

  5. 软件测试(4) 测试用例和设计方法

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 用例设计和编写的作用 2 测试用例编写注意事项 3 黑盒测试用例设计方法 3.1 测试数据选择 等价类划分法 边界值分析法 实战案例 3.2 测 ...

  6. 常见测试用例的设计方法

    测试用例常见的设计方法 测试用例常见的设计方法有:等价类划分法.边界值分析法.错误推测法.判定表法.正交实验法. 一.等价类划分法 顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们 ...

  7. (转)测试用例的设计方法(全)之三 判定表、正交实验

    测试用例的设计方法(全)之三 (5)判定表驱动分析方法 一.    方法简介 1.定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 2.判定表的优点 能够将复杂的问题按照各种可能的情况全 ...

  8. 软件测试之测试用例的设计

    目录 测试用例 什么是测试用例 测试用例的基本要素 评价测试用例的标准: 测试用例的设计方法 测试用例的总体设计方法还是基于需求设计 具体的设计方法(6种) 等价类划分 边界值 因果图(逻辑图) 正交 ...

  9. 测试用例的设计方法(全)

                                                 测试用例的设计方法(全) 等价类划分方法: 一.方法简介 1.定义   是把所有可能的输入数据,即程序的输入域 ...

  10. 测试用例的设计方法--比较全的

    等价类划分方法:     一.方法简介 1.定义   是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑 ...

最新文章

  1. 图˙谱˙马尔可夫过程˙聚类结构----by林达华
  2. java mysql 文本导入数据语句_Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL...
  3. Ubuntu常用服务器环境搭建——Nginx+PHP篇
  4. Android开发之高仿三方授权登录的实现方案类似微信登录QQ登录微博登录人人网登录
  5. git拉取分支报错:fatal:‘XXX' is not a commit and a branch ‘XXX' cannot be created from
  6. 面试官:谈谈数据库连接池的原理
  7. 靠一平台构建核心指标系统,数据分析让业务运营效率提升90%
  8. C++ 字符串流stringstream(附蓝桥杯2018年第九届真题缩位求和题解)
  9. Citrix XenApp 5.0 Uninstall
  10. AT5 two-dimensional objects - the torus and genus
  11. 锁机制有什么用?简述Hibernate的悲观锁和乐观锁机制
  12. 2016年5月25日下午(妙味课堂js预热课程-4笔记一)
  13. Windows10安装 virtualbox虚拟机
  14. InfoGAN 翻译
  15. 【STP】生成树协议及STP 802.1D (上)
  16. 神经滤镜为什么不能用,ps神经网络滤镜安装包
  17. 快速原型VS敏捷、迭代
  18. UT斯达康MC8638S-高安-S905-河北联通-破解刷机线刷固件包
  19. DWH的保留原始历史数据的一种方法
  20. php 8bit 10bit 解码,求助:我想把10bit的MKV压制成8bitMP4

热门文章

  1. python分秒换算_度换算成度分秒的Python操作方法
  2. Kali系统下载Thefatrat太慢怎么办?
  3. windows server 2012 安装 VC14(VC2015) 安装失败解决方案
  4. 如何在 Mac 上映射网络驱动器
  5. element-ui的pagination分页 增加首页和末页
  6. php 真太阳时间修正,北京时间与全国各地真太阳时
  7. MySQL数据库常用命令大全
  8. 伍德里奇计量经济学第五版第四章计算机操作,伍德里奇计量经济学第四章
  9. c语言方框透视原理,FPS游戏的方框透视+自瞄原理
  10. s7200cpu224xp手册_西门子S7-200 CPU224XP