软件测试工程师在不同阶段需要掌握的技能
要想分析软件测试工程师在不同阶段的技能需求,首先要知道测试工程师在软件上线过程中担任的角色。
很多人一说到软件测试工程师,还是会想到那些反复使用软件,试图在频繁操作中找到BUG的人员,也就是通常说的根据测试规范和测试案例对软件进行测试,检查软件有没有出现错误,判断软件是否稳定的角色。但是这是一种非常陈旧且错误的观念了。
正因为上述的观念,导致软测试工程师在开始的十年里基本属于不那么被重视的地位,认为测试工程师从事的是重复的技术含量不高的工作,随时可被替代。
根据调查,国内的软件测试,在互联网刚刚崛起的十几年里面被漠视的态度,尤其是中小型的软件企业,没有配备专门的软件测试人员,测试工作往往被开发岗位兼任,一般只是进行简单的白盒测试,这种做法在一定程度上等于让用户也充当了测试的角色,造成的后果往往是用户发现一堆问题后进行反馈,然后修改,反复修改造成的后果就是软件难以稳定,用户的耐心也被消磨殆尽,最终导致项目失败。
直到近年来各大型的的互联网公司崛起,对于软件的需求越加丰富,对于软件的稳定以及性能的要求也越来越高,对软件测试工程师的技能要求也是一个挑战,每个测试工程师都要随着工作的要求对自己的水平做相对应的调整。
下面我们就来盘点不同阶段的测试工程师所需要的的技能。
初级测试工程师(1-2年测试工作经验)
初级测试工程师是入行1-2年内的工程师,进入初级测试工程师的门槛不会太高,一般对专业的限制不大,有专科学历,要熟悉软件的测试技术、方法、流程、测试文档等。最好再有个ISTQB的证书,这个证书这几年比较流行,也不难考,业内差不多把他认为是初级测试工程师的一个上岗证,当然如果入职的公司没有特别要求,不考也无所谓。
这时候做的测试的是软件的功能方面,如果想进一步提升,还需要熟悉自动化测试流程、管理以及测试框架等等,如功能测试工具WinRunner、QuickTestPro,熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP;了解软件工程,软件生命周期模型基础,了解软件配置管理等。
另外,作为测试工程师,沟通能力也是十分重要的,要学会及时与开发人员及时沟通,开发人员与测试人员并不是处于对立的两端,而是对软件互相成就的两种角色。
2020年6月软件测试工程师职位招聘
中级测试工程师(3-4年测试工作经验)
要达到中级水平,最低也得3年工作经验,做的工作内容也会有所变化。
中级测试工程师编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;不再局限于简单的功能测试,要会自动化测试、性能测试等。
自动化测试比较简单的,学习难度相对也还好。性能测试是未来十年的趋势,所以在这个阶段的重心就是性能测试,要在这个阶段积累经验,沉淀一定的知识积累、知识深度。所以在这个阶段一定要对常见的性能测试工具有深入的了解,并在此阶段培养自身的核心竞争力。
市面上最常用的性能测试工具是JMeter和LoadRunnner,这两个工具都有各自的优势和各自的短处,但不可否认的是他们占据的市场份额。
JMeter:是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、 数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的 强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。他的优点是安装方便,且是开源软件,是免费的,所以很多小公司在进行性能测试时候会使用这个工具,但是它的劣势也比较明显,它在进行系统性能时无法模拟真实情况测试,且做较大的性能项目时候无法有效的进行测试。这个软件的学习一般可以自己购买书籍自学即可,难度不会太高,是最开始进入性能测试领域的工具优先之选。
LoadRunner:最初是Mercury公司的产品,2006年Mercury公司被惠普收购,成为惠普的产品,后来在2017年,惠普的整个软件部门被全球第七大纯软件公司Micro Focus收购,成为Micro Focus的产品。
它通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间优化性能和加速应用系统的发布。
这款软件使用的优势非常明显,在进行测试时候能够进行实时监控,来帮助更快地确认和查找问题的所在,使用LoadRunner的VirtualUser Generator引擎,能够很简便地模拟应用系统的负载量。该引擎能够生成代理和虚拟用户来模拟业务流程和真正用户的操作行为。
不过他强有力的功能下是昂贵的购买费用,且这个这个工具的使用也有一定门槛。所以一般购买这个软件的是中型或大型企业,他们愿意花费这个费用去向LoadRunner厂商购买软件;不愿意花费这笔费用的小型软件开发企业也会去寻求一些破解版的工具使用,所以市面上对于会使用LoadRunner的工程师需求量比较大。但是尴尬的是市面上能够熟练使用LoadRunner的测试工程师却不多,所以LoadRunner厂商Micro Focus在近两年也有推出相关的针对LoadRunner的认证培训,在他们的官网上都可以进行查询。
Micro Focus官网:https://microfocus.viewcentral.com/events/uploads/microfocus/index.html
国内认证官网:https://www.saichenipa.com/lrsp_index
高级测试工程师(5年以上)
这个阶段一般属于这个行业的最高级了,当然也不排除还有更高薪资的,这里只是大概的数据。这个时候一般都不会只是单纯的进行测试技术的较量了,只想自己专心做技术也是不可能的了,管理到了这个阶段是不可或缺的。
因为在这个阶段你已经做到了一定的程度,你必然会升职,你要开始承担管理者与技术的角色。这个时候除了为自己团队提供技术方面的指导与支持,还要具备与客户打交道的能力,比如为其进行演示推介。你还要负责几个项目的测试,这个时候一方面要不断提供自己的测试技术,还要提高自己的管理能力以及沟通能力。当然到了这个阶段,我们就可以重新梳理我们的职业生涯,根据现状去规划下一步了。
其实整篇说下来,就是五个字-核心竞争力。测试工程师的缺口在十年内都是比较大的,并且技术人员一般都是需要时间成长的,很多企业的缺口已经存在,是来不及自己去手把手培养的,并且成本也过高,所以他们肯定喜欢可以快速上手的。
而且测试工程师需要具备非常宽广的知识体系,这是基础的,在基础之上,我们要思考我们与一般的测试工程师不同的是什么,一旦我们发现我们与别人一样,那我们就会被别人选择;如果我们有特定的技能,那么我们就能选择别人。我们在规划职业生涯的时候要时刻提醒自己,我们比别的人高的点在哪里,如何保持自己的独特性。