内卷化时代,一名普通测试员的铁饭碗究竟是什么?

news2024/10/2 1:33:03

内卷,是现在热度非常高的一个词汇,随着热度不断攀升,隐隐有了“万物皆可卷”的程度。究其来源,内卷这个词的出现,是伴随着996开始讨论的。很不幸,996、福报等等这些词的重灾区和源头就是计算机/互联网行业。那么作为行业中一个非常重要的分支,测试圈的情况怎么样呢?

  软件测试圈的内卷是怎样的?

  在谈起测试圈的内卷之前,我们必须先搞清楚我们常说的内卷是什么。

  内卷,网络流行词,本意是指人类社会在一个发展阶段达到某种确定的形式后,停滞不前或无法转化为另一种高级模式的现象。当社会资源无法满足所有人的需求时,人们通过竞争来获取更多资源。

  后经网络流传,用来指代非理性的内部竞争或“被自愿”竞争,现在指同行间竞相付出更多努力以争夺有限资源,从而导致个体“收益努力比”下降的现象。可以看作是努力的“通货膨胀”。

  在测试圈,随着基于敏捷甚至是Devops的架构,作为这些架构重要内容的自动化成为了热门,而测试行业也进入了推广自动化的“军备竞赛”。近些年来,不管是作为测试工程师,还是敏捷QA,甚至是其他角色,恐怕都对于自动化测试的汹涌之势都有所耳闻,而从公司角度,在诸多公司中,自动化测试借着敏捷转型的要求也都几乎成为了测试工作的标配,各大公司对于测试的招聘要求也纷纷升级成为自动化测试,彷佛只要有了自动化测试,一切问题就迎刃而解。事实真的是这样吗?

  有一个“电影院困境”,很形象地说明了“内卷”的表现和身处其中的人们的感受:一个电影院里正在播放电影,观众席中黑压压地坐满了观众,这时,前面有人为了看得更清楚,站起来看电影,于是后面的人为了不被挡住,于是也站了起来……终于电影院里所有人都站着看完了电影。而本来他们是可以很舒服地看完这部电影的。

  在这个环境下,每个人都付出了极高的时间成本和精力,但是获得的收益却十分有限。同样的,在测试领域中,按照测试分层测试金字塔进行组合的架构遭到了一定的冲击和破坏。由内卷化而形成的行业内“纳什均衡”所带来的35岁现象等等,成为附着在这个行业上的伤痕和毒瘤。这个问题以后专门会提到,这次只谈一下测试技术本身的内卷。

  测试技术本身的内卷

  敏捷测试中,有一个分层测试策略,一般来测试分为三个层次,分别是UI层、Service层以及Unit层。具体结构如下图:

  UI层是负责界面展示和用户交互的那一层,也是测试工程师最常接触到的部分,大量的测试是在这一层完成的,也是涉及方面最广的测试层。Service层提供接口和服务,UI层可以从Service层获取数据,也可以通过Service层将数据保存于数据库或其他存储空间里。Unit层的测试对象是函数或方法;Service层的测试对象是模块和接口;UI层的主要测试对象是展示和交互。

  这是一个非常完整且工作效率极高的分层机制,它将不同功能和类别的内容进行了归类化,使得针对每一层的测试,都有相应的手段和途径进行相应的测试。这是基于敏捷框架或者模型下,测试作为适应模型的基础进行的改变。针对不同层级,测试工程师用不同侧重点的测试工具或测试方法,来进行搭配组合,获得最高效和最全覆盖的测试。

  当前,自动化测试成为了一个热点,所有的测试工作都开始向自动化转型,而本身只是测试工作一个重要组成部分的自动化测试,瞬间仿佛成为了测试工作升级更新转型的唯一内容,而其简单高效的衡量方式,也使得自动化测试成为了KPI和OKR的青睐对象。

  最明显的是,按照自动化测试金字塔理论,大量的基础工作是在单元测试阶段进行的,而接口测试是基于单元测试完成,然后最终通过UI测试进行界面化的验证。这个三角形是自动化测试的策略结构。

  单元测试

  单元测试要求在开发中对每个功能模块(函数、类方法)进行测试,如检测其中某一项功能是否按预期要求正常运行。单元测试中通常采用白盒测试,主要对代码内部逻辑结构进行测试。

  接口测试

  接口测试要求对数据传输、数据库性能等进行测试,从而保证数据传输以及处理的完整性。接口功能的完整运作对整个项目功能扩展、升级与维护有着重要的作用,接口测试通常使用黑盒测试和白盒测试相结合的方式进行。

  UI测试

  UI测试以用户体验为主,软件的所有功能都是通过这一层展示给用户的,因此UI测试的工作也很重要。

  单元测试由于大量涉及白盒测试,更基础的方面则是由人员进行代码走查或代码review来完成,而Service则是部分采用人工进行,而UI界面以最终的用户体验为主,因此在UI测试中并不是100%地使用自动化测试,其中需要人工操作来确定UI界面的易用程度。由此可见,这样的金字塔策略,依然不能完全舍弃手动测试在整个测试工作中的重要作用。

  需要注意的是,很多鼓吹测试全面自动化的管理人员,甚至没有细细区分这两个图例的差异,就简单地将二者合一,将自动化测试策略和分层测试策略进行了混淆。

  在开发人员陷入针对框架和前端机制无休止地更新追求下,内卷也逐渐向测试圈进行扩展,但是和开发中单纯求新求快的情况又略有不同。当决策层的好大喜功和自动化测试的特点结合起来的时候,简单粗暴地大干快上成了唯一的选择,于是,测试技术的内卷就这样轰轰烈烈地开始了。

  测试员如何在内卷中走出来?

  测试工程师不得不花费大量的精力,进行自动化测试的改造和框架搭建,而这样的“大干快上”又忽略了自动化测试本身的一些要求。例如:需求相对稳定,有充足的用例库,交付时间允许项目进行自动化改造等等。造成的一大结果就是,行业中大量的测试工程师变成了以写测试代码为主要工作的工作人员,甚至在职业认知上,将自己有意无意地同开发人员进行了混淆。

  这样的结果对于测试行业和测试工程师的职业生涯有着重大影响:

  ·首先,手工测试作为整个测试行业的基础,地位和重要性被大大弱化,很多测试人员的基本能力被大大削弱,而后期的很多能力提升和拓展,都是需要从基于手工测试的分析和操作开始的。

  ·其次,很多测试项目并不适宜进行自动化改造,削足适履的最终结果就是对项目的测试效率等有了极大的限制,本末倒置。

  ·最后,当所有的测试聚焦在自动化上时,会陷入对于技术栈本身的更新和迭代。对于代码能力的提升,显然是一个相对更容易出成果的路径。这样无法将焦点集中在业务本身,这对于测试人员本身能力的发展是极为不利的。

  在测试工作中,原本起到规范和框架作用的敏捷架构,就不可避免地受到内卷的影响,其中对于测试质量和测试覆盖率具有极强规范和限制能力的测试用例,会被大大弱化,大量的测试工程师会主动或被动地向测试开发工程师转型,由原本聚焦在基于业务的测试用例等方面,转向对于自动化测试架构与脚本的打磨和迭代。当聚焦点从业务移开时,测试工作本身的压舱石——质量,就会不可避免地受到影响。

  另外,测试工程师的职业要求,在多方面都有体现,但这样的内卷会使得整个行业的从业人员将注意力向代码能力集中,从而陷入盲目追求代码能力,而不重视测试能力提升基础的怪圈里。当形成这样的恶性循环之后,测试圈的发展会受到极大冲击,而对于圈中的测试工程师来说,测试技能和测试理念的更新会受到极大的干扰。

  不忘初心,方得始终。在技术浪潮不断更新迭代的今天,测试工程师也应该做到“不忘初心”,所谓形而上者谓之“道”,在意识方面,始终将业务需求作为工作的基准,把握住质量核心,需求基准;形而下者谓之“器”,不管是手工测试,还是自动化测试,抑或是探索性测试,都是要基于“道”这个初心,围绕着测试工作服务的。只有这样,测试工程师才能在测试圈不断内生或外压的内卷中,走出属于自己的职业道路。

  IT工作固然是辛苦的,软件测试当然也不例外。 每天执行用例、跟踪Bug,还要与开发、产品同学争吵PK,与人斗其乐无穷~但正是因为这些默默的付出,才让一场本该在用户面前发生的灾难,提前在自己面前发生了,是否有一种救世主的感觉?

  我们拯救了用户,也拯救了这一软件,避免了她被抛弃、卸载的命运。既然选择了测试这一行,那不如不忘初心地好好的坚持下去~~

【整整200集】超超超详细的python自动化测试进阶教程合集,真实模拟企业项目实战

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

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

相关文章

学了一个礼拜 JavaScript 为什么还是学不会?

前言 首先从你的描述里面我先以我的主观臆断来猜测一下你是没有任何编程的基础的,Js按理来说在各语言中并不是非常难学,当然如果你是纯新手入门,那么确实前期需要时间来沉淀一下语法,一个礼拜的话,按理来说应该是在沉…

JVM基础篇-StringTable

StringTable 特性 常量池中的字符串仅是符号,第一次用到时才变为对象 利用串池的机制,来避免重复创建字符串对象 字符串变量拼接的原理是 StringBuilder (1.8) 字符串常量拼接的原理是编译期优化 可以使用 intern 方法&#…

利用大数据分析工具,实现多场景可视化数据管理

官方使用文档 https://yanhuang.yuque.com/staff-sbytbc/rb5rur? 准备服务器环境 购买服务器 购买腾讯云服务器,1300 元新人价,一年时间 ●4核16G内存 ●CentOS 6.7 (补充说明:最新的 2.7.1 GA 版本,8G 内存也是可以…

TCP的三次握手四次挥手

TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 四次挥手&a…

flyway快速入门

flyway快速入门 一、flyway是什么?二、flyway使用目的1. 使用原因:2. 举个例子: 三、flyway工作原理四、flyway使用约定和命名规则1. 数据库版本文件整体约定2. 数据库版本文件夹管理约定3. 数据库版本文件命名约定4. 禁止项 五、flyway配置和…

微信多开(双开三开均可,且不局限于微信,其他设备亦可)

1.鼠标右键“微信”,属性 如上图,自动选取的,别动,然后CtrlC,,,,结果如下 "C:\Program Files (x86)\Tencent\WeChat\WeChat.exe" 2.创建文本,电脑桌面空白处单击,新建,文本档案&#…

Java版工程行业管理系统源码-专业的工程管理软件-em提供一站式服务 em

​ Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目…

安卓:BottomNavigationBar——底部导航栏控件

目录 一、BottomNavigationBar介绍 二、BottomNavigationBar的常用方法及其常用类 (一)、常用方法 1. 添加菜单项 2. 移除菜单项 3. 设置选中监听器 4. 设置当前选中项 5. 设置徽章 6. 样式和颜色定制 7. 动画效果 8. 隐藏底部导航栏。 9、设…

局域网新大陆?

操作后,即可实现局域网互通。

【java】民营医院、门诊部、连锁集团、公立医疗云HIS系统源码

基于云计算技术的B/S架构的医院管理系统(简称云HIS),为医疗机构提供标准化的、信息化的、高效可靠的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。利用云计算平台的技术优势,建立统一的云HIS、云病历、云P…

性能监控工具-Grafana安装和使用方法

Grafana是一款开源的数据可视化和监控平台。它提供了丰富的可视化方式,如图表、仪表盘、警报等,支持多种数据源,包括Prometheus、InfluxDB、Graphite等,适用于各种规模的系统监控和数据分析。Grafana还有一个强大的插件生态系统&a…

视频监控汇聚平台EasyCVR视频分享页面WebRTC流地址播放不了是什么原因?

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…

淘宝店铺数据API接口 店铺详情数据API 店铺所有商品API接口

引言 在电商平台上,店铺所有商品API接口是一项非常重要且有着广泛应用的技术。它使得开发者能够方便地获取和管理店铺中的所有商品信息,进而实现自动化的商品管理和数据分析。本文将详细介绍店铺所有商品API接口的定义、功能以及调用流程,并附…

王道《操作系统》学习(二)——进程管理(三)

2.3.1 进程同步、进程互斥 (1)进程同步 (2)进程互斥 “同时”指的是宏观上的同时,微观上可能这些进程是交替地在访问这些共享资源的 当“上锁”后,其他的进程想要访问临界资源时,在进入区进行检…

js修改png图片颜色

思路是利用canvas 改变图片颜色 /*** 将png图片转成目标颜色* param imgUrl 可传入图片URL 或者 Base64* param RGBArr 要换成的目标颜色RGB 数组格式[R,G,B]* param Functon callback回调*/ function changeImageColor(imgUrl, RGBArr, callback) {let image new Image();im…

人工智能大模型中token的理解

“token”是当前语言类模型的数据单位。当前的自回归语言模型是根据 token 来作为单位进行数据处理和计算,分词(tokenization)就是将句子、段落、文章这类型的长文本分解为以 token 为单位的数据结构,把文本分词后每个词表示成向量…

小白入门Java第一天

当你对 Java语言有了一些了解后,你就可以开始着手学习Java了。 作为你的Java 学习第一天,所需掌握内容如下述目录: 文章目录 1. 注释1. 三种注释1.1 单行注释1.2 多行注释1.3 文档注释 2. 标识符和关键字2.1 标识符的组成:2.2 那…

C++11新特性lambda 表达式

lambda 表达式 lambda 表达式 lambda 表达式 Lambda 表达式的基本语法是:[] (参数列表) -> 返回值类型 {函数体}。 方括号([])表示捕获列表,用来指定在 lambda 表达式中可以访问的外部变量。 参数列表和返回值类型与普通函数的参数列表和返回值类型相…

写字楼门禁如何管理?最最新方法来了!

在现代社会,随着城市化和商务发展的蓬勃推进,大厦写字楼作为繁忙的商业中心和办公场所,其安全管理和员工考勤变得尤为重要。为了应对这一挑战,人脸门禁考勤机应运而生,成为大厦写字楼的安全保障和工时管理的关键工具。…

翻译公司提供哪些口译服务,北京翻译哪里比较专业?

我们知道,口译服务是一种即席的现场翻译活动,在涉外沟通交流中起着至关重要的作用。那么,如何做好口译工作,翻译公司提供哪些口译服务,北京翻译哪里比较专业? 据了解,相对于笔译,口译…