测试用例设计方法之正交法

news2025/7/15 3:43:50

概念:

正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

为什么使用正交法?

  • 对于单因素或两因素实验,因其因素少,实验的设计、实施与分析都比较简单。但在实际工作中,常常需要同时考察3个或3个以上的实验因素,若进行全面实验,实验的规模很大,由于时间和成本的限制我们不可能进行全面实验,但是具体挑其中的哪些测试用例进行测试我们心里拿不准,总担心遗漏了未挑选的测试用例从而造成一些严重缺陷;
  • 为了有效的、合理地减少测试的工作量与和成本,我们利用正交实验法来设计测试用例。正交实验法就是为多因素实验、寻求最优水平组合的一种高效率的实验设计方法。
  • 在实际应用中,对于多因素多水平的试验,安排全面试验是不现实的。我们选择其中一部分组合,利用正交表安排试验,试验次数不多,也能得到比较满意的效果。

使用场景:

  • 输入的参数之间是独立的,不存在相互依赖的关系;
  • 功能测试,配置测试。

优点:

能在很多试验方案中挑选出代表性强的少数几个试验方案,并且通过这些试验方案的结果的分析,推断出最优方案,同时还可以作进一步的分析,得到比试验结果本身给出的还要多的有关各因素的信息。

直接套用,经济高效。根据正交性,从全面实验中挑选出部分有代表性的点进行实验。通过使用正交实验法减少了测试用例,合理地减少测试的工时与费用,提高测试用例的有效性。是一种高效率、快速、经济的实验设计方法;(也就是说,有些不重要的因素,直接给忽略了,这样测试用例会减少。)

缺点:

对每个状态点同等对待,重点不突出,容易造成在用户不常用的功能或场景中,花费不少时间进行测试设计与执行,而在重要路径上反而没有重点测试。

正交表的知识点:

因素:在一项试验中,凡欲考察的变量称为因素(变量)
水平:在试验范围内,因素被考察的值称为水平(变量的取值)
 

行数:正交表中的行的个数,即试验的次数。
因素数:正交表中列的个数。
水平数:任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”
从1到“水平数”。

(这里的公式,和下边的图不一样,计算的是下图N的值,仔细阅读)

正交表计算实验次数:        (水平数-1)*因素数+1        (混合正交表不适用于这样的计算方式)

所以后续我们使用allpairs软件来解决复杂难算的问题(前人栽树,后人乘凉)

 

 

L8(2^7)有 8行7列,表中由数字1,2组成; L9(3^4)有9行4列,表中由数字1,2,3组成;

正交法设计测试用例的步骤:

  1. 找到因素数和水平数
  2. 用allparis工具来生成正交表
  3. 根据正交表编写测试用例
  4. 补充测试用例
     

举个例子:

需求:用户信息填写,姓名,电子邮箱,密码,确认密码,验证码

1.找到因素数和水平数

因素数:姓名,电子邮箱,密码,确认密码,验证码 (总共有5个因素)

水平数:填写,不填写                                                (各因素的水平数都相等,都是2)

2.用allparis工具来生成正交表

a.首先使用Excel把因素数和水平数写上去(格式一定要正确)

 

 b.复制粘贴到        1125.txt        里面

 

c.将        1125.txt         移动到此目录

d. win+r        cmd

 

注意命令框的路径

 

结果生成了!

 

注意:使用allparis生成的正交表和实际的正交表有出入,但是仍然不影响我们使用allpairs来设计测试用例! 

3.根据正交表编写测试用例:

 4.补充测试用例

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

49 - 多态的概念和意义

---- 整理自狄泰软件唐佐林老师课程 1. 函数重写回顾 父类中被重写的函数依然会继承给子类子类中重写的函数将覆盖父类中的函数通过作用域分辨符(::)可以访问父类中的函数 p->print()不符合预期,期望调用子类中的print,实际调…

【知识网络分析】研究者合作网络(co-investigator)

研究者合作网络(co-investigator) 1 数据集读取2 网络数据集精简3 网络最大子群获取并可视化4 社团群体分类筛选5 求解网络图中节点中心度相关的指标值并进行可视化1 数据集读取 此处的合作作者(co-investigator)是指基金数据中的作者,数据集 来自于官网提供的加拿大国家…

redis数据库windows下c语言库的编译

使用cmake和make工具进行windows下的编译 下载 1.hiredis下载地址 https://github.com/redis/hiredis 克隆源码 2.cmake下载地址 https://cmake.org/ 3.make for windows http://www.equation.com/servlet/equation.cmd?fa=make 4.mingw 64位 https://download.csdn.net/d…

USB Network Native Driver for ESXi更新支持ESXi8.0

在ESXi8.0发布一个多月后,社区版的USB网卡驱动终于在flings上更新了,USB Network Native Driver for ESXi | VMware Flings Nov 23, 2022 - v1.11 Added support for ESXi 8.0 ESXi800-VMKUSB-NIC-FLING-61054763-component-20826251.zip md…

如何根据不同需求给Word文档设置保护?

Word文档可以设置不同的保护模式,我们可以根据不同需求选择合适的方法,下面介绍一下常用的3种方法。 方法一: 如果不想Word文档被随意打开,我们可以设置打开密码,只有输入正确的密码才能打开文件。 首先&#xff0c…

Metabase学习教程:视图-4

将数据可视化为直方图 学习何时使用直方图,以及元数据库如何使创建直方图更容易。 我们将逐步创建直方图,它是一种条形图,显示连续范围内的数据组。柱状图有助于深入了解人们可能购买的商品的数量、他们可能购买的价格范围,甚至…

JS 数据结构:集合

集合 集合是由一组无序且唯一(即不能重复)的项组成的。该数据结构使用了与有限集合相同的数学概念。ES6 JS 原生实现了集合 Set 数据结构(具体看这篇文章JS Set 与 weakSet),但是没有取两集合交集、并集、差集的 API …

机器学习笔记之高斯网络(二)高斯贝叶斯网络

机器学习笔记之高斯网络——高斯贝叶斯网络引言回顾高斯网络贝叶斯网络:因子分解高斯贝叶斯网络:因子分解引言 上一节介绍了高斯网络及其条件独立性,本节将介绍高斯贝叶斯网络。 回顾 高斯网络 高斯网络最核心的特点是:随机变…

SpringBoot 多点互斥登录(web应用安全) 保姆级教程

1.什么是互斥登录 在实际生活中,很多网站都做了多点登录互斥的操作,简单来说就是同一个账号,只能在一台电脑上登录,如果有人在其他地方登录,那么原来登录的地方就会自动下线,再进行操作就会弹出登录界面。 …

【远程调用 MySQL数据库并操作】——使用NATAPP搭建内网穿透远程访问MySQL数据库并使用 Python新建、写入、读取、删除数据【详细版】

所有的程序都是免费的!! Python MySQL NATAPP 点个赞留个关注吧!! NATAPP 安装使用教程 官网 NATAPP 下载 官网 NATAPP配置教程 1、进入NATAPP 登录/注册 进行登录,没有的注册一下,需要实名认证哦&am…

python基础之字符串

文章目录一、字符串定义二、字符串相关使用三、空白字符表示哪些?四、实例1.要求:顺序并且居中对齐输出以下内容2.要求:1.将字符串中的空白字符全部删去;2.再使用“ ”作为分隔符,拼接成一个整齐的字符串五、字符串的切…

【vscode】远程云主机的报错

win11 之前在另一台电脑上的vscode是可以的 新电脑拷贝了vs的配置,但是远程不行了。 Install terminal quit with output: 过程试图写入的管道不存在。 发现连接不到远程以为是konw hosts 的问题, 删除了要访问ip的内容,还是不行&#x…

网络程序设计——异步选择模型(基于消息的选择、基于事件的选择)

目录 一、异步选择模型 1、基于消息的选择模型 (1)WSAAsyncSelect模型 (2) WSAAsyncSelect()函数 (3)使用 WSAAsyncSelect模型接收数据的过程 (4)WSAAsyncSelect模型的编程方法…

IDEA常用插件

笔记来源于B站视频 以下为视频的地址 【【尚硅谷】IDEA2022全新版教程,兼容JDK17(快速上手Java开发利器)】https://www.bilibili.com/video/BV1CK411d7aA?p26&vd_source581d732b20cb23e01428068f153a99ed 推荐1:Alibaba J…

MCE丨重组蛋白常见的融合标签

Q:什么是融合标签? A:融合标签是指利用 DNA 体外重组技术,在目的蛋白 N 端或 C 端进行融合表达的特定蛋白、多肽或寡肽标签。 Q:融合标签有什么作用? A:重组蛋白通过融合标签与包被在固相基质上…

第六章《类的高级特性》第5节:接口

在Java语言中,一个类只能继承一个父类,专业上把这种继承机制称为“单继承”。单继承是一种较为稳妥继承机制,能够规避很多潜在的问题,但这种继承机制的局限性也显而易见:子类不能从多个父类中继承属性和方法,从而无法最大程度的减少重复劳动。为了弥补这个缺陷,Java语言…

web前端-javascript-关系运算符(>、>=、<、<=、非数值,Unicode 编码说明)

文章目录关系运算符1. 说明2. > 大于号3. > 大于等于4. < 小于号5. < 小于等于6. 非数值的情况6.1. 对于非数值进行比较时&#xff0c;会将其转换为数字然后再比较6.2. 如果符号两端都是字符串时&#xff0c;不会将其转换为字符串进行比较6.3. 任何值和 NaN 做任何…

为什么单线程的Redis如此的快(Why is single-threaded Redis so fast)

视频地址&#xff1a;YouTube Why is Redis so fast? What fundamental design decisions did the developers make more than a decade ago that stood to test of time. Let’s take a look. Redis is a very popular in-memory database. It’s rock solid, easy to use, a…

HittER: Hierarchical Transformers for Knowledge Graph Embeddings

HittER: Hierarchical Transformers for Knowledge Graph Embeddings HittER由两部分组成&#xff1a; 1&#xff0c;底部&#xff1a;Entity Transformer 源实体的局部邻居的每个实体-关系对的特征提取。负责将实体关系对中所有有用特征打包成向量&#xff0c;以供顶部块使用…

mysql基础部分第一次复习(1-8章,到聚合函数)

基本的使用 show databases; create database 数据库名; //创建数据库 use 数据库名&#xff1b; //使用数据库 使用完use语句之后接下来的SQL操作都是针对当前数据库的了show tables; //查看某个数据库的所有表格 show tables from 数据库名&#xff1b;create table 表名称{…