一提到软件测试工程师,不少人就会想到那些反复使用软件,试图在频繁操做中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。看着愈来愈多的新人加入到测试的行业当中是一件欣慰的事,这也说明测试做为一个新兴行业正在不断发展,相较于软件行业中的其它职业――例如软件开发,测试行业还显得比较稚嫩和混乱,人员水平也是参差不齐,薪资待遇差异也比较大。我想就我的经验谈谈测试工程师如何薪资过万。浏览器
测试工程师的职级划分网络
拿微软来说,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、测试工具软件开发工程师(Software Development Engineer in Test)和高级软件测试工程师(Ad_hoc Tester)框架
测试执行者负责理解产品的功能要求,而后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具备稳定性,属于最低级的执行角色。工具
测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,由于它们要具有写程序的技术。“由于不一样产品的特性不同,对测试工具要求也是不一样的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软不少测试工程师就是负责专门为某个产品写测试程序的。”性能
而Ad_hoc Testet属于比较有经验,本身会找方向并作的很好的测试工程师,这要求具备很强的创造性。而且在不少时候须要带领并管理一个单独的测试团队。学习
把微软的测试工程师的职级对应到国内则是:助理测试工程师,测试工程师,高级测试工程师。在国内优秀的测试工程师月薪过万有不少的,高级测试工程师的月薪则大多在2万以上。下面咱们说说如何一步步从测试菜鸟晋级到月薪过万的测试工程师。测试
测试工程师入门spa
对于一个新手,要在各方面培养本身的能力。首先是要理解各类测试流程,并在理解的基础上转化为本身的知识,之后遇到类似的问题能本身去解决。在测试技能上,要知道测试有那些手段,好比压力测试有哪些方法,哪些工具能够辅助作测试。从专业技能上,面向不一样的技术方向,像操做系统、网络、通讯等都要从专业上深刻了解。这三方面要同步去成长。操作系统
这里给你们推荐一些我在平常测试工做中经常使用的工具,这些工具也是你们之后工做中常常遇到的,因此必定要可以熟练使用和操做。命令行
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每每出在大型软件的链接处。
作软件测试工程师须要对软件抱有怀疑态度。这是由于开发人员喜欢想固然,老是找一些有利于本身程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各类数据,从每一个细节上设计不一样的应用场景,不去想固然的假定任何一个数据是可行的。
在职业素质和交际方面方面,并非测试工程师爱挑别人毛病才好,反而这个工做要求很强的沟通能力。常常的和开发人员进行沟通,说话办事要很得当,不能指责别人,不然会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是彻底不一样的两个问题。
可以作到这几点你收获的不可是薪资的增加,职业上的成长和我的能力的提高也很明显,这个时候你关注的就不只仅是月薪过万了。
测试工程师的将来
若是你已经开始从事软件测试工做,千万不要认为软件测试没有什么发展的潜力和前途。不少人开始作测试执行工做时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。由于学习能够作这些工做,不学习也能够作这些工做,但质量是不一样的。有些人自学和请教了不少测试技术和管理方面的知识,公司天然就会在下个项目中去培养他。
软件测试是正在快速发展,充满挑战的领域。尽管如今单机版桌面软件的测试已经成熟了不少,但对于网络时代的来临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为何黑客在网络上能兴风做浪的缘由。网络测试是一个新环境,并且是很大的挑战。
软件测试将来的发展空间很大,软件测试工程师的职业之路一样充满但愿。