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

开篇

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

我的经历

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

测开的岗位定位

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

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

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

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

测开核心价值

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

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

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

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

2022测试生涯该如何转型

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

测试开发所需要的技术栈

测试开发之路,我在大厂做测试这四年的感悟_第1张图片
一、具备一定测试经验。只有设身处地的经历过测试人员的痛点和难点,才能切实解决他们的问题。

二、会使用常用重要的测试工具。比如性能测试常用的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日常测试工作,还需要肩负测试与效能齐头并进的使命的一个岗位。

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

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

测试开发技能难点和学习通道

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

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

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

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

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

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

现在我邀请你进入我们的软件测试学习交流群:769146372 ,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

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

最后可以在公众号:程序员一凡 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

你可能感兴趣的:(软件测试,软件测试,测试工程师,自动化测试,功能测试,python)