软件测试大致分为以上三类,每类可细化为更多子方面,例如第二类根据测试类型还可细化为功能测试、性能测试、安全测试等,根据测试方法可细化为黑盒测试、白盒测试、灰盒测试等。因此,软件测试工程师的职业发展方向,也大致可以如此粗略分类,并逐渐细化。这里,之所以将软件测试自动化单独列出来,是考虑到软件测试自动化既包括技术方法方面,又包含管理方面;更重要的是,软件测试自动化是软件测试领域无法逾越的发展阶段,随着应用软件程序规模的不断扩大,业务逻辑的不断复杂,以及从业者相互协作关系的日益重要,在软件的测试活动里适当使用自动化测试是非常必要的;并且,这种思维已经逐渐在国内外众多软件企业的测试头脑中定型,他们也都意识到自动化测试的种种优势,并都或多或少希望购买和培训自动化测试工具。我们接触的很多大中型软件公司,包括外企,甚至早在内部实施自动化测试,其中以使用mercury loadrunner、quicktestpro以及testdirector等工具的企业用户居多。

  这里我想对喜欢自动化测试或立志成为自动化测试工程师的同行朋友说点个人想法,并结合mercury自动化测试工具,推荐些许学习方法,以供大家参考。

  1)如果你有过开发经验,哪怕一点点,并且一直以来从事的是功能测试工作,那么推荐你学习自动化功能测试工具,并在此方面深入研究下去。该职位待遇一般是本地城市手工测试工程师的两倍左右,如果到达高级自动化测试工程师职位,从事自动化测试设计或测试框架的开发,待遇会更高。Mercury公司的winrunner和quicktestpro,是目前主流的自动化功能测试工具,学习二者的方法也很简单,只要懂得c语言和VBscript即可。要深入学习,当然还要熟悉自动化功能测试的流程、管理及深层开发(包括测试框架、库函数等)。当前国内的应用软件开发,主流还是c/s与b/s两种架构,前者一般采用vb、vc、delphi、pb或java等开发,而winrunner工具对此类软件支持得比较好,很适合在这样的软件测试活动中采用自动化测试;后者一般是采用.net或j2ee技术开发的基于浏览器类软件,测试该类软件非quicktestpro莫属了,它是mercury公司专门针对web程序的自动化测试工具。由于自动化功能测试工具品牌多,入门简单,因此,也是众多立志成为自动化测试工程师的。

  2)作为一名软件测试从业者,我们知道执行性能测试,使用手工方式是无法想象的,因此借助工具来实现是非常必要的。目前业内存在两种现状:一是很多公司为了节约购买工具的成本或本身不要求软件性能指标而干脆不执行性能测试;二是由于性能测试是一门博大精深的技术工作,起步较高,因此这方面的高手不多,造成很多大中型软件企业或外企严重缺乏性能测试工程师!性能测试工程师待遇,一般是本地手工测试工程师的三倍甚至更多;我们接触的企业客户需求里,很多开价上万的性能测试工程师职位,竟然很难招到。随着软件开发技术越来越高深,业务逻辑越来越复杂,对软件的质量要求同样也会越来越高,软件一定会存在性能缺陷,因此对软件的性能要求也会随之而来;况且,软件的性能指标是软件用户手册里的重要组成部分,从正规测试流程上来说,凡是网络应用软件,不可不做性能测试!但是,从事性能测试的工程师,需要掌握太多的知识,包括计算机网络、数据库、操作系统、服务器等,而且还要有深厚的性能测试计划、设计、分析能力,以及丰富的性能测试经验,这些如果单靠个人的自行摸索,肯定是不太实际的。Mercury公司的loadrunner,是目前国际上性能测试工具的,具有百分之75的市场占有率;在国内,业界同行也都是提起性能测试首先想到loadrunner;因此loadrunner是在软件测试领域里立志成为一名合格的、的性能测试工程师的朋友们的。

  3)如果你从来没有过软件开发经验,一直从事的只是手工测试,而且对软件测试的流程管理有着浓厚的兴趣,尤其对于那些从事测试的姑娘们!testdirector都听说吧?它集测试需求、测试用例、测试执行、软件缺陷管理于一身,将软件测试的整个流程统一管理,并支持异地分布式测试资源管理。和众多的软件测试同行接触,我们愈加发现一个问题,那是我们很多的业界朋友,缺乏完整的、系统的软件测试知识体系,喜欢满足现状,而不去思考如何更加有效的实施软件测试活动,优化软件测试流程。针对这种现状,学习国外的软件测试流程与管理经验,理所当然了。而testdirector是当前市场上的软件测试流程与资源管理的工具,目前本人还未见过一款测试管理工具集成如此众多功能(当然它的升级版quality center也是mercury公司的)。因此,掌握该款工具的使用,是立志成为软件测试管理者的一个非常必要的方面。

  4)其他自动化测试领域,本文暂不讨论,例如白盒测试、特殊类型测试等。

  那么,什么是开拓上述三种自动化测试职业的捷径呢?

  答案很简单,如果你可以抛开世俗观念,考取mercury认证是捷径!

  下面我要向大家论证考取mercury认证的几大理由:

  首先,mercury公司是软件质量保证工具开发商中的。下图是美国gartner公司的新调查结果,位于坐标第一象限右上角的是mercury,图中还有其他我们熟知的几个公司,如IBM rational、compuware等,但是mercury长久以来,一直独占着软件测试工具提供商的地位,包括很多在华投资成立软件研发基地的外企,他们多数都是使用mercury测试工具。如果有了这个测试工具供应商的,那么,想要学习自动化测试工具,有什么理由不选择mercury呢? 其次,拿本人经验来说,有了mercury工具的使用经验,即便将来所在公司不使用该款工具,那么再学习其他的工具也会相当顺手,不费吹灰之力!为什么呢?举例来说,比如loadrunner的网络协议是本人所接触的性能测试工具中,支持多的(相信很多人会同意我这个观点),如果将来你打算换用webload、silkperformer(当然它们的局限性要比loadrunner大的多)等性能测试工具,不会比loadrunner还复杂;再比如拿quicktestpro和其他针对web程序的测试工具(如qawizard、XDE Tester等)相比,使用更是完全类似(不了解的人可以到本人blog查看我的文章去亲自对比)。至于testdirector,更是的功能强大的测试管理工具,没的选择!

  再次,如果你的眼光足够长远,能够看清未来软件测试中自动化测试的重要地位,那么你更应该选择。回想当年的思科认证,刚刚推出时候价格昂贵,但是依然有那么多的人去考。为什么呢?因为有大量的需求!认证通过的人过后都认为这笔投入值得!类比软件测试行业,虽然现在还没到达计算机网络行业发展的那样成熟,但是未来的两三年后,如果有到处都是自动化测试的人才需求,到时再临时抱佛脚,相信你不会有什么优势了。任何认证都是初期有价值的,如果抓住机会在推广初期考取,等到这个认证普遍到一定程度,你已经有了几年的实用经验,所以优势仍在、风采依然!顺便提醒一句,计算机行业发展是相当快的,回首过去这3年,软件测试行业一直是在飞速前进的。如果错过如今这段大好时光,没有及时为自己充电,那么如今你这位软件测试新手,到了3年以后,依然是新手,只是比那时刚毕业的热血青年显得沧桑了一些… 所谓岁月不等人咧,这也是我前边要说的“过了这村没这店啦”