原文转载:http://www.uml.org.cn/Test/201207204.asp
前些天写了《软件测试员---你的路在哪里?》 我有提到,我问了一下大我几岁朋友的薪资,他的薪资处在我划分的第二阶段的中间,情绪变得比较消极。
他告诉我,你跳到第二阶段了,但再往上走,想有一个薪资的大跨度很难,需要的时间也相对比较长。然后,我就把测试员的路划分了三个阶段。虽然划分了三个阶段,但我并不知道如何跨越到第三个阶段。自己也处于非常迷茫的状态。 希望能得到有用的回复了评论,但大多回复说到努力做好现在,埋头学好技术。这些是必须的,单就测试技术来说,多了去了。总要给自己找个比较明朗的方向和目标吧!不然,你是想一切随缘呢?还是想等着柳暗花明呢?
先说一位网友在群里发了一篇颇长的文章,大概意思是讲功能测试一样可以做到很牛。注意,我这里的“功能测试”是狭义上的功能,因为一切的软件测试活动都是为了保证软件功能的正确运行。而我这里所说的功能测试是偏向于“手工”测试吧。这篇文章里大讲特讲,功能测试员不单单是找功能上那些简单的bug 。更要从需求和架构上发现隐藏了问题。我不否认他的正确性。但身为一个天朝的测试员,你一功能测试员管这么“宽”,你让拿着更高薪资的需求分析师和架构师情何以堪啊。
而且,在国内我没发现有特么牛的单单就会功能的功能测试专家。我想他们都应该转行去做需求分析师了吧!说上面这些是想告诉你,想在国内通过功能测试(狭义)达到第三个阶段很难。
后来群里讨论了一下,在这里要感谢“拙文”的指点,大我两岁,他已轻松跨越到第三阶段,表示毫无压力。唉!这就是人与人的差距。
自己思考了一下,把进阶到第三阶段分为三条路。白盒测试、自动化测试、性能测试。(从广义上来讲,白盒测试与自动化测试也属于功能测试)
注:可能你也早知道这三个方向,我这里对这三个方面做个分析,如有错误,欢迎指正!以免误人误已。呵呵!
白盒测试:
在我们大多测试员看来,这是个非常高级的工作,好多人视其为测试工作的终极目标。其实,它并没有想象的高级与神秘,只是我们一般的“初级”测试员不懂开发,自认为比开发低半头。如果能测开发人员写的代码,那自然是件不得了的事儿。呵呵!
其实,开发也就那么回事儿。你看看那么多的培训机构,甚至有承诺你只要是理工科专业的,半年都能教会你开发,收入还三到八K之间。他们还教你有项目经验,一个大点的项目做几年的都有。他们就半年还让你有项目经验。其实,也是把比较基本的东西教给你,不会的函数会查文档,工作之间会遇到开发各种各样的系统。那也需要一个长期的学习各积累的过程。说这么多就是想告诉你,开发不难。下面看一下白盒测试需要掌握哪些技能:
首先,懂得一门开发语言是必须的,代码都不懂,如何写测试代码。是吧!不过,你是否疑虑开发人员写了个100行的代码,你可能可要写200行有代码来验证开发人员100行有代码是否正确。不用担心,有测试来框架来帮你呢?像java的测试框架有JUnit、testNG ,C++测试框架有CPPUnit、Unit++等等,基本上现在流行有语言都有相应的测试框架。所以,在熟悉了一门语言之后,你需要精通一门测试框架。
白盒测试,你需要做不仅仅是单元能测试,只真对开发人员的每段代码进行测试。而且,在相当多的时候,单元测试是由开发人员自己完成的。你还需要做集成测试。多个单元代码放到一起之后,你需要对这个集成小模块进行测试。你还需要进行接口测试。现在的系统相当复杂,各种子系统或模块之间需要相互调用彼此的接口。相关,集成测试与接口测试,本人未接触过,所以,知之甚少。哈哈!
自动化测试:
这里的自动化测试主要指的功能自动化测试,你是不是立刻想到了QTP,他只是个自动测试工具而已,QTP不等于自动化测试,如果你已经会用QTP录制回放脚本,那只能算刚入门,用QTP的朋友都知道,要想QTP玩的比较深一点,那么你必须学习VBS脚本语言。
看到好多公司的一腔热情的扑在自动化测试上,但投入了大量的成本,收效甚微,这个主要是他们的一没自动化经验,二没分析系统是否适合自动化测试。但这并不妨碍自动化测试技术进住公司。还有大把的公司在尝试自动化,因为它后期真的可以节约不小的成本。呵呵
下面来看想做自动测试的人员需要哪些技能。
除了QTP外,自动化工具很多,另一个比较有名的是selenium,他支持多种语言,java、php、C# 等等。如果你要自动化的项目是C/S的,那么你需要对weindows组件了如指掌,因为你要用语言操作这些组件。不过,现在的大多项目都是基于web端的。在这里想说一下现在的前端开发人员真的好悲剧,以前就一个IE6,现在各种各样的浏览器百家争鸣,我们要兼顾到各种浏览器。在这里说声“你们辛苦了!”,不急,身体web端的功能自动化测试人员,你也是个悲剧。因为前端的技术你都要会,前端技术发展的很快,各种绚丽的新组件,最近比大火的HTML5技术,因为你要用自动化捕捉这些组件的属性。所以,你要面临的问题很多。道路很曲折。
性能测试:
如果前面两个你感觉有难度,要不咱再看看性能测试。总有一款适合你的,哈哈!
这个我会,我会用loadrunner,又犯前面的毛病了,是吧?QTP都不等于动能自动化测试,你认为loadrunner会等于性能测试!?淡定!测试工具只是性能测试过程中的一个部分,虽然,是必不可少的一部分,但性能工具的选择也很多,比如,JMeter和webLOAD都是相当出色的性能测试工具。
其实,说性能测试工具是测试过程中不可缺少的一部分,那是在现在,过去还真不是。在那个没有性能测试工具的年代,银行测试人员组织员工,准备个几十上百台电脑,领导一吹口哨,员工狂点鼠标。不要笑,真有此事儿!扯远了。呵呵。
看到现在市面上仅有的几本性能测试书都是基于loadrunner工具来讲的,这里多少有点误人的感觉。唉!
这里纠正你一个观点,你要测试的一个系统是一个整体,所以,你要对一个系统的整体都非常了解。你要给一个人看病,你只会看头痛,可病人是肚子痛,你死盯着病人的头研究,怎么能找到病人问题的所在。当然,你可以找看肚子的医生来协助。但看肚子的医生可以会误导你对病人问题的判断。所以,你要向古代的华佗学习,什么外科,内科,男科一人完搞定。为什么讲这个?因为下面我要说的东西你可能会认为不是做性能测试要学的内容。
服务系统:现在的系统有台是用windows的?所以,要学习linux/unix,不说精通也要熟练。因为你在性能测试的简历上常写搭建测试环境,莫非~,是winddows的测试环境?安装各种服务要会,查看监控系统性能,对系统几部机制也要有所了解。
数据库:至少要熟悉一种大型数据库,对数据库使用,调优!性能出了问题,不要死盯程序,也许是数据库设计不合理或出现有性能问题引起了。你要会分析数据库。
中间件:中间件是系统与服务器的中间载体,要对中间件的机制性能有所了解。常见的中间件有tomcat、weblogic等。
软件系统:唉,这里又要扯开发的东西了,不过不用像白盒测试那样精通。
系统架构:为什么要学习架构的东西,同样是几块木板,可以做成坚固的大楼,也可能做成风一吹就倒的鸡窝。不了解系统架构如何进行测试,如何进行性能分析。
其它,网络知识,因为网络环境也是测试中很重要的一部分。协议,常有发现自己用loadrunner录制了半天没录到东西或无法回放。这八成是协议选错了
上面讲的三个方向,你能做的其种一项工作,那么你突破到第三阶段毫无压力。所果,在那项工作中小有所成,那将前途们量了。呵呵!在写完这篇博文的时候,我就给自己定下了目标。关于每项工作所需要的技能我也略有阐述。但不是很明确。因为,我不是过来人。但有了目标总是好的。你呢?
备注:
软件测试员----你的路在哪里?
之前,我中部的一个的城市,做着一个快乐的测试员,工作不太忙,对一切技术充满了好奇心。测试工作不专业,也不受重视。但我有自己的快乐。工作不忙的时候,我今天学学性能测试+loadRunner,明天学学自动动化selenium。老大说,你对咱项目做个性能测试吧。然后,我就跑去问百度、谷歌和群里的朋友,它他告诉我需要什么样的工具,什么环境,主要看哪些指标,然后再送我两个报告模板,照猫画虎的给做完交任务了。突然对自动化又产生了兴趣,找视频、找资料、买书忙碌的不亦乐乎。发现要会语言,没事儿咱有的是时间,上电驴上下视频吧。当第一次用struts2 写一个登录时还是很兴奋的。前台——后台——中间件——数据库。噢!原来用户做一个登录,我们的系统是这么运行的。哈哈。很开心!再回到自动化上去,当第一次用QTP录制了一个脚本,运行的时候,看着屏幕真心的笑了,好像电脑被黑客操控了一样,各种操作都不用手的。
后来,听说外面的世界很精彩,为一颗不安分的心,我还年轻,我不能局限在这悠闲的生活中消磨自已。有人说毕业的五年很重要,毕业的五年可以将会让同学之间的距离拉得很远。而且五年后的样子也基本可以看出你后半生的样子。所以,这五年不能输在起跑线上。这才是真正人生的起跑线,学校的成绩与之相比一文不值。然来,我就来到了大城市,这里薪资比以前高一倍多。这里的有专业的团队,规范的流程,测试与开发平起平坐。我应该感到高兴,我们受到的重视,找到了工作的价值。
你的路在哪里?
繁杂业务,因为刚来,我每天都在熟悉都各种被测系统的业务,各种文档、需求、用例。第一轮--第二轮--第三轮---报告--总结。你每天都很忙,有时为了赶系统上线,甚至需要加班。你无暇学习新的技术。然后,习惯了这个薪水,你会发现他越来越不够用,等着每年微薄的调薪,也许刚好够赶上物价的上涨,干了三到五年之后,你想到换一份工作来提高薪水,你可以要高薪的资本是什么?规范的流程,对不起,我们公司流程和你上一家不同。对业务的熟悉程度。对不起,我们公司的业务和你上一家不同。你还需要重新学新的流程和业务。
噢!噢!我去面试测试主管和经理,请问你有管理经验吗?你如何去协调整个团队?
噢!噢!那我在工作之余学学性能测试或自动化。这时你的尴尬就出来了,你已经快奔三十了。对于性能和自动化的理解,因为都没有太多的项目经验。而根据你的情况,你们只能应聘“初级”性能或自动化测试员。初级开的薪资也许还没你目前的薪资高。你是做呢?还是放弃呢?找一个比目前薪资低的职位,已经不单单是你个人所决定的了(你背后有一个家)
因为初到一个陌生的城市,第一份工作,要薪资也是参考年龄同工作经验,技术水平又差不多的朋友。所以,一直很好奇,当做测试快奔三的朋友处在一个什么价位,大概对自己三到五年之后处在一个什么状态做一个评估。当然,决定价位会有各种因素,我只想知道一个比较普遍的现象。所以,问了一个大我几岁的朋友。
测试进阶的三个阶段
我把测试分三个阶段吧!以我的鼠目寸光目前只能看到三个阶段。
刚入测试的朋友应该都属于第一个阶段,薪资2到3K都具多,当然也更低或偏高的。大概都属于第一阶段,而且大部分对进的公司测试这一块不专业。由于,初做测试,对各种测试技术充满好奇,热情很高。
然后,工作一到三年之后跳到第二阶段,薪资也会5到6K的样子,因为他们有了工作经验,再找到这个价位的工资应该不是特别困难。基本上所有人都可以从第一阶段进级到第二阶段,只是所用的时间有长有短,资质好的一年,资质略差的三年。没有鄙视谁的意思,当然还要看机遇之类的。主要还是看你对测试技术掌握速度和程度。
我把第三阶段定位1w以上,从第二阶段往第三阶段走,不再与工作年限有太直接的联系,谁能告诉我工作八年的就一定比工作六年有能力强,但工作三年的大多情况要比工作一年的优秀。这个阶段比较漫长。是第二阶段与第三阶段的一个沟。能给你这个价位的公司和岗位也不多。而且你需要在这个行业里独特的技能,大多人所不具备的。
当然,我这三个阶段是三十岁之前的,测试技术在中国的发展也很短暂,有专业做了十年测试的人都很少。
你想三十岁时是一个什么状态?