一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。看着越来越多的新人加入到测试的行业当中是一件欣慰的事,这也说明测试作为一个新兴行业正在不断发展,相较于软件行业中的其它职业――例如软件开发,测试行业还显得比较稚嫩和混乱,人员水平也是良莠不齐,薪资待遇差别也比较大。我想就个人经验谈谈测试工程师如何薪资过万。
测试工程师的职级划分
拿微软来讲,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、测试工具软件开发工程师(Software Development Engineer in Test)和高级软件测试工程师(Ad_hoc Tester)
测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。
测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。“因为不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。”
而Ad_hoc Testet属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具有很强的创造性。并且在很多时候需要带领并管理一个单独的测试团队。
把微软的测试工程师的职级对应到国内则是:助理测试工程师,测试工程师,高级测试工程师。在国内优秀的测试工程师月薪过万有很多的,高级测试工程师的月薪则大多在2万以上。下面我们说说如何一步步从测试菜鸟晋级到月薪过万的测试工程师。
测试工程师入门
对于一个新手,要在各方面培养自己的能力。首先是要理解各种测试流程,并在理解的基础上转化为自己的知识,以后遇到相似的问题能自己去解决。在测试技能上,要知道测试有那些手段,比如压力测试有哪些方法,哪些工具可以辅助做测试。从专业技能上,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这三方面要同步去成长。
这里给大家推荐一些我在日常测试工作中常用的工具,这些工具也是大家以后工作中经常遇到的,所以一定要能够熟练使用和操作。
Teamin—国内第一款支持bug版本管理的轻量型协作工具
Teamin拥有目标管理功能,可以用目标管理功能实现bug的版本管理功能。Teamin并且支持列表和看板模式的切换,在列表模式下记录更新完bug任务后可以切换到看板模式查看任务的进展。还可以将bug任务跨项目跨团队指定给开发人员,方便了测试人员对bug修复的管理。可以对bug添加任务详情描述和标签,标签字段和颜色支持自定义。
AutoRunner—国内第一款自动化测试工具
AutoRunner国内第一款自动化测试工具,可以用来完成功能测试、回归测试、每日构建测试与自动回归测试等工作。是具有脚本语言的、提供针对脚本完善的跟踪和调试功能的、支持IE测试和Windows native测试的自动化测试工具。
TestCenter—一款强大的测试管理工具
它可以帮助您:实现测试用例的过程管理,对测试需求过程、测试用例设计过程、业务组件设计实现过程等整个测试过程进行管理。实现测试用例的标准化即每个测试人员都能够理解并使用标准化后的测试用例,降低了测试用例对个人的依赖;提供测试用例复用,用例和脚本能够被复用,以保护测试人员的资产;提供可伸缩的测试执行框架,提供自动测试支持;提供测试数据管理,帮助用户同意管理测试数据,降低测试数据和测试脚本之间的耦合度。
TAR(Terminal AutoRunner)
TAR(Terminal AutoRunner)适用于VT100、VT220等标准的应用系统,支持命令行模式和窗口模式(使用Cursors编写的应用程序),支持自动录制脚本、所见即所得的资源和脚本编辑,稳定的自动同步功能。是目前国内最好的银行业务测试工具.
TestDirector
TestDirector是全球最大的软件测试工具提供商Mercury Interactive公司生产的企业级测试管理工具,也是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。
Selenium—浏览器自动化测试框架
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
能够做到这些相信你在前辈的指导下从事基本的测试工作是没有问题的,迈出了第一步接下来的事情就好办了。
软件测试工程师需要具备的素质
因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。
软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。在五六个人的测试小组时,一半以上的Bug都是我找到的。这同我是数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。
做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。
做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。
在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。
能够做到这几点你收获的不但是薪资的增长,职业上的成长和个人能力的提升也很明显,这个时候你关注的就不仅仅是月薪过万了。
测试工程师的未来
如果你已经开始从事软件测试工作,千万不要认为软件测试没有什么发展的潜力和前途。很多人开始做测试执行工作时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。因为学习可以做这些工作,不学习也可以做这些工作,但质量是不同的。有些人自学和请教了很多测试技术和管理方面的知识,公司自然就会在下个项目中去培养他。
软件测试是正在快速发展,充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的来临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。网络测试是一个新环境,而且是很大的挑战。
软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。