在谈到软件测试工程师时,许多人还是会想到那些重复使用软件并试图在频繁的操作中发现 BUG的人,也就是人们常说的按照测试规范和测试案例来测试软件,检查软件是否有错误,判断软件是否稳定。但这是一个很老派和错误的观点。
由于以上观念,导致软测试工程师在最初的十年中基本上处于较低的地位,认为测试工程师从事的是技术含量不高、随时可以取代的重复工作。
据调查,国内的软件测试,在互联网刚刚兴起的十多年间被冷眼对待,特别是那些没有配备软件测试人员的中小型软件企业,测试工作往往由开发岗位兼任,通常只进行简单的白盒测试,这种做法在一定程度上等于让用户也充当了测试的角色,造成的后果往往是用户发现一堆问题后进行反馈,然后修改,反复修改造成的后果就是软件难以稳定,用户的耐心也被消磨殆尽,最终导致项目失败。
近几年来,各大互联网企业兴起,对软件的需求不断增加,对软件的稳定性和性能的要求也越来越高,对软件测试工程师的技能要求也是一个挑战,每一个测试工程师都要根据工作的需要,对自己的水平做相应的调整。
以下我们就来盘点测试工程师各个阶段所需的技能。
初试工程师(1-2年测试经验)
初试工程师为入行1-2年的工程师,进入初级测试工程师的门槛不会太高,一般对专业没有什么限制,有专科学历,熟悉软件测试技术、方法、流程、测试文档等。最好还有 ISTQB的证书,这种证书这些年比较流行,也不难考,业内差不多都认为他是初级测试工程师的上岗证,当然如果入职的公司没有特别要求,不考也无所谓。
此时测试的是软件的功能方面,如果想要进一步提升,还需要熟悉自动化测试流程、管理、测试框架等,比如功能测试工具 WinRunner、 QuickTestPro,熟悉一些主流的软件工程方法和理念,例如 RUP、 CMM、 CMMI、 XP、 PSP、 TSP等;了解软件工程、软件生命周期模型基础、了解软件配置管理等。
此外,作为一个测试工程师,沟通能力非常重要,要学会及时地和开发人员沟通,开发人员和测试人员并非站在两极,而是两个角色,一个是软件实现的,一个是软件实现的。
中等测试工程师(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相关的认证培训,可以在其网站上查询。不懂的地方可以私聊一起交流软件测试。
资深测试工程师(5年以上)
这一阶段属于这一行业的最高级阶段,当然也不排除有高薪的存在,下面是一个大概的数据。这段时间一般不会只是简单的进行测试技术的较量,只想自己专心做技术也是不可能的,管理到这个阶段是不可缺少的。
由于这一阶段你已经达到了一定的水平,你必然会得到提升,你要开始扮演一个管理人员和技术人员的角色。此时除了为自己的团队提供技术方面的指导和支持,还要具备与客户打交道的能力,例如对其进行演示推广等。
同时您还负责了一些项目的测试,这段时间一方面要不断提供自己的测试技术,还要提高自己的管理能力和沟通能力。毫无疑问,到了这个阶段,我们可以重新梳理自己的事业,按照现状来规划下一步。
事实上,整体而言,就是五个字——核心竞争力。十年来,测试工程师缺口比较大,而且技术员一般都是需要时间成长的,很多企业已经有缺口,不能自己动手培养,而且成本太高,所以他们肯定喜欢快速上手。
而测试工程师需要有非常广泛的知识体系,这是基础,在此基础上,我们要想想我们和普通测试工程师不一样的地方,一旦我们发现自己和别人一样,我们就会被别人选择;如果我们有特殊的技能,我们也可以选择别人。当我们规划自己的职业生涯时,我们要时刻提醒自己,我们什么地方比别人高,怎样保持自己的独特性。