贪多必失不是一句空话
随着测试行业越来越火,不少人就开始转到测试这一行了。但是普通的功能测试人员门槛比较低,竞争大,而且工资相对来说也有点儿低。所以测试开发又成了紧俏的行业,不少功能测试人员,或是其他行业的人员就开始学习测试开发的相关知识,但是我发现不少的时候还是有点儿盲目的。
给大家讲一个实例:先前遇到一个同事,入职的时候老大告诉我,这个同事是测试开发,还算不错,会页面自动化测试,接口自动化测试,压力测试还能部署和整理环境。一下子把我给震住了,牛人啊!于是就抱着敬畏的态度和他交流,不过几个月后发现,根本不是那么回事,所谓的页面自动化测试只是使用WebDriver写过一个类似HelloWorld的实例,接口自动化也只是听说过phpunit和python相关的能做接口自动化,自己没有动手写过。而压力测试呢,老大给他一个任务,让他搭建一个做压力的环境,折腾了两个星期什么也没有弄出来。最后我和他聊了一下,才发现他有点儿贪,想学习所有测试开发相关的技术,结果弄成了哪儿方面都不会,自我感觉还比较良好,典型的眼高手低。
贪多必失真的不是一句空话,测试开发所要用的到知识挺多的。
(1) 做自动化测试的开源框架如Webdriver ,Appium ,Robotium,Unnitest,testNG这些儿都是比较常见的,而且还有很多其他的,如Calabash,KIF,Gitorious等等,多如牛毛。还有一些儿如Selenium IDE,firebug等辅助工具。
(2) 开发语言呢,如java,python,php,shell,还有如ruby,C,C++等,测试开发要求你都需要会点儿,在多而不在精。
(3) 压力测试方面有LR,Jemeter,Grinder,Siege等,又是数不胜数;
(4) 再加上一些儿如QTP,Robot Framework,Jenkins,Hudson,Git,SVN等辅助工具;
(5) 如果做安全测试的话,安全领域相关的知识是需要知道的,而且如.Netsparker Community Edition,Websecurify,Watcher(http://www.cnblogs.com/hackchecker/archive/2012/01/08/2316531.html)等安全测试工具需要熟练应用。
(6) 如果我们要做开发测试工具或是测试平台的话,还需要开发服务,接口,网站等相关的知识,当然前端HTML,CSS,JS也是要会的。
(7) 服务器相关的Linux命令,apache,Tomcat ,memcache,redis,Mysql或是其他需要遇到的软件或是服务器的安装与配置也是需要会的.
(8) 还有一些儿软技能,如项目进度的控制,协调资源,与人沟通交流,任务的汇报,PPT的演技也是需要的。
上面简单的罗列了一下测试开发可能需要会的技能,当然也不是每个测试人中都要会,只是让你感受一下,测试开发并不是想象中的那么简单。
也许你本来就知道这些儿东西,而且看到有些儿牛人好像这些儿都会,于是你就着急了,感觉自己要学的东西太多了。不管是买书,或是查资料,或是从其他渠道找了不少东西来学习,貌似学了不少,可是哪儿一方面也不精通。当你面试的时候,面试官一看你写了那么多东西,结果往哪儿方面问的深一点儿,你都不能回答的完美,那只有一个结果:你这个人言大于实,眼高手低,是绝不会要你的。很多时候,我们宁愿带一个稍微笨一点儿,但是听话的同事, 也不愿意带一个自以为是的人的。
所以我们要成为大牛,还是不要着急的。很多东西都是通着的,但是我们还是要有步骤地去学习的,你一会儿练习九阳神功,一会儿练习乾坤大挪移,一会儿又去练习太极,结果只会走火入魔的。武林中的多少一代宗师,那是多少年的沉淀啊!虽然的测试技术一般般吧,但是还有点儿个人的经历的,个人认为你想好好地去做测试开发的话:
(1)要想明白自己的路是什么,走自动化测试,web端,移动端,还是接口?或是压力测试,或者是安全测试?要选定一个方面,不要贪多。
(2)选好路后,再去学习最常用的技术,如web端的自动化的话,就要学习Webdriver的使用,Selenium IDE,Firebug等工具的使用。
(3)学会了使用后,就要深入扩展。如WebDriver+java+testNG,WebDriver+python+unnitest,或是Webdriver+phpunit+TestSuite的使用。分析Webdriver实现的原理和细节,Selenium1.0和Webdriver(Selenium 2.0)的区别。
(4)其他类似的东西,如htmlunit,junit,ant,maven等等,以及为什么现在用java和python的比较多,用phpunit的比较少?
(5)如果web页面自动化学会了,我们就可以扩展到接口自动化,移动端自动化。此时你就会发现接口自动化使用的是unnittest框架,移动端自动的Appium和Robotium几乎是和Webdriver一样的,这就一通百通了嘛!
(6)自动化测试原理都明白了,就可以扩展到相关的工具jenkins,SVN,GIT等,这样就可以开发自己的测试平台,测试工具了嘛。
(7)当然你或是选择性能测试,或是安全测试差不多也是一样的。一定要把一种技术吃透了,然后时刻关注一下这方面的新技术,确保不要落伍。然后有精力的时候再去学习其他方面的,就算其他的学的不咋地,我们至少有一项拿得出手的嘛。
(8)只要面试的时候在我们熟悉的方面,他们难不住我们;有任何相关的问题都能搞定,其他的不会也没有关系,如果会了就是加分项的哟。
啰嗦了这么久,其实就有一个目的,要踏踏实实地学东西,有一技之长。不能贪多,你自我感觉牛没有用,照样会被其他的牛人鄙视的,然后你再去怀疑自己,何必哟?还不如好好学习技术,我们做的牛了,面试的时候去鄙视他们:你们才做了这点儿东西啊,太差劲了!我心情好了,就来,心情不好了,就不屌你!那个感觉才叫爽呢,哈哈~!