所谓正交试验设计法(Orthogonal Experimental Design)是从大量的试验点中挑选出适量的、有代表性的点,应用依据伽罗瓦理论导出的“正交表”,合理地安排试验的一种科学的试验设计方法,是研究多因素、多水平的一种设计方法。它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备“均匀分散、齐整可比”的特点,正交试验是一种基于正交表的,高效率、快速、经济的试验设计方法。

正交试验分析法包括以下常用术语:

  • (1)指标:通常把判断试验结果优劣的标准叫做试验的指标。
  • (2)因子:是指所有影响试验指标的条件。
  • (3)因子的状态:是指影响试验因子的因素,也称之为因子的水平。

正交表的表示形式: ( n )r L m

  • (1)n 表示因子数(Factors),即正交表中列的个数。
  • (2)m 表示水平数(Levels),也称为状态,任何单个因子能够取得的值的最大个数。
  • (3)r 表示行数(Rows),正交表中行的数量,即测试用例数。

行数r=(m-1)×n+1,如34 L (2 ),测试用例数 4=(2-1)×3+1,这是等水平的正交表。但对于非等水平的正交表,其表示形式为 ( n , q )r L m p ,那么行数r=(m-1)×n+(p-1)×q+1,如11 1236 L (2 ,3 ),测试用例36=(2-1)×11+(3-1)×12+1。

正交试验分析法的步骤如下:

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

分析规格说明书,通过规格说明书提取影响该功能的因子以及每个因子可能取值的最大数,即因子状态。

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

计算各因子和状态的权值,删去一部分权值较小即重要性较小的因子或状态,使最后生成的测试用例集缩减到允许范围。

(3)画出布尔图。

如果各个因子的状态数是不统一的,几乎不可能出现均匀的情况,必须先用逻辑命令来组合各因子的状态,作出布尔图。

(4)查找最接近的相应阶数的正交表。

根据布尔图选择最接近的相应阶数的正交表,实际的测试工作中,因子和因子状态很难与正交表完全符合,所以只能选择一个阶数最接近的正交表。

(5)将实际的因子和状态带入正交表中,得到最终的正交表。

选择好正交表后,应该将实际的因子和因子水平带入正交表中,此时可能出现以下三种情况:

  • 第一种情况:因子的状态数正好和正交表的状态数相等,那么此时只需要直接替换正交表中的值即可。
  • 第二种情况:因子的状态数多于正交表中的状态数,那么此时需要先将多余的状态合并,带入正交表中,然后再将合并的中间状态展开。
  • 第三种情况:因子的状态数少于正交表中的状态数,那么只要将正交表中多出来的状态,使用实际状态中的任意值替换即可。

(6)利用正交表每行数据构造测试用例。

在使用实际因子和状态替换过的正交表中的每一行,选择数据构造测试用例即可。

【实例】某数据库查询系统的测试。

步骤1:分析规格说明书,生成因子-状态表,见表8-13。

表8-13 因子-状态表

步骤2:对因子—状态表进行加权筛选,本实例中加权筛选时,将打印方式和查询类别中的逻辑符号删掉,不进行分析,加权筛选后的因素分析表见表8-14。使用字母表示因素分析表中各种因子和状态见表8-15。

步骤3:根据因子和状态分析表画出布尔图,如图8-16 所示。

图8-16 布尔图

步骤4:选择正交表,本例选择的正交表为34 L (2 ),把21、22、23作为因子,带入正交表中,见表8-16。

将正交表中的中间结点展开,见表8-17。

步骤5:根据每行写出测试用例,以第一个测试用例为例,完成测试用例的写作,见表8-18。

表8-18 测试用例

注意:借助正交试验法虽然可以提高编写测试用例的效率,但是正交试验终归是数学推导出来的公式,因此其组合情况并没有考虑到实际取值的情况,所以很可能一些组合在实际过程中不出现,或者出现的机率很小。因为在完成正交表后,应该对正交表进行仔细的检查,将其中无效的组合删除,添加一些正交表中没有的,但实际情况可能使用机率比较高的组合。

以上步骤是使用手工进行构建正交表,实际测试过程中可以借助Allpairs 工具来自动生成正交表。使用Allpairs 工具自动生成正交表的步骤如下:

(1)首先下载Allpairs 工具,该工具是一款开源的工具。

(2)将因子和因子状态写入Excel 文件中,见表8-19。

表8-19 因子和因子状态

(3)将Excel 文件另存为以Tab 键作为分隔符的文本文件(假设保存的文件名为test.txt),保存的路径为Allpairs 工具所在的目录。

(4)运行cmd 程序,进入Allpairs 工具所在的目录,执行命令appairs.exe test.txt > output.txt;output.txt 为正交表输出的文件,内容如图8-17 所示。

图8-17 自动生成的正交表

只有TEST CASES 的内容是正交表的内容,PAIRING DETAILS 的内容不需要关注。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

可以自助拿走,群号:175317069 群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦

如果对你有一点点帮助,各位的「点赞」就是小编创作的最大动力,我们下篇文章见!

正交试验软件测试用例设计方法【建议收藏】相关推荐

  1. 【测试基础】软件测试用例设计方法

    软件测试用例设计方法 软件测试的核心就是测试用例的编写!!! 那么我们应该学习如何来编写软件测试用例呢? 通常我们会通过学习几种设计放了编写软件软件用例它们分别是等价类划分,边界值分析法,场景法,错误 ...

  2. 软件测试用例设计方法分析

    熟悉软件方法的六个纬度(测试角度) 1.架构:无架构 ---- 例如:单机版  安装,卸载 B/S 浏览器 ---- 兼容性,功能,性能,GUI 服务器 ---- 环境搭建(大的平台有专人负责部署小的 ...

  3. 软件测试用例设计方法(一)

    目录 软件测试用例设计之等价类划分法 一.等价类划分法的定义 二.等价类划分法的术语 三.等价类划分原则 四.实例演示(三角形问题和档案管理系统问题) 软件测试用例之边界值分析法 一.边界值分析法定义 ...

  4. 软件测试用例设计方法-场景法

    从本篇文章开始,进入到测试用例设计方法的分享,第一个要分享的方法就是,场景法. 相信对测试有一定基础的你会感到奇怪:用例设计方法,不是应该从等价类划分法说起吗?为什么一上来就直接说场景法呢? 对,如果 ...

  5. 软件测试用例设计方法-等价类划分法

    本篇文章,来分享大家比较熟悉的测试用例设计方法--等价类划分法. 首先,我们可以使用上一篇文章介绍的场景法来梳理业务流程. 其次,根据流程中的每个节点的需求说明,使用等价来划分来设计用例. 定义 等价 ...

  6. 软件测试用例设计方法-因果图法

    边界值法是等价类划分法的补充,所以,它们是一对搭档. 那么,判定表法有没有它的搭档呢? 答案是,有的.那就是本篇文章分享的用例设计方法-- 因果图法 . 定义 因果图法: 用来处理等价类划分和边界值考 ...

  7. 软件测试用例设计方法-判定表法

    接下来4篇分享的测试用例方法,实际工作中不常用,但是能够为测试用例提供设计思路. 首先分享的是,判定表法. 等价类划分法和边界值法着重考虑输入条件,但是忽略了输入条件的各种组合.输入条件之间的相互制约 ...

  8. 软件测试用例设计方法之边界值分析法

    边界值分析 1)概念 边界值分析方法的理论基础是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小. 2)边界值分析法设计用例 ...

  9. 功能性测试用例设计方法深入理解

    一 进行测试设计的一般流程 设计测试案例的时候,需要有清晰的测试思路,对要测试什么,按照什么顺序测试,覆盖哪些需求做到心中有数.测试用例编写者不仅要掌握软件测试的技术和流程,而且要对被测软件的设计.功 ...

  10. 软件测试用例优秀例子_功能测试用例设计方法分享

    测试用例可以用来衡量一个项目测试质量,因此在平时的测试流程中,编写测试用例就是测试过程中很重要的一步,每一个测试工程师都需要并且非常熟练的编写测试用例,能在编写测试用例中尽可能的覆盖任何异常的测试点: ...

最新文章

  1. 西亚斯vs2010敏捷开发分享
  2. 字节序是什么?(大小端 Big endian Little endian)
  3. eclipse开发android的好处,从Eclipse切换到IntelliJ IDEA for Android开发的好处
  4. 算法与数据结构(python):快速排序
  5. SpringBoot整合Shiro实现权限控制,验证码
  6. HighCharts控制不显示“上下文菜单”
  7. 风控人必知必会的征信知识
  8. ENVI Flaash大气校正与6S大气校正(Landsat8OLI)
  9. 利用Java实现简单的日报管理
  10. 固态硬盘安装与系统安装流程
  11. python app开发框架_Python可以开发APP吗?用哪个框架?
  12. js将图片url转化为Base64
  13. 人工智能设计------------意识可控与意识不可控(三)
  14. 手机内存卡格式化了怎么办
  15. 电脑文件剪切拷贝后丢失如何找回?分享文件丢失恢复办法!
  16. C#使用消息队列(MSMQ)
  17. 罗克韦尔自动化收购MESTECH Services
  18. csgo跑图文件_CSGO:萌新入坑如何快速优化游戏设置?这个跑图指令也是十分实用...
  19. Android初体验——UI
  20. 这,不是我想要的生活

热门文章

  1. 小米5miui10android,小米8 Miui10.3 最新稳定版(10.3.5.0 9.0) 快过闪电 AI 人性化设置 冰箱 流畅 实用...
  2. Web前端技术基础实验报告一之Web前端开发环境配置与HTML基础
  3. java项目(一) ——家庭收支记账系统
  4. ideaIU-2019.3.2.exe安装教程
  5. java写qq机器人插件_情迁QQ机器人JS插件/使用开发教程
  6. 交返对于高频交易者尤为重要
  7. distpicker
  8. 形式语言与自动机理论 pdf_448页伊利诺伊大学算法图书【附PDF资料】
  9. 10个炫酷特效的网页写法(附源码),拿去就能用,nice
  10. 有关Intel主板驱动静默安装的一个坑