分层自动化测试的实战思考!

自动化测试的分层模型

自动化测试的分层模型,我们应该已经很熟悉了,按照分层测试理念,自动化测试的投入产出应该是一个金字塔模型。越是向下,投入/产出比就越高,但开展的难易程度/成本和技术要求就越高,但是根据目前各个公司实战落地方案来说,逐渐演变成橄榄球模型,单元测那一块各个公司落地都不是非常顺利,原因主要是依靠开发进行。如下图:

美国质量管理大师威廉·戴明博士提出产品质量是生产出来的,不是检验出来的,只有在生产过程中的每个环节,严格按照生产工艺和作业指导书要求进行,才能保证产品的质量。如果忽略过程控制,只靠检验,是不可能保证产品质量的,因为质量检验,只能剔除次品和废品,并不能提高产品质量。也就是说,质量控制的重点决不能放在事后把关,而必须放在制造阶段,即生产过程阶段。

从质量控制的角度来说,单元测试自动化是最应该值得投入资源去做的。因为代码的质量问题越早发现,修复的成本越低,对最终交付质量的影响也越小。

当前实际情况下,大多数公司均在API自动化上投入大量资源。这主要源于众多公司采用的前后端分离架构和复杂化的业务场景。接口作为交互和逻辑处理层的关键部分,其自动化覆盖率的提升能够确保数据处理逻辑的准确性,从而为后续测试节省大量时间,显著提升测试效率。

从用户体验的角度来说,UI层的自动化测试也是必不可少的,界面交互才是用户的最直观感受,如果用户感觉不好用,用户就会舍弃选择其他的产品。

我们都知道影响质量的因素有成本、范围和时间。在技术的落地实践过程中,尽管技术实践的重要性不言而喻,但我们仍需在成本和产出之间做出选择和平衡。因此,根据具体的业务场景选择最适合的自动化测试方式显得尤为重要。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:310357728【暗号:csdn999】

自动化测试分层的实战前置条件

先了解一下不同的自动化测试各自的特点,再来说它们的适用场景。

单元自动化

单元测试的目标通常是代码中的类、方法或者某个特定的函数,这些都是构成系统或服务的微小单元。因此,实施单元自动化测试变得非常重要,但有几个前置条件:

  • • 对业务需求细节需要非常熟悉,如果不熟悉业务和需求细节,单元测试就聊胜如无

  • • 由于公司很少或者没有专门的单元测试人员,从而进行单元测试主要是对应开发人员,开发人员在需求迭代期间需要一边写业务代码一边写单元测试代码,迭代需求需要足够的时间,但往往每个迭代时间不足,现在常见的都是敏捷开发模式

  • • 需要团队领导支持, 如果没有团队领导的支持,往往大家都不会进行单元测试

接口自动化

与UI自动化相比,接口自动化的任务是验证数据交互和逻辑的准确性,这将检验系统设计和开发编码规范。因此,接口自动化的实施前提或适用场景包括:

  • • 比较完善的技术架构和接口说明文档

  • • 有比较好的流程规范

  • • 比较稳定的环境和有相关的基础设施

UI自动化

UI自动化落地最大的挑战是需求和UI设计的频繁变化会导致大量的变更,如果需求和UI设计频繁变化,那测试框架、脚本甚至相关的测试数据都需要频繁的变更,环境和测试的维护成本大概率会高居不下,因此持续稳定的系统是UI自动化测试落地很需要的一个属性。UI自动化落地较为适用的场景有:

  • • 比较稳定的系统版本迭代,回归测试

  • • 接口巡检无法覆盖的线上业务主流程巡检工作

  • • 不稳定系统里面高频稳定的小范围功能操作

自动化测试只是保证质量的众多技术手段之一。决定是否进行分层测试,以及投入多少资源于哪种测试手段,主要取决于我们面临的问题以及这些问题对质量的影响程度。接着,我们会根据具体情境选择最合适的测试手段来解决问题。成本、覆盖范围和时间仍然是影响我们进行技术选型和实施的最主要因素。

END今天的分享就到此结束了~

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

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

相关文章

QX320F28335,DSP,国产芯片崛起之路

QX320F28335 32位单核CPU 主频150MHz 单精度浮点运算FPU 12位ADC 采样率 4MSPS 12个ePWM 6个HRPWM

测试:面试问题(多精全)

目录 面试问题 1,你们原来项目的测试流程是怎么样的? 2,你介绍下,你最熟悉的项目? 3,你们原来项目的主要的功能模块有哪些,你主要负责哪些模块? 4,你说原来充值…

Python从入门到精通四:Python循环语句

前言 循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。 为什么学习循环语句 循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础: while循环的基础语法 学习目标&…

⑩⑧【MySQL】InnoDB架构、事务原理、MVCC多版本并发控制

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ InnoDB存储引擎 ⑩⑧【MySQL】详解InnoDB存储引…

vue3的组件事件和defineEmits

文章目录 1. 事件基础示例Blog.vueBlogPost.vue 2. 触发与监听事件2.1 触发事件2.2 监听事件 3. 事件参数3.1 示例1Blog.vueBlogPost.vue 3.2 示例2(defineEmits)MyComponent.vueTest.vue 4. 声明触发的事件5. 事件校验示例1Blog.vueBlogPost.vue 示例2&…

【ChatGLM3-6B】Docker下快速部署

【ChatGLM2-6B】小白入门及Docker下部署 前提下载安装包网盘地址 开始安装加载镜像启动镜像进入容器启动模型交互页面访问页面地址 前提 安装好了docker安装好了NVIDIA显卡16G 下载安装包 网盘地址 ​ 这里因为网盘上传文件有大小限制,所以使用了分卷压缩的方式…

Adobe的3D建模工具Substance 3D Painter 9.1.1 版本下载与安装

目录 前言一、Substance 3D Painter 9.1.1安装二、使用配置总结 前言 Adobe的Substance 3D Painter是一款强大的3D建模和纹理创建工具,专为数字艺术家设计,尤其是3D画家、游戏设计师和视觉特效艺术家。注:文末附有下载链接! 这款…

【gerrit上放弃提交代码】

在gerrit上点击abandon 项目文件夹下打开git USER871058FHA-W4300461 MINGW64 /d/Users/USER871058/IdeaProjects/cda_cem (feature_fix_point_1208) $ git reset --soft HEAD^回到idea即可

电子签测评!审批流程电子签章的代表产品

随着大家对电子文件法律效力的愈发重视,这两年,市面上各种各样的电子签名产品是层出不穷啊。 法大大、E签宝、微签、契约锁各树一帜,腾讯、阿里、字节三巨头也纷纷入局。 几家头部厂家陷入了同质化的竞争,在各个领域使出浑身解数…

Sci Transl Med

今天给同学们分享一篇实验文章“Radiation-induced circulating myeloid-derived suppressor cells induce systemic lymphopenia after chemoradiotherapy in patients with glioblastoma”,这篇文章发表在Sci Transl Med期刊上,影响因子为17.1。 结果解…

windows下安装git中文版客户端

下载git Windows客户端 git客户端下载地址:Git - Downloads 我这里下载的是Git-2.14.0-64-bit.exe版本 下载TortoiseGit TortoiseGit客户端下载地址:Download – TortoiseGit – Windows Shell Interface to Git TortoiseGit客户端要下载两个&#…

用Sketch for Mac轻松创作无限可能的矢量绘图

在如今的数码时代,矢量绘图软件成为了许多设计师和创意爱好者的必备工具。而在众多的矢量绘图软件中,Sketch for Mac无疑是最受欢迎的一款。它以其简洁易用的界面和强大的功能,让用户能够轻松创作出无限可能的矢量图形。 首先,Sk…

vue2-使用axios获取外网ip

1.安装axios>npm i axios 或者yarn add axios 或者pnpm i axios */ 报错:一直info There appears to be trouble with your network connection. Retrying... 原因:网络不好 2.引入axios:import axios from axios 3.使用axios调用接口ht…

基于ssm四六级报名与成绩查询系统论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对四六级报名信息管理混乱,出错率高,信息安全性…

uniapp uview实现u-popup左侧弹起时铺满屏幕

效果如图: 代码如下: <u-popup :show="sign.signParams.show" mode="left" width="100%" height="100%" border-radius="0":mask-close-able="false">XXXXXXX内容xxxxx</u-popup>使用了 mode=“left”…

Nature | 中国陆地的碳汇量有多少?

文献信息 题目&#xff1a; The size of the land carbon sink in China 来源&#xff1a; Nature 时间&#xff1a;2022DOI&#xff1a; https://doi.org/10.1038/s41586-021-04255-y 主要内容 中国人为排放的很大一部分已经被其土地碳汇抵消&#xff0c;这是到2060年实现…

深度学习 Day11——T11优化器对比实验

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 文章目录 前言一、我的环境二、代码实现与执行结果1.引入库2.设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;3.导入数据4.查…

绝地求生:追寻枪王之路,为什么PUBG老玩家要进行训练?

作为一款全球热门的射击游戏&#xff0c;《绝地求生&#xff1a;大逃杀》&#xff08;PUBG&#xff09;吸引了大批热衷于挑战极限的玩家。在这个枪战沙盒中&#xff0c;角逐者们需要不断提升自己的战术、枪法和反应速度&#xff0c;才能在百人对战中脱颖而出。那么为什么PUBG老…

如何将CAD图纸导入Revit软件?

在Revit软件中&#xff0c;将CAD图纸导入的过程非常简单。下面将为您详细介绍如何将CAD图纸成功导入Revit软件。 步骤一&#xff1a;准备工作 在导入CAD图纸之前&#xff0c;首先需要确保您已经准备好了需要导入的CAD图纸文件。通常&#xff0c;CAD文件的扩展名为.DWG或.DXF&a…

JVM虚拟机系统性学习-运行时数据区(虚拟机栈、本地方法栈)

虚拟机栈 虚拟机栈为每个线程所私有的&#xff0c;如下图&#xff1a; 栈帧是什么&#xff1f; 栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息 栈内存为线程私有的空间&#xff0c;每个方法在执行时都会创建一个栈帧&#xff0c;执行该方法时&…