测试开发之路,我在大厂做测试这四年的感悟

news/2024/5/6 10:29:50/文章来源:https://blog.csdn.net/kk_lzvvkpj/article/details/128120328

开篇

当开始写这篇文章时候,才感受到人生如白驹过隙,4 年时间飞逝,自己也从一个初入职场小白到能肩负项目核心事务的测试开发。在这里,总结 4 年来的心智成长之路,也是借机互相交流,并无对错之争,欢迎有见解的讨论,共同进步。

我的经历
在两个大厂分别做了两年的测试开发工作,暂且成为 M 厂和 A 厂吧。负责过游戏自动化框架开发、专项测试工具开发、版本质量保障、Devops 平台开发,也带过小团队。每个厂,每份工作都力求突破,过程辛苦,自然结果都是很满意的,都拿到了不错的绩效。

测开的岗位定位
虽然在经历过的项目中,测开的定位大部分都是 “测试”,在 M 厂里面架构会比较特别,将测试开发与业务测试彻底分开。测试开发更多是做测试平台和效能提升相关工作;业务相对单纯,整个团队会一起面向功能测试痛点、研发痛点从质量检查角度出发做工具与平台,解决研发过程和测试过程的痛点。

这份经历回想起来,还是很有意义:做事非常专一,技术也获得了不少成长。唯一不足的是,这些工具、平台也好,是否真正让业务产生了更实质上的提升,很难去精准量化。后期也做了很多量化工作的事情,建设量化的数据模型;所以切入 Devops 赛道,学习了很多 Devops 理念,造了一些轮子。当然一个人的精力是有限的,在一个成本中心里面,想去做 Devops 是很容易上手,但是做完善一整套 Devops 落地,几乎不可能的。

后来的工作,就开始跟业务了,能非常明显感觉到,业务带队水平的提升,沟通能力的提升,更多从一个质量保障的角度去做质量输入和输出,也算是亲身体会到了 QA 这个职业的 “不容易”:人在工位坐,锅从空中来,深有体会。

两段不同的经历碰撞,对测试开发这个岗位有了更纵深的思考,包括岗位价值、核心竞争力、行业发展有了一些思考。

测开核心价值
测开的定位既然也是测试,那么它的核心价值其实一句话可以总结:为质量买单,为产品保值,为过程降本。

测开本质上归属于测试序列,哪怕再厉害的测试技术、测试平台、测试工具,不要被这些所谓的 “高大上” 的技术名词掩盖了真相。做这些自动化、平台工具最终都是为了更短的时间、更低的成本输出质量,然后(这里是重点)根据输出的质量去买单。这里说的直白一点,做的这些事情当然有意义,但是跳出本位思维,站在老板,站在项目经理的角色去看待,想要的只是质量结果和谁为这些结果买单。

总有人需要为结果买单,为过程买单,核心价值也就出来了。作为测试序列的一员,最重要的存在即为质量买单。也就催生出了,为什么测试要负责过程管理、左移右移,很少见到开发提到右移到测试。测试岗位的内容自然就杂而不精了:不是一个很合格的项目管理、却又要参与项目管理环节;不是一名单纯的技术,却又要在业务测试中兼顾工具开发。甚至个别项目或者公司要求测试也要负责需求的质量把控。

因此,在一个买单岗位他的存在大部分除了输出质量之外,本身不产生直接的商业价值,成为了一个背负成本的节能减排部门。也就是上面提到的为质量买单,为产品保值,为过程降本。

2022测试生涯该如何转型
怼测试开发工程师来说,看懂代码,熟练使用测试工具,能做ui、接口、性能的测试,具备测试经验和测试思维逻辑是基本要求;既要会业务功能测试,又要能做代码层接口及单元测试,更重要的是通过能力和经验的积累,能搭建用于技术研发团队的工具平台,以更好的降低公司成本和提供工作效率。大致包括以下部分:

测试开发所需要的技术栈

一、具备一定测试经验。只有设身处地的经历过测试人员的痛点和难点,才能切实解决他们的问题。

二、会使用常用重要的测试工具。比如性能测试常用的Loadrunner、jmeter;ui自动化常用的selenium;单元测试常用的testng、junit;安全测试常用的appscan,js注入,xss注入,sql注入等等。

三、具备测试工具开发能力。下面介绍一些主流的技术栈:

测试工具系统框架搭建:1)java+maven+SpringMVC ;2)python+django

对于第一种框架,最好创建分层化的多模块工程,以便更好的设计代码框架和结构。通常dao层主要是和数据库关联;web层是controller,是前端和服务层的衔接;service层提供一些公共服务或业务处理逻辑。

Maven工程有了之后,运用当前主流的框架-springMVC,将前后端数据库关联起来。

对于无代码基础,想入门测试开发的小伙伴,可学习第二种框架:python+django,较为易学易用。

前端页面:html,css,jquery,bootstrap,Echarts,前端页面是门脸,是使用人员操作的入口,也是数据输入和展示最直观的地方。

Css样式决定页面布局和美观度;jquery是一种js框架,极大地简化了 js 编程;echarts能够提供简单易用的常用图表,使页面更加有档次感、数据展示更加直观简洁。

后端服务:spring,mybatis,使用Spring框架可以简化很多基础性的工作,配置好后可以方便构建业务应用,是一个非侵入性的轻量级容器。

数据库:Mysql或Orcale 的数据库安装,库表创建,字段设计,常用的sql语句

系统:能熟练在windows或linux系统上搭建项目,日志查看等操作

服务容器:tomcat服务部署,nginx负载配置,docker使用

持续集成:git,jenkins

开发工具:idea和eclipse

代码调试:testng或junit的单元调试及debug和远程debug使用

测试开发是以质量为中心,以业务为导向,以快速健康地保障产品交付为目标,不仅需要能cover日常测试工作,还需要肩负测试与效能齐头并进的使命的一个岗位。

 

测试开发岗位的难度比普通的测试要大很多,测试和开发都要懂。

那么,传统的测试工程师会被淘汰么? 这个谁都不敢做保证。要想在这个行业生存下去,唯一的丛林法则就是:优胜略汰,要跑赢技术更迭。

测试开发技能难点和学习通道
测试开发涉及到的技术知识繁杂,有一定的技术门槛。另一方面,每个团队在落地自动化测试技术体系时,又会衍生出各种各样的个性化实战问题。

比如,学习自动化测试框架容易,但是在落地实战中,框架稳定性与适用范围、用例稳定性、用例可复用性等问题则让人头大。又比如,同样做自动化,不同公司背景的实施能力和效果都不尽相同。对你们团队来说,在当下这个阶段,自动化测试该如何做?做到哪个程度?人员素质能否跟上?投入产出比是否值得?等等。质量保障是一个复杂的系统工程,在各种因素影响下,平衡好“质量-效率-成本”三者关系非常不容易。

测试高手之所以成为高手,不仅是因为技术实力强大,更重要的是经历过风雨,有各种踏坑填坑的血泪经验! 这也是测试开发工程师从入门到高手技能成长的核心挑战。

想快速提升测试开发技能水平的路径:

找到领域专家,学习过来人的踏坑经验,并结合自己公司业务实践落地,内化成自己的能力并持续优化。

站在巨人的肩膀,自然可避免很多不必要的弯路。如果还能找到志同道合的小伙伴一起打怪升级,交流探讨遇到的各种问题,那就更好了。

送给大家一句话:学习是个不断积累的过程,只有量变才会质变。测开这条路注定充满艰辛和坎坷。但他不会辜负你,只要你肯努力必定有收获,薪资一定会翻倍。
 

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

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

相关文章

pytest文档83 - 把收集的 yaml 文件转 Item 用例并运行

前言 上一篇通过用例收集钩子 pytest_collect_file 把 yaml 文件收集起来的,仅仅只是收集到用例,还不能执行。 接下来详细讲解,如何把yaml 文件的内容,转成Item 用例去执行。 pytest_collect_file 收集钩子 准备一个待执行的YA…

基于Android的学生管理系统App设计与实现(Eclipse开发)

目 录 摘 要 I Abstract II 1 绪论 1 1.1 选题背景及意义 1 1.2 研究现状 1 1.2.1 教育系统发展现状 1 1.2.2 手机的应用市场发展现状 1 1.2.3 Android平台介绍 3 1.2.4 Android管理学生信息的意义 5 1.3.3 开发的环境及开发工具介绍 6 1.3 研究主要内容 6 2 相关技术介绍 7 2.…

【生成式网络】入门篇(三):Style Transfer 的 代码和结果记录

文章目录Style Transfer 记录Fast Style Transfer 记录Style Transfer 记录 经典文章xxx,理论就不介绍了,根据一个content图像,和一个style图像,可以把style图像的style迁移到content图像上。 在代码上有一个跟之前不同的地方&am…

硬件定义软件?还是,软件定义硬件?

文章目录**1 软件和硬件****1.1 软件和硬件的定义****1.2 “硬件定义软件”和“软件定义硬件”的定义****1.3 CPU,软件和硬件解耦****1.4 CPU的软硬件定义****2 硬件定义软件****2.1 系统从软件逐步到硬件****2.2 硬件架构决定了软件设计****2.2.1 ASIC的硬件定义**…

django 开启CSRFtoken校验,以及postman实现问题

1.0 Django默认的CSRFtoken 表现: 后端使用的是Django的表单验证 post请求携带参数的问题 2.0 先处理post请求携带数据的csrfmiddlewaretoken 在登录界面 在input输入框中隐藏,所以需要提取input的value值,在【tests】脚本中进行提取&…

【C++11重点语法】lambda表达式,初始化列表

目录 引子:C11为什么的源来 语法1:初始化列表 1.2.2 多个对象的列表初始化 语法3:默认成员函数控制(delete,default) 语法4:lambda表达式 引子:C11为什么的源来 在2003年C标准…

简述RabbitMQ的架构设计

Broker: rabbitmq的服务节点Queue: 队列,是RabbitMQ的内部对象,⽤于存储消息。RabbitMQ中消息只能存储在队列中。⽣产者投递消息到队列,消费者从队列中获取消息并消费。多个消费者可以订阅同⼀个队列,这时队…

【Linux】shell命令行简单解释器

回顾一下,我们前面学习了进程创建,进程终止,进程等待,进程替换,通过这些内容我们可以来进行实现简单的shell命令行解释器!!!下面我们直接来看一看如何去实现shell命令行解释器&#…

[附源码]Python计算机毕业设计SSM临港新片区招商引资项目管理系统的设计与实现(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

嫦娥五号探测器详细介绍

嫦娥五号(Change 5),即嫦娥五号探测器,是由中国空间技术研究院研制的中国首个实施无人月面取样返回的航天器,是完成中国探月工程重大科技专项“绕、落、回”三步走发展战略最后一步的关键任务。 中国探月工程三步走 嫦…

cisco asa学习笔记

cisco asa学习笔记一、网络模拟实验中的问题调试记录1、ASA自身接口地址ping不通(从远端路由过来的主机)2、同安全级别的接口默认不能通信&#xff0c;怎么才能通信&#xff1f;3、一个asa连接3个路由器&#xff0c;互联互通解决方案<1>方案1 全局开启policy-map inspect…

算法竞赛入门【码蹄集进阶塔335题】(MT2281-2285)

算法竞赛入门【码蹄集进阶塔335题】(MT2281-2285&#xff09; 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2281-2285&#xff09;前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f;目录1. MT2281 另一种模2. MT2282 小码哥的认可3. MT2283 整数…

影响工业产品设计的主要因素

设计师对工业产品的产品外观设计主要依靠形状、图案和颜色的结合&#xff0c;创造出具有一定功能性质的新产品。在这个过程中&#xff0c;设计师需要充分利用各种因素&#xff0c;外观工业设计公司强调材料的机制和颜色。那么&#xff0c;影响产品设计的主要因素是什么呢? 一、…

【Linux】8.0 多线程

文章目录1.0 Linux线程概念1.1 Linux线程基本概念1.2 Linux线程优劣介绍2.0 Linux线程控制2.1 pthread_create(创建线程)2.2 pthread_join(线程等待)2.3 pthread_exit(线程终止)2.4 pthread_detach(线程分离)3.0 线程id和LWP的关系4.0 Linux线程互斥4.1 线程互斥相关概念4.2 线…

spring-boot-starter-data-redis 引发的一系列惨案

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> pom 引入jar包 &#xff0c;如果redis配置文件使用 lettuce &#xff0c;还需要引入 commons-pool2 &a…

数据可视化,销量第一的新能源汽车是什么?比亚迪新能源汽车销量接近60万辆

去年以来&#xff0c;新能源汽车火热度席卷全球&#xff0c;中国的新能源汽车无论制造或者销售&#xff0c;数量增长迅猛。下面小编用一款数据可视化软件&#xff0c;带你用可视化数据解读高端制造背后&#xff0c;中国新能源汽车的具体销售情况。同样如果你工作上有数据报表需…

固话号码认证有什么好处?固话号码认证有什么作用?

固话号码认证为企业提供号码认证服务&#xff0c;在来电时显示企业信息&#xff0c;可提高电话号码辨识度&#xff0c;防止错误标记&#xff0c;确保展现的企业信息与企业的手机终端、APP等多平台展示信息一致&#xff0c;保证品牌企业的身份及商业价值。 那如何上线号码认证服…

多点DMALL × Apache Kyuubi:构建统一SQL Proxy探索实践

伴随着国家产业升级的推进和云原生技术成熟&#xff0c;多点 DMALL 大数据技术也经历了从存算一体到存算分离的架构调整变迁。本文将从引入 Kyuubi 实现统一 SQL Proxy 的角度讲述这一探索实践的历程。 多点 DMALL 成立于2015年&#xff0c;提供一站式全渠道数字零售解决方案 D…

离线解锁 CodeCombat 全关卡教程 使用docker安装实现

背景 暂时还没收入&#xff0c;想玩顺便&#xff0c;但官方的有点贵&#xff08;是真的贵&#xff0c;扛不住&#xff09; 前期准备 下载安装docker desktop https://www.123pan.com/s/fmvUVv-HqApH&#xff0c; 这个安装不会的随便搜一个教程&#xff0c;挺多的。我随便找了一…

HTML篇_二、HTML简介_HTML入门必修第一课

HTML篇_二、HTML简介 一、HTML的基本结构 1.1 HTML的基本结构及解析 基本结构 这里我们先放一段代码块来进行展示&#xff0c;感受一下来自HTML的魅力。然后下文再对这段代码块进行解析。 <!DOCTYPE html> <html><head><meta charset"utf-8&quo…