第1步:大学
遥记得那是02年自己跨进了大学校园,开始了自己的大学之旅。大学选择专业时自己并未听从家长的建议依然选择了当时仍然很潮流的计算机(计算机科学与技术)。后来事实证明自己选择计算机是盲目的,跟随潮流的,并不符合自己。
大学进入校园半年,自己彷徨,天天跟高中生似的按部就班的上自习,大学的生活完全没有适应,当时曾想过回去复读,考上自己理想的大学。但是有担心自己复习过程中有会发生神经衰弱,整宿整宿的睡不着,最终的考试成绩反而更不理想。跟家里人认真商谈后,最后没有回去复读,而是转变自己,让自己适应大学,认真对待自己的专业。
----备注:当然现在也不太确定是否自己放弃复读是否是正确的,但是至少现在证明了,当时纠正自己的态度是正确的,而且IT确实给自己带来了很多快乐。
作为一所普通大学的计算机系,那时好多课程也还不完善,现在能念下来的,C、Accesss、java基础、数据库原理、计算机网络、VB、网页设计等,也就这几门课。我想大家10年前作为普通高校开的课程基本上都差不多。大学期间也考了一些资格认证(HCNE、HCSE等)。一晃马上4年就过去了,在3年的时候,大学课程也结束了(自己感觉成绩都还不错,但是现在回过来看,那时大学讲的知识深度与广度太欠缺了。),自己突然彷徨了,回顾自己的大学生活,感觉自己收获太少了,没有自己能拿的出手的东西。此时,自己很着急,想自己毕业后干什么呢,能做什么呢?那时自己就开始找工作看职位,看IT不同的职业岗位都需要那些技能,越看越心凉,自己掌握的知识面与深度都太欠缺了。当时自己偶然因为英语过6级过一公司要求,作为储备进行培养。回想起来这段经历为自己以后走上工作岗位确实起到了一定的作用。所谓储备培养,就是该单位作为微软IT护航企业需要对企业的IT管理人员进行培训,而自己就沾光了,跟着学习了整个系列的MCSE的课程(同期大部分人因为没有实习费用,而且起早贪黑都放弃,相继离开)。在学习的过程中,经常打各种下手,从装机、镜像、虚拟机、硬盘恢复等基本上都参与,自己当时学习过程中,跟着授课的老员工经常加班,曾近记得有一次,明天要讲win2003的一个知识点,需要域的一个新环境,然后连夜赶到半夜把近80台机器做了环境的升级部署。当时年轻,自己也看到了自己的不足,有机会就学,有机会就上手。同时期的大学同学,还在学校里过着“悠哉”没有课的日子。转眼几个月就过去了,大学毕业真正的来临了。除了毕业的依依不舍,还有很多彷徨的眼神,那个年代也没听过富二代、官二代,当然也有关系的能找份得体不错工作的,但是那时至少这几个词还未时髦起来。那时依稀记着在校园里提着联想昭阳商务机走,会引起不少的回头率。也许是因为网络没有现在这么发达的缘故。
毕业了,自己就根据自己在那几个月所学的MCSE及学习华为网络的内容去找相应的工作。自己首先去的也是北京。那时找工作 ,还是遛招聘会的比较多,国展是必去的。校园招聘也没现在搞的这么火与认真(也许自己闭塞的原因)。网络招聘当时有51job,也没有像现在这样遍地开花,所以大家可以想象当时招聘会的现场,真可以用人山人海啊,持续了好多天。自己非重点院校毕业,好多岗位学校档次的"先天不足"就被淘汰了。当然通过招聘会也找到了几份工作,但是大部分都是要求做技术支持,思量后感觉与自己的网络工程师或系统工程师有些不符,不符合和自己的预期发展,也就一一放弃了。最终选择了一份系统工程师岗位,依稀记着那时在北京不到4K的薪水(有一顿午餐,其他都不含),现在看起来似乎那份薪水在现在也算可以。
第2步,工作ing...
很快步入了工作,第一份工作应聘的是系统工程师,但是也经常被派去通州等北京周边去做技术支持。回顾参加工作第一年的过程中,又可以被称为一次学习。在这一年,自己工作中最常需要维护及部署操作的就是windows2003,也是这段时间自己巩固了window2003服务器系列的内容,并且对Exchange、防火墙等微软的产品进行了系统的了解。
转眼多半年过去了,回顾这个过程似乎离自己的成绩尚有距离。所以自己依然选择了跳槽进入了目前的公司,开始了项目组的生涯。依稀记得那时是北京奥运会的前一年,自己在项目组负责的仍然是运维及系统维护,当时做的是平安保险等保险公司的网上投保产品,几家公司大部分都选择的是Oracle数据库与Linux(RedHat为主)+Tomcat作为web容器的系统平台。而由于当时项目组中懂这个的很少,所以,自己被赶鸭子上架搞了起来,项目的老大在项目环境部署前,给了时间限制,最好两周内搞定。接下来的时间,可谓一言难尽,那时自己的人脉关系及认识的人很少,因此大部分问题都是自己网络找文章,购买书籍阅读。白天时间不允许,晚上基本上1点前没睡过觉,都在自己的虚拟机上配置环境,进行尝试。被同屋的舍友常常开玩笑。
那段时间,晚上在自己的计算机上做实验,白天在一台模拟的机器上尝试昨晚的成功。但是,那时redhat还达到目前的版本,应该是AS4似乎。对IDE硬盘兼容性及显卡兼容性很差,自己当时也没经验,就用图形界面的装。结果硬盘要调试、显卡兼容出问题。最后一番周折终于搞定了硬盘,并总结出来经验(Linux服务器没有用图形界面的,都是远程管理)。那时的两个工具(putty、winscp)至今不知更新了几个版本,但是仍然再使用。把RedHat安装完毕后,网络配置通后,自己终于看到了putyy连接的黑界面,那时是一个欣喜。
接下来是Oracle,那时Oracle10g刚刚上市(而目前都11gR2了)。Oracle想的容易了,Oracle在windows上安装很容易,在此不再过多叙述。但是,Oracle真正往Redhat上安装时,发现了层层壁垒,那时真想身边有一人指点,可是上天无门啊!!用现在一句话就是,死的心都有了。当时多么希望自己是一IT老牛,人脉广阔。可是这些都是空谈。
一周没日没夜的生活有开始了。官方文档及一些网上的技术文章都看了,总结一句话,要实践形成自己的,一周多的尝试,小心翼翼的终于搞定,并在RedHat上成功部署。当时,没有别人的赞许,也没有别人的认可。也许别人认为挺容易,其实自己有自己心里明白及同屋的舍友知道自己怎么过来的。看着成功的环境及自己形成的手册,上传网络后被别人的肯定,心里是偷偷的欣喜。后续数据库RAC并也顺利的部署完毕。
终于进入正题了(测试).....
自己进项目组本想学习项目流程,开发也捡起来并走项目经理的路子。但是一切都是偶然,自己因为原来测试工程师的辞职,把这块负责了起来,脱离了原来的想法。也是这个选择,让自己走上了测试的路子。
测试对自己是茫然的,当时大环境下也没有想现在如火如荼。因此大家可想而知,当时市面上的书籍也聊聊无几,当初购买的书籍是 朱少民 老师写的《全程软件测试》作为了自己测试的起门石。当时项目经理也时不时的作为非专业的指导一下。但是更多的是参考前面的文档、技术积累进行一步步的配合项目组完成工作。什么是测试计划、测试用例有什么作用,什么是单元测试等均是零的无知,现在回想起来,当初也许是真的无人了,如果稍微有个懂点的,绝对不会让我上手了,俺可是纯新手。记得特清晰,当初我们的CTO跟我聊天提到了冒烟测试,现在我还经常把他讲的话给我的学生与下面的同事说。告诉他们为什么叫冒烟测试,形象的讲出来。并经常通过这个例子来说明冒烟与BVT测试的区别。
在项目的整个周期中,自己唯一没有全面参与的就是单元测试中的白盒测试、系统测试的性能测试(使用的是VS集成的性能测试工具),当时基本上剩下都参与了,并慢慢成长了起来。项目也很快在奥运会结束后的10月结束了。而这一段全面的项目经验,不仅仅让自己成为了一名相对合格的初级测试工程师(手工),而且让自己对项目整体的把控及认识有了很大的提高。也许起晚的鸟儿要多付出,自己在项目过程中,经常就项目的问题询问,而不仅仅局限于测试领域。
转眼另一家保险公司的单子来了。这次自己更是从一开始需求到结束全程参与,而且作为测试自己在需求的一开始,从客户调研形成需求规格说明书至最终的用户上线,均在一线跟客户接触,并协助客户进行验收测试。如果说第一个项目是一个起步的话,那第二个项目就是自己的成长。期间看的测试书籍也不少了,期间《软件测试》原版仔细的翻看了几遍,让自己的理论有了很大的补充。后来的书籍包括微软的《微软的软件测试之道》2010年8月上市的《测试之美》自己成为了第一批读者,也从中收益匪浅。
慢慢几个保险及银行的项目陆续结束,自己也慢慢对测试越来越了解,并对测试有了更深的认识。但是期间自己对测试的认识,更多是项目的体验与总结,带团队肯定是没有问题的。而根据公司的需要自己走上了三尺讲台,面向了学生,自己突然感到了肩上担子的重要性。讲的第一门课就是《软件测试基础》,各种市面上的书籍都买回来,阅读、筛选、备课,发现其实真正更项目贴近的似乎有没有,因此就拼成了一个大麻花。把自己想要的跟同事的整理成了独有的PPT,指定其中一本教材作为参考书(目前书籍不再指定,因为发现它确实仅仅是参考而已),真正准备课程及给学生讲的时候发现自己其实还差很多,实际与全面的理论还有很多需要衔接的过程。1个系列,2个系类的课讲完,发现自己每次讲课都是一次很大的收获,当第4次后,才发现游刃有余。回想起来这个阶段恰恰给自己弥补了理论不全面的空白期,所以希望所有只有工程经验的同仁,一定认真读几本书,把实际融入到理论中,再从理论中回归到实际的测试工作中,相信您一定能够有质的飞跃。
在授课的过程中自己不断的参与项目,而且windows服务器及oracle一直没有离开自己,自己也适时 的拿下了微软IT专家(MCITP)及Oracle的DBA(OCP)、软件评测师、项目系统管理师等,为自己的证书队伍进行了扩充,也许大家不知测试与这些有什么用,其实从测试环境、到部署、到项目管理离不开以上领域的知识与经验。
自己在授课过程中,又根据需要,为了追赶前沿,自己有把自己工作中使用的测试工具Winrunner更新为了QTP,其中借鉴了市面上仅有的一些书籍,返回来感觉书籍未必适合初学者,目前市面上有关qtp书籍不少了,分门别类都有,其中自己也出了自己的第一本书《软件功能测试:基于QuickTest Professional应用》作为献给自动化测试入门级的教材,同时主要作为面向广大高校学生使用。并跟同事合写了TD的书籍,在陆续的工作生涯中,自己从软件测试基础、到单元测试、至自动化功能测试(QTP)及自动化性能测试(LR)等都进行了系统的研究与学习,并形成了系列的技术文章。期间比如QTP,市面上没有自己希望看到的书籍,就直接看英文帮助文档,购买国外的书籍,经过奋斗,才形成了对QTP系统而全面的认识。
希望大家抱着怀疑的态度去审核任何事物,把东西形成自己的,吸收成自己的才是最好的,尤其是未走上工作岗位及刚刚入职的同仁们。
转眼自己在测试行业摸爬了近5年,在系列授课的过程中,及不断的参加项目,带测试团队,并团队形成了一套完成的测试项目体系(域、Testlink+Redmine+svn、QC、TD、禅道管理等)。而以上的这些测试体系及项目平台很好的保证了项目的正常流转,将测试从测试计划、用例word形式搬上了平台,为更好的管理团队起到了很好的作用。目前跟随学习出来的学生微软、360、百度、神码、中体彩、文思海辉、博彦等均有。每次看到自己团队带出来及从自己项目组中高升的学生与战友都能够100%的就业找到更好的职位,才是我最开心的事情。
11年一专科的女孩,通过朋友介绍认识了,问我她适合学什么,她本人自己很迷茫,我问了她一些IT的技能后,同时知道她平时细心、耐心,而且对工作认真负责,就让她跟我的当前的授课班,系统的学习了到自动化功能性测试前的所有内容,目前在博彦做的很开心,联系说自己从原来不知毕业做什么,现在有了一份体面的工作,非常开心。说回顾自己专科的同学,目前要不做销售,要不回老家,很少有想他一样还再做IT的,并干的很开心,能够站稳脚跟的。
回顾截止到目前为止从一个零起点的IT毕业生到目前的高级测试工程师,自己认为其中有几点值得未大家分享。
测试是一新型的行业,目前仍然在蓬勃的发展,写这篇文章时,自己在51job、智联招聘、中华英才网上对职位进行了搜索,测试行业已远远超过了网络工程师的需求。当看到搜索结果时,明白了测试被劳动部定义为第四职位原因是什么。
测试绝对不是一单一的领域,它需要您具备18般的武艺,并且真正在某一领域成为技术大牛,才能找到适合自己的场景,真正体会到自己的价值。不像开发,如java开发工程师,我经常遇到java开发工程师让我过去给其配置DNS,活动目录等,而这些相信作为IT技能,大家都接触过,而开发工程师、前段工程师都因为工作的时间,反而都忘记,只懂得Codeing来codeing中去。测试需要您在系统、数据库、网络等均有一定的基础,并在测试领域某一方面(比如自动化测试工程师、LR性能测试、行业测试专家)有一特长建树,方可长久的发展,成为一合格的测试工程师,方可被成为高级测试工程师或专家。回顾自己,恰恰有了系统工程师、数据库工程师的经历及陆续项目经验的积累,测试方面的理论与实践的不断结合、验证与尝试才有了今天的成绩。而系统、数据库、网络的知识需要大家掌握一个度。把这个度内的知识掌握了再结合测试经验与项目经验,即可让您也成为一名合格的测试工程师,而不仅仅是初级测试工程师,让您有了向测试组长、经理等提升的潜质。
以下为出入测试行业的同仁分享一些学习的内容,希望能帮助大家(仅供参看)
-
windows至少掌握到AD及软件部署部分;
-
Linux熟知当前主要的操作系统安装与部署、并掌握到能够写计划任务及脚本的地步;
-
常用数据库Mysql、SqlServer的日常维护与管理,及sql语句的熟练掌握;
-
Oracle各个操作系统平台下服务器及客户端的部署,备份、还原、第三方软件的使用;
-
一门相对熟悉的编程语言(C、Python、Java、VBS等),掌握入门级即可;
-
自动化测试工具(QTP、LR、selenium等)至少熟练掌握一种(因为任何一种都能让你在测试里成为大牛);
-
测试管理工具(TD、QC、Testlink等);
-
一定的测试项目经验。
当您真正具备了这些知识,再加上当下良好的测试就业前景,相信您一定在测试行业里站稳脚跟,并能够取得不错的成绩。文章选自51CTO学院讲师李晓鹏博客,想要看看大师的经验就来这里:http://edu.51cto.com/course/course_id-2528.html 学习吧!