测试从业周年祭
我从2003年3月起至今(2003年4月17日)一直从事测试的工作,其中也没感觉怎么累,每天都挺充实的,可自由支配时间还是比较多;首先说明,本人才智略高,但绝非天才,需要学而解惑,无法做到不学而明,因此走过的路有一定代表性,借着从业周年之际,来一篇小结,希望对后来人有点帮助。下面以倒叙的方式回顾一下走过的路:
首先是毕业前的实习
2003.3-2003.5,编写组件测试函数(C++/COM),中间还穿插了部分时间写一些测试工具,主要用MFC,其中包括毕业设计(用Delphi写的数据库模糊检索系统),初来匝到有点慌乱,因为大学选错专业(自动化)了,课程特别多,什么领域都安排了课程(总课程70多门,而且抓得比较严,如果大学四年没有重修过的,就可以领到“优秀毕业生”的证书,但软件方面的实践实在太少)因此,对自己编程能力没有信心,怯生生地投了测试,阴差阳错地进对了门;因为大学学过C/C++,自学了MFC,虽说理论多于实际,但也不算门外汉了,实习的时候又正好碰上部门的测试改革,才得以“合法编程”,巩固并提高了自身的编程水平,而关键的是学会了自主解决问题,刚来公司的时候,当真是“伸手不见五指”,不知道如何入手,连VSS都没碰过,更别说编写Dll了,就如同秀才突然拿起了枪,茫然而不知所措,一碰到问题就得问人,但幸运地是,我碰到了好组长、好同事、好朋友,很多问题都在他们的倾力帮助下得以顺利解决,当然在他们解决问题的过程中,我学会了“如何获得问题的解决”,即“渔”,仅仅这点就让我受用非浅,所谓一技通百技通,学会了“钓鱼”,才真正让我入了IT的门……在我看来,IT最难的就是经验的积累,有经验的人再学习要远远优于新手,因为他们遇到过各种问题,也会处理问题,这也就是招聘的时候一再强调“经验”的原因吧。当时就住在公司楼下,每天上午起床以后,就一直对着电脑,直至晚上11点多,临睡前还抱着本书,感觉每天都在进步,每天都很精彩,是我至今为止,感觉到最快乐的一段日子;实习一直到五月底,其中五一期间做完了毕设,没想到这个小小的玩意,居然为我获得了大学里唯一的一张正式的奖状,说来实在惭愧!
然后,5月25日回校,因为从疫区回来,还享受了15天的隔离待遇,所幸有惊无险,然后论文答辩、毕业前的聚餐、散伙饭,很舍不得大学同学,我是一个外表坚强,内心脆弱的人,特别恋旧,但天下无不散的宴席,各奔东西也属常理。7月毕业正式入职。
2003.7,参加公司组织的新人培训,做一个小项目,在项目中我负责的是界面模块,主要用Delphi完成界面及逻辑并实现与底层接口的通信,因为有美工的配合,作出的界面在我看来很是专业,对于这些界面的东西,我一直都存在一种向往,感觉很眩,当时就有一种冲动想去界面组专门做界面,无奈组长不许才未成行,现在想来所幸没去,界面这种东西,作为兴趣可矣,如果作为专职无异于扼杀兴趣。
2003.8-2003.10主要是测试函数(IO函数集、GDI+的对应跨平台函数库),并首次设计测试代码框架,以案例驱动模式实现Win32/Linux下的跨平台测试,设计案例格式和流程; (主要语言C++,Win下编译器是VC,Linux下编译器是gcc);期间好像还做过Delphi的CLX控件测试;这段日子可以说每天都是重复,研究了一个个函数的使用,为后来使用这些APi函数打下了基础,虽然对学习有好处,但这种重复对整个项目来说是似乎意义不大,发现的问题相对与写上万行的测试代码来说,显得不划算,也就是在这时,我才第一次开始思考测试价值的问题,思考测试的开展问题,其实这才是测试艰难的地方,也是她吸引人的地方。这个话题是仁者见人智者见智,讨论太多了。下面开始的却是另类的经历:
2003.10-.2003.12这个时候,刚好碰上公司派送网络游戏点卡,本着试试看的想法,没想到我这个经历过游戏洗练的人后来还是陷进去了,越到后来,越难自拔……归咎原因,在网游中接触的人都是现实的人,因此增加了网游的多变性,但真正要命的是网游中更容易获得近似真实的成就感,这种感觉较之生活中的成就感要来得容易更为快捷,越是有抱负的人,越容易陷入之中,后来,几乎到了混淆虚拟与现实的地步,你会觉得现实的东西都无所谓了,也许还不如网游里的一件极品装备……期间,组长、同事都有过旁敲侧击地劝告、警示,因此在公司里是没法玩了,就自己拉网线买电脑在宿舍玩,但庆幸的是,最后我还是跳出来了,那是在2004春节前决定是否买票回家地时候,本来打算是春节不回家了,但那天早上组长以一种长辈地角度,给我提起了春节时候父母盼儿归来的那份期盼,那段日子里潜伏在心底的自责一下爆发了,感觉自己对不起父母,玩物丧志(这种情形在初三的时候也发生过,那时的结果是把电脑封存,不再碰电脑游戏,后来如愿考上理想的重点高校),而现在的结果是,把大批价值不菲的游戏装备全部送人了,删号,买票回家……现在看来,网络游戏是新时期的电子海洛因,一种祸国殃民的东西,同时能给制造者带来百分之几百的回报,现在网游也是当今炽手可热的领域,但可以试想如果一个国家的新生代都沉迷于游戏,那祖国的明年会如何呢?听说国家现在大力提倡网游并作为863项目,在我看来,就如同大学盲目扩招一般,无异于涸泽而渔,是短视而危害深远的。
2003.10-2004-1在这段颓废的日子里,因为玩网游的缘故,最初感觉玩得累,所以想取巧,用VC写了一个网游“外挂”,基本思路是以检索象素为基础,模拟键盘鼠标操作实现自动练级等功能,并感觉到市场需求广阔,还不断加功能,但后来同类软件也出现了,加之沉迷网游无暇宣传,基本都是熟人朋友在使用,并没有实现真正的”收费“,但凡事都是有两面性的,因为这段经历也让我熟悉了一些window编程的实际应用,这段实践也被用到工作领域,也就是“基于GUI的自动化测试方法”,当时是完全用VC实现了鼠标、键盘模拟和数据驱动,类似于Robot、WinRunner的功能,当然在实践的时候也有同事推荐用Robot实现此类功能,但我此时因沉迷而心力心力交瘁,根本没精力去学习新东西,所以粗暴地认为我用VC能实现,为什么用Robot去受它的限制,后来的事实证明,自动化工具可以提高效率,它跟你的实现是互补的。期间,设计并编写多个基于GUI自动化测试工具,这是一种新的测试方式的开始,其中的部分工具现在还在使用,而且是用自动化工具所无法替代的(主要使用C++/MFC)
2004.2-2004.3,这是春节7天休假归来,所谓大病初愈,食欲大增,重新恢复了学习的兴趣,从遍历各大测试论坛开始,开始对测试有了个更为全面的认识,此时也才发现了中国软件测试社区这个不错的地方,在国内测试水平相对落后的前提下,在那里发现了不少真正值得看的精华帖子,在帖子的提示下,这时也开始尝试使用WinRunner编写测试脚本,因为TSL是类C的,而且里面使用的也是Windows的API,感觉大同小异,所以上手很快,也相应地应用到实际工作中,实现了几个实践应用以后,对于WR的GUI应用已经游刃有余了,对于WR,我最大的感觉就是它的“动态更新检查点”,特别是位图比较这点,对于我的实际工作帮助最大,加上VC的功能补充、VB的VBA补充,结合起来用,感觉相当好!但WR的推广使用还存在问题,如WR要人人都熟练使用存在难度,因此要作为回归Bug之用存在一个合作问题;同时WR联跑时,位图太占硬盘空间,每次兼容测试的数量上受到硬盘的限制;期间,不可避免地也了解了Robot、Purify、PureCoverage等工具使用,这个与组内的培训也有一定关系,一个宽松而能不断学习的环境一直是公司最吸引我的地方;
2004.3-2004.4 由于开始从C++转Java的缘故,同时在外界环境的影响,才发现用ant的好处,也在相关代码的启发下,实现了原本属于我工作范围的自动编译(所谓的“每日构建”)和版本备份等诸如此类的繁琐的工作;加上之前了解过的XUnit,对于开源的领域,现在的兴趣是与日俱增……最近学习使用开源社区中的DocBook,尝试一种新的文档管理方式,感觉还不错,但曲高和寡,推广使用要从长考虑;
因为部分外部原因致使以前写过的代码和文档丢失,让我倍感痛心,因此最近的重点可能是放在资料汇总和积累上;以上是我印象中做过的比较大的任务,对于中间穿插的系统测试任务(例如分析案例、案例执行、回归Bug等),但因为占时间比例很小,也就不烦诉;规范案例流程,对于当前实际来说,存在相当难度,也不是说改就能改的;
往事的回忆一发不可收拾,流水帐般的记录竟然写了这么多,文笔不太好,不知道看官是否能够耐心看完,在这里对关注的朋友道声谢谢,权当抛砖引玉之用,希望大家与我多交流,信箱是neil_dyo@eyou.com (明年待续) 我爱测试
浙公网安备 33010602011771号