很多人对测试工程师都有一些刻板印象,比如觉得测试“入门门槛低,没有技术含量”、“对公司不重要”、“操作简单工作枯燥”“一百个开发,一个测试”等等。
会产生这种负面评论,是因为很多人对测试的了解,还停留在几年前,那时对测试的要求确实相对较低。但随着技术发展,企业对测试人员的要求已经逐步从低端的功能性测试,转变为更高级的自动化测试了。
尤其是近两年,越来越多大厂喊着要“去 QE”。QE 即 Quality Engineer,也就是软件测试工程师,“去 QE”,不再需要测试工程师,本质上指的是测试工作不再由专职的测试工程师来做,而是由开发工程师自己来完成。
软件测试领域大佬茹炳晟,专门写过一篇文章探讨这个问题,他的观点就很一针见血:
“去QE”通常会遵循“谁开发、谁测试、谁上线、谁On Call” 的 “一条龙” 原则。显然,如果软件开发流程按照这个模式运作,原本的QE,也就是测试工程师和测试开发工程师在项目中就会很尴尬,如果不能找到突破点并为项目或公司带来价值,极端情况下就会面临被淘汰的窘境,现实是很残酷,在一些推行“去QE”的互联网巨头公司,已经有很多活生生的例子了,一些原本做功能测试以及自动化测试的工程师已经被迫离开了原本的岗位,甚至是离开了公司。”
所以,面对势不可挡的“去QE”趋势,测试工程师怎么才能积极面对并拥抱变化,在“去QE”的时代背景下破茧重生呢?
首先要做的,当然是提升自己的技术能力。但我却发现,身边很多测试工程师,仍在做重复性工作。想探索点新技术,发现公司的业务场景和用户体量根本用不着。长久下去,某天跟同行交流才发现自己仿佛被时代抛弃,什么自动化测试、性能测试、API 测试、高可用高性能之类的流行名词和行业趋势,明明身在其中却不知所云。就比如:
进阶Python接口自动化测试必备教程(23年全网最详细)
如何才能快速了解和学习那些时髦的测试技术?
对于一个测试人员,如何构建自己的能力堡垒?
成为软件测试工程师的高效学习路径是什么?
怎样找到最适合自己项目的测试框架和工具?
其实,之前这些问题也常充斥在我心里,后来随着工作年限的变长和经验的积累,我才慢慢领悟。尤其后来看到茹炳晟老师的观点,更是深觉自己应该抓紧时间夯实基础,提高技术水平。
测试工程师的必备技能:
软件测试基础篇,系统讲解软件测试的基本概念、主流的测试方法和测试理念,为后续技术知识的学习打好基础。
软件测试技术篇,理论结合实例,讲述包括 GUI 自动化测试、API 自动化测试、代码级测试和性能测试技术,这 4 种测试技术的核心知识、设计思想以及最佳实践。
测试架构篇,讲述测试数据准备与测试基础架构的内容,既有解决测试数据准备痛点的方案,又有大型互联网企业测试基础架构设计的最佳实践。
测试新技术篇,选取当下比较热门的探索式测试、测试驱动开发、精准测试、渗透测试技术和基于模型的测试,分别讲述它们解决的问题和具体的实现方法。
测试人员的互联网架构核心知识篇,从高性能、高可用、伸缩性和可扩展性四个维度。对大型网站架构进行深度剖析,弥补测试工程师相比较与开发工程师以及测试架构师之间的鸿沟。
测试是一个软件上线的「最后一道屏障」,测试人员的职责就是要尽可能多地找到潜在的缺陷。但不论能力多强的测试工程师,都不可能保证上线百分百没有 bug 。
所以,只有“知其然知其所以然”,深入理解当下主流的测试技术,才能高效完成高质量的测试,交付合格的软件。