测试用例设计方法:正交试验冲锋

1 引言
上篇讲了因果图和判定表法,而这两种方法在变量值很多、排列组合数量极大的场景下,会生成非常庞大且冗余的测试用例,此时我们很难对所有组合场景进行全量测试用例覆盖,基于此短板,正交试验法应运而生。

2 概念及原理
2.1 定义
正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验
思想:用部分试验来代替全面试验,通过对部分试验结果的分析,了解全面试验的情况。
全面试验:可以分析各因素的效应,交互作用,也可选出最优水平组合。但全面试验包含的水平组合数较多,工作量大,在有些情况下无法完成。

2.2 正交表
使用正交试验法设计测试用例的核心在于正交表的选取,正交表是一整套规则的设计表格,一般表示为:

其中,L代表是正交表,n代表正交表的行数(即测试用例数),k代表因素的个数或正交表的列数(即输入条件的个数),m表示每个因素的水平数,且有n=k*(m-1)+1

因素(Factors) 表示在一项试验中,需要观察的变量
水平数(Levels) 表示在试验范围内,任何单个因素能够取得的值得最大个数(变量的取值)
举个栗子:

正交表必须满足以下两个特点,有一条不满足,就不是正交表:

每列中不同属性值出现的次数相等。
这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件
在任意2列横向组成的属性值对中,每种属性值对出现的次数相等。
这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性
这也是正交表的两大优越性,即“均匀分散性,整齐可比”。通俗的说,每个因素的每个水平与另一个因素各水平各碰一次,这就是正交性。

3 方法步骤
3.1 整体流程
1.确定因素(变量)和每个因素的水平数(变量取值);
2.根据因素数和水平数确定n值,这里区分2种情况:

单一水平正交表(各因素的水平数相同)

混合水平正交表,即各因素的水平数不完全相同的正交表

3.选择合适的正交表;
4.根据正交表把变量的值映射到表中,每一行的各因素的取值组合作为一个测试用例。

3.2 选择正交表
1.查Dr. Genichi Taguchi 设计的正交表:Dr. Genichi Taguchi 正交表https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
2.SAS标准技术支持:SAS设计正交表http://support.sas.com/techsup/technote/ts723_Designs.txt

查找时需要关注不同类型的正交表,区分以下2种情况:

1.单一水平正交表:

2.混合水平正交表:

当有2个或2个以上正交表可以被选择时,选取原则是:选试验次数最少的那个正交表。

4 举个栗子
场景:对支持4种特殊场景的破损类异常三级类型的报备功能进行测试
异常三级类型 = 外包装破损,商品腐坏,外包完好内物破损/泄漏
特殊场景 = 打包不规范,违规揽收,集包封签异常,车辆封签异常
上传方式 = 单条上报,批量上传

4.1 传统方法:全量覆盖
分析上述测试需求,根据规格描述有:
异常三级类型(外包装破损,商品腐坏,外包完好内物破损/泄漏)
特殊场景(打包不规范,违规揽收,集包封签异常,车辆封签异常)
上传方式(单条上报,批量上传)
因此有3个被测元素(因素),每个因素分别有3、4、2个取值。
针对所有因素的全部水平值进行全排列,测试用例个数:3_4_2=24,具体用例如下:
4.2 正交试验法设计用例
1.根据因素数和水平数确定n值:

2.选择合适的正交表。根据计算得出n=6,在 Dr. Genichi Taguchi 正交表 查找发现不存在n=6的正交表,这时我们就需要根据如下原则确定使用的正交表:

查找同时满足 n>6 && m>=max(m1=3,m2=4,m3=2) && k>=k1+k2+k3=1+1+1=3的正交表;
当有2个或2个以上正交表可以被选择时,选择试验次数最少的那个正交表,本次选取L16b。
3.将各因素水平值填入映射表,每一行转换成一个测试用例,测试用例数量:12个,可以看到,比全量覆盖方法得到的用例数减少了50%。

4.3 PICT生成正交试验测试用例
虽然使用正交试验法可以帮助我们筛选合适的测试用例,提升测试效率,但选择正交表并输出测试用例的过程却需要耗费一定的时间,那么有没有更加快捷的方法呢?

当然有!PICT这个小工具只需要我们提供所有的因素及变量值,它就可以帮助我们自动生成正交试验的测试用例了,接下来让我们学习一下如何使用PICT生成测试用例吧!

在使用PICT直接生成测试用例之前,需要先准备需要生成测试用例的txt文件,这个txt文件必须放在安装目录的同一个文件夹下,否则没有作用。

本次建立了一个名称test_pict.txt的文件,在文件中输入所有的因素及变量值,每一行是一个因素及其对应的所有变量值枚举,因素名称与变量值枚举之间用 “:” 连接,各变量值之间用“,”连接,均为英文符号,无空格,如:

异常三级类型:外包装破损,商品腐坏,外包完好内物破损/泄漏
特殊场景:打包不规范,违规揽收,集包封签异常,车辆封签异常
上传方式:单条上报,批量上传
注意编码格式是ANSI,否则会乱码(可以使用Notepad++改变编码格式),如下图:

下面就开始准备测试用例的生成了,打开DOS窗口;

首先把目录切换到pict安装目录,本次为C:\Users\chenyuting50\Downloads,使用该命令:

pict test_pict.txt 即可自动生成测试用例,如下图:

接下来需要执行:pict test_pict.txt >text_pict.xls命令,将测试用例保存到text_pict.xls文件中,该文件仍会存放在安装目录下,打开该文件内容如下,每行数据即为一条测试用例:

5 总结
但正交试验法并不适用于强流程性需求的测试用例设计,这些场景我们就需要借助功能图法或场景法来进行测试用例的设计,这些方法又该怎样使用呢?

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过国家网络风险管理方法提供安全的网络环境

印度尼西亚通过讨论网络安全法草案启动了其战略举措。不过,政府和议会尚未就该法案的多项内容达成一致。另一方面,制定战略性、全面的网络安全方法的紧迫性从未像今天这样重要。 其政府官方网站遭受了多起网络攻击,引发了人们对国家网络安全…

C++系列-附录-windows下安装C++环境

C系列-附录-windows下安装C环境 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 参考 Windows搭建C编程环境(VSCodeMingw-w64) C编译器有哪些 MSYS2 介绍、下载与安装、Pacman常用命令 C编译器简介 常见的C编译器 C编译器是将C源代码翻译成可执…

FingerprintService启动-Android13

FingerprintService启动-Android13 1、指纹服务启动1.1 rc启动Binder对接指纹厂商TA库1.2 FingerprintService启动1.2.1 SystemServer启动FingerprintService1.2.2 注册Binder服务fingerprint 2、获取底层信息2.1 AIDL 对接TA中获取2.2 指纹类型判断 android13-release 1、指纹…

PythonStudio=vb7国人写的python可视化窗体设计器IDE,可以替代pyqt designer等设计器了

【免费】PythonStudio-1.1.5-x86最新版国人开发的python界面ide,可以制作窗体资源-CSDN文库https://download.csdn.net/download/xiaoyao961/88688447 【免费】PythonStudio-1.1.5-x64-Setup.exe国人开发的python界面ide,可以制作窗体资源-CSDN文库https…

C# WPF上位机开发(以始为终,寻找真实的上位机需求)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 c# wpf、qt、mfc这些上位机的需求是真实存在的,在现实中有很多应用的地方,这一点大家都很清楚。而程序员本身呢&#xff0c…

Linux:/proc/sys/vm/目录各文件详解

目录 前言一、/proc/sys/vm/目录各文件二、相关功能的API函数 前言 /proc/sys/vm/ 目录是 Linux 系统中的一个特殊目录,它包含了与虚拟内存子系统相关的系统内核参数。这些参数可以用来配置系统的虚拟内存管理策略,包括内存分配、页面置换、内存压缩、NU…

AI提示词入门教程

AI提示词的基本原则与技巧 文章目录 AI提示词的基本原则与技巧前言原则1: 尽可能保证下达的指令“清晰、没有歧义”使用分隔符清楚地指示输入地不同部分要求结构化地输出让模型检查是否满足条件少样本提示 原则2:给AI思考的时间,以及完成任务…

前端八股文(CSS篇)二

目录 1.css中可继承与不可继承属性有哪些 2.link和import的区别 3.transition和animation的区别 4.margin和padding的使用场景 5.::before和:after的双冒号和单冒号有什么区别? 6.display:inline-block什么时候会显示间隙 7…

在MySQL中使用VARCHAR字段进行日期筛选

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

从仿写持久层框架到MyBatis核心源码阅读

接上篇手写持久层框架:https://blog.csdn.net/liwenyang1992/article/details/134884703 MyBatis源码 MyBatis架构原理&主要组件 MyBatis架构设计 MyBatis架构四层作用是什么呢? API接口层:提供API,增加、删除、修改、查询…

听GPT 讲Rust源代码--library/panic_unwind

File: rust/library/panic_unwind/src/seh.rs 在Rust源代码中,rust/library/panic_unwind/src/seh.rs这个文件的作用是实现Windows操作系统上的SEH(Structured Exception Handling)异常处理机制。 SEH是Windows上的一种异常处理机制&#xff…

计算机网络【HTTP 灵魂拷问?】

1. HTTP 报文结构是怎样的? 对于 TCP 而言,在传输的时候分为两个部分:TCP头和数据部分。 而 HTTP 类似,也是header body的结构,具体而言: 起始行 头部 空行 实体由于 http 请求报文和响应报文是有一定区别,因此…

FPGA - 240102 - FPGA期末速成

TAG - F P G A 、期末、速成 FPGA、期末、速成 FPGA、期末、速成 // – 习题1 – //CPLD(Complex Programmable Logic Device)是 Complex PLD 的简称,一种较 PLD 为复杂的逻辑元件。CPLD 逻辑资源多寄存器少,FPGA 逻辑弱而寄存器…

Zookeeper-Zookeeper选举源码

看源码方法: 1、先使用:先看官方文档快速掌握框架的基本使用 2、抓主线:找一个demo入手,顺藤摸瓜快速静态看一遍框架的主线源码,画出源码主流程图,切勿一开始就陷入源码的细枝末节,否则会把自…

Docker:部署若依前后端分离版

Docker:部署若依前后端分离版 1. 停止天翼云上的原来跑的若依项目2. 停止腾讯云上的若依项目3. 使用Docker部署3.1 天翼云数据库&Redis3.1.1 部署数据库3.1.2 部署Redis数据库3.1.1 部署Nginx(这里被天翼云坑了换的腾讯云运行nginx) 3.2 腾讯云部署后端&前端…

C#编程-使用条件构造

使用条件构造 作判定是人的基本能力。判定也是可收编进程序。这有助于确定程序执行指令的顺序。 您可用条件构造来控制程序的流程。条件构造允许您基于被求职的表达式的结果来执行选定语句。 可以包含在C#程序中的各种条件构造是: if…else 构造switch…case 构造if…else构…

多线程学习笔记(二)

1 .如何实现子线程先执行,主线程再执行? 启动子线程后,立即调用该线程的join()方法,则主线程必须等待子线程执行完成后再执行。 ​ 扩展阅读 ​ Thread类提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序…

71内网安全-域横向网络传输应用层隧道技术

必备知识点; 代理和隧道技术的区别? 代理主要解决的是网络访问问题,隧道是对过滤的绕过, 隧道技术是为了解决什么 解决被防火墙一些设备,ids(入侵检测系统)进行拦截的东西进行突破&#xff0…

大华主动注册协议介绍

一、大华主动注册协议介绍 前面写了一篇文章,介绍一些设备通过大华主动注册协议接入到AS-V1000的文章,很多问我关于大华主动注册协议的相关知识。 由于大华主动注册协议是一种私有协议,通常不对外公开详细的协议规范和技术细节。因此…

UDS诊断(ISO14229-1) 27服务

文章目录 功能简介应用场景安全解锁基本原理请求和响应1、请求2、子功能3、肯定响应4、否定响应 注意报文示例UDS中常用 NRC参考 功能简介 27服务,即 SecurityAccess(安全访问)服务,安全理念采用的是种子与密钥式关系。 应用场景…