如何自动生成测试用例方案,我来告诉你

news2024/11/29 0:41:50

目录

一、目的

二、parameters组合方法

一)、组合分析法

二)、正交实验设计法

三)、两种方法的总结:

三、response判断

四、组装战车(自动生成用例)


一、目的

受体:测试经理,测试主管,质量管理员,技术经理

做测试的,不能这样说,应该是致力于软件质量监控,就应该清楚的知道一个项目哪些是可测的,哪些是无法测试的,这些可测和不可测的其实都应该得到监控,可以实时观察到各个监控点的健康正常的运行,而这篇文章就是针对可测的监控。

测试行业,又错了,应该是质量监控行业,肯定是要有一个指标的,要不然怎么确定哪些是达标的 呢?所以对于测试用例的监控就至关重要,测试的执行结果就是依据测试用例,怎么保证测试用例的质量呢?俗话说啊,一千个人就是一千个哈姆雷特,每个的观念啊,审美啊都TM的各种奇葩,所以用例制定的再怎么规范,人家就是不去执行,就是搞个小脾气、小动作之类的,你又能怎么样呢?把他灭了吧,换个新人,还会面临这个问题,所以如果能够自动控制用例的质量就好办了。所以就有了这篇文章,如何进行“自动测试用例生成”就是这篇文章的目的。

达到自动生成用例,就要分析用例的组成,注意啊,这里说的用例都是API用例,包含:URL、parameters、response

URL就不说了就是一个地址,parameters、response是要自动的对象,还有业务逻辑其实就是URL的组合。

对于parameters,是用例的各种场景组合的依据,parameter会有很多个且每个都会多个值,术语呢是:因素数、水平数

对于response,就是测试后的结果检查,是用例的最后一个部分。

       

 

二、parameters组合方法

我通过自己笨拙的Goole搜索,只找到两种具体方法进行parameters组合:

组合分析方法和正交实验设计法。

一)、组合分析法

组合分析方法(组合测试),依据的是多因素组合测试可以生成测试用例集,以覆盖任意N个因素的所有取值组合,在理论上可以发现由N个因素共同作用引发的缺陷。简单的理解就是每一个参数的每一个值只需要和其他参数至少配对一次就够了。

pairwise算法

Pairwise是(29 May1887 – 30 September 1955)在1927年首先提出来的。他是美国的一位心理统计学家。Pairwise也正是基于数学统计和对传统的正交分析法进行优化后得到的产物。

Pairwise基于如下2个假设:

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

(2)根据数学统计分析,73%的缺陷(单因子是35%,双因子是38%)是由单因子或2个因子相互作用产生的。19%的缺陷是由3个因子相互作用产生的。因此,pairwise基于覆盖所有2因子的交互作用产生的用例集合性价比最高而产生的。

那么我们选择比较好的测试组合的原则就是:

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

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

《微软的软件测试之道》,里面也有关于组合测试的介绍,书中建议组合分析从两因素组合测试开始,逐渐提高组合维度,直至6因素组合测试,因为有研究表明6因素组合测试可以发现绝大多数的程序缺陷。

可以使用工具完成:PICT

The Pairwise Independent Combinatorial Testing tool 

        

二)、正交实验设计法

正交试验法,就是从大量的试验点中挑选出适量的,有代表性的点,合理的安排试验。也是组合测试法的一种。

评价:这种方法对于软件行业,太不靠谱了,一个接口生成后的用例太TM的少了,还要认为去排查看要加上那些参数组合,太鸡肋了

可以使用工具完成,常用的工具有:Allpairs(有点像PICT工具使用,dos命令下运行)和ACTS。

Allpairs下载

三)、两种方法的总结:

说了那么多,其实首选就是组合分析法来组合parameter,生成测试用例,这样测试用例数量和质量比正交法都TM高的多,具体高多少,待我做下实验,后文再讲啦。(人家是人啦,不可能一直研究技术,生活这么美好,技术那里有家人好呢)

三、response判断

执行用例有了,那如何对用例结果判断呢?要实现自动化做好的解决办法,就是规范用例的response判断,什么场景用什么状态码,响应内容去哪个值可以做到对结果的校验,这些肯定要后端写清楚,难道要让我们看代码啊,那要后端干什么呢。

总结下接口文档或者是mockAPI需要规定的东东吧:参数是否可选、参数的类型|长度|特殊字符的response、参数的限制是在哪里(尽量是后端限制参数的所有东西)、是否需要token、response信息(不要只是code,还有具体的那个json值)...

比如:查询用户信息,我们除了校验code,还要对查询的内容是否正确啊。

四、组装战车(自动生成用例)

1,从mockAPI或接口文档,获取UIL、,参数对应的response(使用if,elif,else判断语言来进行参数组合返回的response的描述,简单易懂)

(if账户为空,返回A;

elif密码为空,返回B;

elif密码为错误,返回C;)

2,利用PICT工具,组合参数,这里叫参数对

3,编写工具:对参数对的结果进行逻辑判断,映射到response

4,编写工具:自动对用例进行执行

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

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

相关文章

容器化背后的魔法之Docker底层逻辑解密

Docker内部工作原理是怎样的? 现在我们知道了Docker是什么以及它提供了哪些好处,让我们逐个重要的细节来了解。 什么是容器?它们是如何工作的? 在深入研究Docker的内部机制之前,我们首先要了解容器的概念。简单地说…

操作系统真象还原——第5章 保护模式进阶,向内核迈进

第5章 保护模式进阶,向内核迈进 BIOS中断利用0x15子功能0xe802获取内存 汇编语言子功能的调用 填写调用前相关寄存器进行int中断调用获取返回结果输出到对应寄存器的值 80286 拥有24 位地址线,其寻址空间是16MB 。有一些ISA 只使用15MB,剩下…

linux /var分区使用率高处理

某个数据库机器报/var分区使用率高 [roothydb2 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 95G 64K 95G 1% /dev tmpfs 95G 644M 94G 1% /dev/shm tmpfs …

黑马大数据学习笔记2-HDFS环境部署

目录 环境部署hadoop-3.3.4.tar.gz构建软链接配置workers文件夹配置hadoop-env.sh文件配置core-site.xml文件配置hdfs-site.xml文件准备数据目录分发Hadoop文件夹将Hadoop的一些脚本、程序配置到PATH中授权为hadoop用户格式化整个文件系统查看HDFS WEBUI保存快照 https://www.b…

三分钟查看navicat保存的密码超详细

第一步:打开注册表 计算机\HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers\3DEV 如图所示Pwd值就是所保存的密码 Navicat针对不同的数据库,它所存放的地点是不一样的 MySQL: HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Ser…

Video Path流程学习之路

RPC RPC指远程过程调用(Remote Procedure Call),通俗一些理解就是两台服务器A、B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用&#xf…

go-zero学习 第三章 微服务

go-zero学习 第三章 微服务 1 相关命令2 微服务代码实战2.1 基础代码2.2 API简单调用RPC服务2.3 服务注册/发现2.4 文件上传/下载&分组2.5 go-zero超时时间2.6 grpc服务端接收请求体大小限制2.7 grpc客户端接收响应体大小限制2.8 API和RPC服务拦截器2.9 服务间通过metadata…

平替笔和ipad笔差别大吗?主动式电容笔推荐

现在不少人开始用上了iPad,用来书写笔记,用来作画。再一个,现在很多iPad的使用者,追求的是实用性,认为要提高iPad的实用性,必须要有一个好的电容笔才行。事实上,如果你仅仅是拿来记笔记&#xf…

从零开始 Spring Boot 68:连接实体

从零开始 Spring Boot 68:连接实体 图源:简书 (jianshu.com) 在 JPA 中关联实体实际上对应表连接,而表连接可以通过内连接(Inner Join)、外连接(Outer Join)和 Where等方式实现,实际…

系统运维和网络运维有什么区别吗?

跟着互联网以及科技的高速开展,衍生出了许多的新奇职业,比方网络运维、网络安全运维。 从字面意思了解,两者之间没有什么太大区别,因而很多人很容易将两者混杂。 系统和网络运维有什么区别? 一个偏系统(linux、doc…

cookiesession(会话技术)

会话技术 Http:超文本传输协议,不可靠。 ​ 不保持连接的协议。无状态的。 什么是会话 会话是在一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 会话的作用 由于Http是…

微服务之Eureka服务注册中⼼

关于务注册中⼼服 服务注册中⼼本质上是为了解耦服务提供者和服务消费者,尽可能量使两者联系可控在一定的范围外 1.在父项目下下引入 Spring Cloud 依赖 <dependencyManagement> <dependencies> <!-- SCN --> <dependency> <groupId> org.sp…

【记录】SMB|Windows下修改SMB端口并挂载

环境&#xff1a;Window11 使用背景&#xff1a;勒索病毒导致445端口不安全&#xff0c;故而该端口在服务器端被全面禁用了&#xff0c;如需使用SMB服务需要换个SMB服务端口。 方法1&#xff1a;端口转发 winx点开管理员权限的终端&#xff1a; 运行以下指令&#xff0c;检查…

ROS:URDF使用

目录 一、URDF集成Rviz&#xff08;实例讲解&#xff09;1.1需求1.2流程1.3code操作1.3.1创建功能包1.3.2编写 URDF 文件1.3.3在 launch 文件中集成 URDF 与 Rviz1.3.4在 Rviz 中显示机器人模型1.3.5优化 rviz 启动 二、URDF语法详解2.1robot2.1.1属性2.2.2子标签 2.2link2.2.1…

手把手教你玩转内存函数(含模拟实现)

目录 一、memcpy 1.认识memcpy 2.使用memcpy 3.拓展&#xff1a;模拟实现memcpy 二、memmove 1.认识memmove 2.使用memmove 3.拓展&#xff1a;模拟实现memmove 三、memcmp 1.认识memcmp 2.使用memcmp 四、memset 1.认识memset 2.使用memset 3.拓展&#xff1a;模…

【网络编程】应用层协议——HTTP协议

文章目录 一、HTTP协议基本认识二、URL的认识2.1 urlencode和urldecode 三、HTTP协议格式3.1 HTTP请求与响应格式3.2 如何保证请求和响应被应用层完整读取&#xff1f;3.3 请求和响应如何做到序列化和反序列化&#xff1f;3.4 代码验证请求格式3.5 代码验证响应格式3.5.1 telne…

小程序开发及生态丰富,还需要App吗?

微信小程序自2017年推出以来&#xff0c;其生态系统得到了迅速的发展和壮大。作为中国最大的社交平台之一&#xff0c;微信拥有庞大的用户基础。微信小程序作为微信生态系统的一部分&#xff0c;自然而然地吸引了大量用户。据对公开资料进行统计&#xff0c;2021年全网小程序数…

校园跑腿小程序:为学生提供便捷的服务

随着社会的发展和人们生活水平的提高&#xff0c;高等教育越来越受到重视。大学校园不仅是学习的地方&#xff0c;也是学生们日常生活的场所。然而&#xff0c;在繁忙的学业和生活压力下&#xff0c;学生可能经常面临诸如代购、快递、取餐等各种琐碎但繁琐的任务。基于这个需求…

ModaHub魔搭社区:AI原生云向量数据库Zilliz Cloud与 Cohere 集成搭建智能问答系统

目录 准备工作 主要参数 准备数据 创建 Collection 插入数据 测试问答 本文将演示如何使用 Zilliz Cloud 和 Cohere 搭建基于 SQuAD 数据集 的问答系统。其中,Zilliz Cloud 负责提供向量数据库,Cohere 负责提供获取指定文字向量表示的接口。 准备工作 本示例中的脚…

黑马前端三大件

文章目录 1.html1.1 标题标签1.2 段落标签1.3换行标签1.4 水平分割线标签1.5 文本格式化标签1.6 图片标签1.7 音频标签1.8 视频标签1.9 链接标签的介绍1.10列表标签1.10.1 无序列表1.10.2 无序列表1.10.3 自定义列表 1.11表格属性1.11.1表格的基本标签1.11.2 表格相关属性1.11.…