隆冬已过,暖春将至,但互联网寒冬却丝毫没有放慢脚步。测试工程师如何在寒冬中保证自身的核心竞争力?资本红利洗刷过后的互联网企业需要怎样的测试人才呢?
经常听到一些测试同学抱怨,每天忙于业务测试,无法接触核心技术,面试时只能讲一些业务流程相关的东西,很难引起面试官的兴趣。甚至有些悲观的同学认为,测试就是枯燥的“鼠标点点点“,被淘汰的几率很大。
个人认为想要在寒冬中立足,应该加强这五个方面的能力:基础测试能力、环境治理能力、专项测试能力、工具开发能力、沟通协调能力。
1
基础测试能力
测试基础是指测试的基本功,首先要理解一些流程相关的东西,如 需求分析、测试计划、缺陷跟踪等。
其次要有扎实的用例设计能力,能灵活运用”等价类划分“、”边界值分析法“、”流程分析法“等常见用例设计方法,最后要具备很强的测试执行能力,移动端、web端、服务的测试执行各有特点。
例如 服务端测试,需要熟练使用Postman、Jmeter等工具做接口测试, 移动端测试,需要利用fiddler抓包来定位一些问题。
测试本身是一个实践性很强的工作,扎实的基本功不可或缺。
2
环境治理能力
”工欲善其事必先利其器“,想必测试环境的重要性也无需我多言了吧。
微服务流行的当下,服务拆分、中间件、高可用设计导致软件系统架构越来越复杂,调用链路错综复杂,配置多如牛毛,给测试环境的部署和管理带来了一定的挑战。”搭建环境半个月,测试执行两三天“,严重影响项目进度。生产环境有运维同学来维护,但是测试环境却没有,所以测试同学要承担起测试环境的运维角色。
快速部署环境,保证测试环境的持续可用状态,是每一位测试同学不可或缺的技能。要达成这一目标,需要具备一定的系统架构理解能力,掌握常见的Linux操作技巧,能熟练部署一些通用的服务,如:MySQL、Redis、Kafka等。随着Docker容器技术的广泛应用,容器化部署服务也是必备技能之一。
3
专项测试能力
”高可用“、”稳定性“、”易用性“等指标越来越被各大互联网厂商所追捧,性能测试、异常稳定性测试、故障演练等专项测试的价值日益凸显。实施这些测试需要具备一定的技术功底。
例如 要做Java应用的性能测试,就要深入了JVM虚拟机原理,了解常见的性能指标,如 响应时间、吞吐量、资源利用率等,能熟练使常见的性能定位工具,如 jstack、jstat、jmap等。
专项测试凸显的是分析和定位问题的能力,需要不断的实践才能得到提升。
4
工具开发能力
自动化工具是提高测试效率的利器,将一些重复性的工作自动化掉,能够避免被繁杂的手工测试所拖累,专注于更核心的测试工作上去。
想要做工具开发需要具备一定的代码能力,有些传统观念认为,测试同学不需要具备代码能力,这是很大的误区。具备代码能力处理可以写自动化工具外,还有其他很多优势,例如 可以参与开发的code review,增强对业务的理解。 自动化工具开发常用的框架有: Spring Boot+vue.js、Python+Django。
5
沟通协调能力
以质量为核心,不断提升效率,支撑产品快速迭代是测试的最终目的。
测试工作在项目中起到了承上启下的作用,在这过程中有很多资源需要协调,很多问题需要反复沟通,例如 测试同学需要推动开发去做一些自测,这样才能提升交付质量,出现bug后,需要推动开发同学快速修复bug。因此沟通协调能力也是测试工程师不容忽视的能力。
加强以上这五大技能,就不用担心在互联网寒冬中无立足之地了。
最后分享一下学习测试技术的基本路线,平时大家都是通过网络上搜一些文章来学习,由于网络上的文章都是讲的一些零碎的实践,缺乏系统性,对个人知识图谱的构建相对比较片面。
想要系统的学习,图书+网络课程的方式是比较好的选择。诸如 《Google测试之道》、《Spring Boot 实战》、《深入理解Java虚拟机》等书,都是值得反复阅读的,再结合一些系统性讲解测试技术的视频,对整个测试技术有更体系化的了解。同时,对于非科班出身或基础知识不够扎实的工程师来说,也可以有效起到查漏补缺的作用。
掌握了这些技术之后,就需要在实际的项目中开始实践,平时做测试的时候多往这些方向上面靠。
但是有些同学平时只能接触到一些小项目,有些技术只有大型项目才能施展,怎么办?有没有什么快速通道呢,当然有!