如何看待分层测试?

news2024/10/7 14:31:06

分层测试分了个寂寞?

分层测试这个风吹了好多年,不分层都不好意思说自己是专业测试。各互联网公司更是对此乐此不疲,测试架构、测试平台,搞了一套又一套,然而。。。

理想总是丰满,现实总是骨干,投入了大量的人力物力在单元测试和服务端测试,还是要投入大量的集成测试,才能守住最后一道防线。怎么落地变成了困扰测试人许久的问题?分层测试真的分了个寂寞?

什么是分层测试?

分层测试就是不同的时间段,不同的团队或团队使用不同的测试用例对产品不同的关注点进行测试。一个系统/产品我们最先看到的是UI层,也就是外观或者说整体,这些是最上层,最上层依赖下面的服务层,也就是接口或者模块,最底层就是单元,这个单元是函数或者方法。按照这三层选择不同时间段,不同团队不同测试用例进行的测试就是分层测试。

单元(Unit )测试

单元测试是针对代码单元(通常是类/方法)的测试,单元测试的价值在于能提供最快的反馈,在开发过程中就可以对逻辑单元进行验证。

接口(Service/API)测试

接口测试是针对业务接口进行的测试,主要测试内部接口功能实现是否完整。如主要业务流是否能走通,异常处理是否正确,数据为空时校验等等。

接口测试的主要价值在于接口定义相对稳定,不像界面或底层代码会经常发生变化,所以接口测试比较容易编写,用例的维护成本也相对较低。在接口层面准备测试的性价比相对较高。

集成(UI)测试

集成测试从用户的角度验证产品功能的正确性,测的是端到端的流程,并且加入用户场景和数据,验证整个业务流。集成测试的业务价值最高,它验证的是一个完整的流程,但因为需要验证完整流程,在环境部署、准备用例及实施等方面成本较高,实施起来并不容易。

分层测试模型

测试冰淇淋模型

目前大多数的时间都在做UI方面的测试,包含UI页面元素+功能,测试的80%时间都用在UI测试上。而在单元测试和接口测试方面投入不足,也就导致测试的压力都放到UI测试阶段,一方面需要各方都提测之后才能进行,开始的时间晚,测试时间紧张;另一方面许多异常场景无法构造,测试不充分,造成漏测。但这也是我们大多数的团队采用的方式。

测试金字塔模型

Google的自动化分层投入占比是:单元测试(Unit):占比70%;接口测试(Service/API):占比20%;集成测试(UI):占比10%;这是我们理想的测试模型。这种模型的好处不言而喻,但是由于该模型对开发人员的测试能力要求很高,所以在一些测试和开发完全分离的团队以及开发能力较弱的团队,这种模式往往难以推广。

因此在基于目前中台化盛行微服务架构下,又提出了一种 测试橄榄球模型:单元测试相对较少;测试的重心放在接口级的测试上,并且提倡高度自动化;UI级的测试可以较少。

目前大多数互联网项目都是用的微服务模型,服务之间沟通交流的方式大多数是通过各种接口,接口是微服务模型项目和产品的核心。增加接口测试的比例,测试左移,让测试能提早介入,发现问题;越往上,发现问题和解决问题的成本会越高。

买家秀发生了什么?

卖家秀和买家秀总是有出入,我们的设想是能用金字塔模型来实现分层测试,然而在实际项目运转过程中,deadline一来,开发急急忙忙的提测,测试火急火燎的测试,掐着时间点上线,还谈什么单元测试、接口测试、自动化测试。

听过最多的抱怨就是:道理我都懂,可是臣妾做不到啊!

于是金字塔模型就变成了冰淇淋模型。

可是这难道是分层测试的错吗?!

难道没有deadline的压力分层测试就可以做好?就可以保证0bug上线?

买家秀卖家秀的差距,在于自身,如果自己是模特身材,才可能逆转差距,自身的修炼:理念、体系、人才、自动化成熟度

Do!How?

要摆脱冗余繁重的测试,提高测试的效率和质量,分层测试的优势还是很明显的:

  • 降低成本:测试左移,尽早发现问题解决问题,降低开发和修改成本;
  • 分层测试:在用例设计和执行测试的时候,更具有针对性,思维更加清晰,减少场景遗漏;
  • 重点测试:不同阶段关注不同,分重点测试,层层防护,减少漏侧,提高质量;
  • 业务及技能的提升:加强开发和测试对业务及代码理解,可以更好的进行技能拓展和延伸。

每个项目情况不一样,一招鲜显然是很难走到最后的,测试模型也只是模型,适用才是硬道理。单元测试、接口测试的覆盖率和门禁也要因时制宜,在实践的过程中不停地调整去适应项目的现状和发展,以更快更好地做交付。

在每个项目去实践探索的过程中,都会遇到这样那样的问题,唯有坚持与相信,才能走出一条康庄大道来!

正在做测试的朋友可以进来交流,群里给大家整理了大量学习资料和面试题项目简历等等....
 

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

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

相关文章

【探索 Kubernetes|集群搭建篇 系列 5】简化 Kubernetes 的部署,深入解析其工作流程

前言 大家好,我是秋意零。 在前面 4 个章节中,我们充分了解了容器技术和 Kubernes 原生时代引擎的架构和设计思想,今天分享的主要内容是,探索 Kubernetes 部署,深入解析其工作流程 👿 简介 &#x1f3e0…

OpenCV 项目开发实战--对图像进行对齐 (ECC)-附带 ( C++ / Python )代码实现

文末附基于Python和C++两种方式实现的测试代码下载链接 图 1. 左图:来自 Prokudin-Gorskii 收藏的图像。右:相同的图像,通道对齐。 左边的图片是名为Prokudin-Gorskii收藏的历史照片集的一部分。这张照片是一位俄罗斯摄影师在 1900 年代早期使用早期彩色相机拍摄的。由于相…

升级丨AMAA汽车社媒营销归因升级,提升ROI还用愁吗?

“如其抱怨,不如享受卷的过程。昨天的手机行业,就是今天的汽车行业。” “以后国内可能只剩下五个 ‘东西南北中’,打麻将一样。” 在刚结束不久的2023年中国汽车重庆论坛(CACS)上,来自车企大佬们的“声音…

【JVM】JVM 判断对象存活算法(引用计数算法与根可达性分析算法)

文章目录 引用计数算法介绍问题 根可达性分析算法介绍GC Root 在 JVM 中,需要检查出还有哪些存活对象(就是哪些对象还在使用),哪些未存活对象,未存活对象又被称之为垃圾对象,只有知道了哪种是垃圾对象&…

实战必看!工程项目中简单高效的示教编程

大家好,我是华山自控编程朱老师 示教编程是一种简单高效的方法,通过可视化界面和图像采集,可以指导编程操作,提高生产效率。 在本视频中,我们将分享一个项目,重点介绍如何进行简单高效的示教编程。 实战必…

端午节到了,用Python画一个粽子吧!

文章目录 粽子曲面真粽子曲面正弦曲面 粽子曲面 之前通过matplotlib绘制了圆锥曲面,但matplotlib绘制曲面图有几个问题,其中plot_surface需要有规范的xOy坐标,然后根据其坐标绘制z轴参数;plot_trisurf则必须有明确的三角面的顶点…

【AI人工智能】你们都是用它来干嘛?

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…

基于Python的接口自动化测试框架

目录 前言: 项目背景 工具选择 框架思路 第三方库介绍 代码实现 不足之处 前言: Python是一种流行的编程语言,Python的易学性和易用性使得它成为编写接口自动化测试框架的理想选择。在Python中,有许多库可以帮助我们执行HTTP请求…

【探索 Kubernetes|作业管理篇 系列 8】探究 Pod 的 API 对象属性级别与重要字段用法

前言 大家好,我是秋意零。 本专栏上一篇中,我们介绍了 Pod 的核心思想以及 Pod 的工作原理。今天我们还是探讨 Pod ,聊一聊 Pod 的基本概念。 👿 简介 🏠 个人主页: 秋意零🧑 个人介绍&#x…

Centos7安装OpenJDK8到指定目录

系统配置 阿里云轻量应用服务器(Linux, centos7.9 x64) 安装步骤 1、官方下载OpenJDK 1.8 Java Platform, Standard Edition 8 ReferenceImplementations 2、通过WinScp工具,将下载好的安装包,上传到服务器 WinScp下载地址&…

ES7、ES8、ES9、ES10、ES11、ES12都增加了那些新特性?

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 ES7 ES2016(ES7)中新增了如下特性👇 Array.prototype…

批量压缩和修复Access数据库 Batch Access Database Compactor Crack

批量压缩和修复Access数据库 Batch Access Database Compactor 快速压缩和修复访问数据库。它是一个批处理Access数据库压缩程序,可以在不安装Office的情况下压缩和修复Access数据库。 Batch Access数据库压缩程序是一种软件工具,正如其标题所示&#x…

AC电源延长转换线:同为科技(TOWE)品牌,专注品质,安全连接

AC电源转换线虽是连接用电设备的一个配件,结构也相对简单,然而对用电设备的安全稳定运行起着重要的作用。AC电源转换线是通过电压较高的交流电的线材,因此产品质量需要具有一定安全标准。 即使AC电源转换线结构并不十分复杂,但也不…

学会使用这些Lumion照片级渲染技巧,秒出大片

Lumion 是一种渲染软件,可帮助建筑师以清晰、感性的方式传达他们的设计。十年来,人们发现 Lumion 的每个新版本都有新的功能、工作流程和控制方法。他们可以在 Revit、SketchUp 或其他 BIM 程序等软件中建模,并将模型导入 Lumion 进行渲染&am…

隐语“官网”新版上线!彩蛋连连,速来探索

距2022年7月隐语开源马上就要1周年啦🎉~隐语官网也迎来了2.0全新大改版。为了方便用户快速找到所需的文档,我们新增了“关键词”检索功能。前往官网,立即体验 https://www.secretflow.org.cn~还有惊喜彩蛋等你来探索&a…

国内精选五大优质互联网理财软件app最新排名(综合测评)

随着移动网络技术的飞速发展和大众经济水平的逐渐提高,现在市场上有很多互联网理财软件,选择一款好的软件是非常重要的。首先,要确保软件的安全性和可靠性,因为金融交易需要非常高的安全保障。 其次,要考虑软件的交易…

Channel通道使用进阶:通道关闭原则、生产者消费者问题、高并发map

1.Channel情况总结 在进行Channel通道使用之前,先根据总结有缓冲型channel使用的情况,若对下表有疑问可以前往Golang Channel 实现原理与源码分析进行阅读,如下所示: 从上表中我们可以发现,若我们已经对channel初始化…

测试老鸟整理,Selenium自动化测试POM模式分层实战(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 POM是Page Object…

3. SpringCloudAlibaba、nacos 实现配置中心

一、微服务中配置文件的问题 1.1 配置文件的问题: 配置文件的数量会随着服务的增加持续递增单个配置文件无法区分多个运行环境配置文件内容无法动态更新,需要重启服务 1.2 引入配置中心 引入配置中心:刚才架构就会成为这样。是由配置中心统…

ASP.NET Core Web API入门之二:Swagger详细使用路由设置

ASP.NET Core Web API入门之二:Swagger详细使用 一、引言二、Swagger的作用以及优点2.1 作用2.2 优点 三、API接口添加注释3.1 编辑项目文件3.2 修改 Startup.cs 文件的 ConfigureServices 方法3.3 修改浏览器的网页标题3.4 注册路由中间件3.4 接口添加注释 四、运行…