我和“测试”的不解之缘 软件测试

  在进入北航读研究生之前,我不知道还有软件测试这个专业的存在,当初报考它只是慕名而往,没有想到自己从此跟“测试”结了不解之缘,并且在两年半的研究生生活结束之后,软件测试成为了我人生的第一份工作。

  1. 陌路“测试”

  读本科的我,脑子里基本没有软件测试这个概念,试想,那时候完成课后作业,是一些计算机大程序的时候,比如汉诺塔,八皇后,迷宫啊。哪个不要在写好程序后测验一下的,比如输入一些取值情况,然后运行这个程序,看所得结果是否和预期的一样。如果出现了实验结果和预期结果不同的情况,常用的是单步调试,输入实验数据,然后跟踪程序的运行过程,判断出现异常的断点在哪里,进行错误定位,便于以后对程序的修改。这个每位程序开发者都熟悉不过的过程,来的那么自然,似乎每次我们开发完程序,去自己先检测一下,但我从不知道这是软件测试,或者更确切地说,这里蕴涵了软件测试的思想。所以,那时候的我,认为计算机专业毕业的学生所从事的工作是“软件工程师”,去给公司或企业开发代码,做应用程序或开发游戏等。也是说,我当时并不知道软件测试可以被独立出来成为一个职业。

  我读的本科学校也是一所名牌学校,属于仅有的四所部级学校之一。但不得不说,那里确实是学文的好去处,对于我们学计算机专业的,如果学生自己不努力学习知识,单是靠学校安排的老师和课程来“喂养”自己的话,那毕业之后会发现自己跟北理、北航等工科院校出来的学生有着巨大的差距,计算机基础不是那么扎实,在学校里也没那么多项目实践的机会,要知道,这对于计算机这类实践性极强的学科可是致命的。待毕业时,挤入大型人才招聘会场地后,会“望职位而兴叹”。

  中国各个高校的本科课程基本都是相同的,无非是数据结构,数据库,编译原理,操作系统,软件工程等计算机核心课程再配以该高校的一些特色选修课程。而其中,能让我有机会接触软件测试基础理论的课程是软件工程,因为那教材里介绍了一些软件测试的重要性和一些基本术语,比如白盒测试,黑盒测试,?测试等。然而,当时学习没主动性,靠老师“喂”知识的我确实也什么都没学到,直到现在,我也不理解,为什么那门课程让那位老师来教,为什么这么想呢?那位老师硕士毕业于计算机专业,但却博士毕业于中文专业。难道学校认为软件工程是唐诗宋词?课程效果可想而知,老师每节课都花费大量时间给我们灌输文学思想,谈谈东坡,论论李白,虽然从某种程度来说,宣传了我大中华的博大精深的古代文学吧,但本课程而言是失败的,换言之,我那的接触软件测试的机会被毁灭了。如果不是我研究生时期学的是软件测试方向的话,也许至今,我也不懂何为边界值测试,何为兼容性测试。当然,这都是后话了。

  学校是顶呱呱的名牌学校,但在里面学计算机实在是不受重视,学校的计算机系也太“年轻”,在此严峻形式下,系里80%的人都选择读研,20%保送本校的,5%保送外校的,也有很多人放弃保送本校本专业的机会加入考研大军中。后的结果还不错,基本每个人都圆了自己的梦,而我呢,也以高过录取分数线30分的微弱优势被北航录取,经过几轮面试,被北航比较有名的计算机软件与理论方向录取,成为了一名主攻软件工程、软件测试、软件度量的硕士研究生。也是从那天开始,我开始了与软件测试的不解之缘。

  2. 初识“测试”

  我的研究生生活确实是我人生的转折点,北航的计算机专业还是不错的,这里有知名的计算机专家,有数目很多的计算机重点实验室,有很多国内外合作的计算机大型项目,研究生可以在导师的指导下参与到论文的编写,项目的需求设计与实现中,可以很好地锻炼个人的专业技能。

  在两年半的研究生学习中,我修了《软件测试》等课程,阅读了国内外大量关于软件测试的论文和书籍,学习了软件测试的基础知识,测试的基本流程,测试的过程模型等,也自己琢磨着如何将一些分析方法引入到软件测试中,更好地规范软件测试流程。我把自己的学习和研究成果总结为两篇论文,发表于《计算机工程与设计》和《计算机应用研究》杂志上。

  读研二的时候,我加入了一个课题组来参与软件测试过程管理工具的开发,通过这个项目的开发我了解了在企业内部的测试流程是什么样子的,了解了测试项目的启动、测试人员的分工、测试用例的编写、测试任务的定制、软件问题报告(SPR)的产生、SPR的分配、SPR的reopen ,close ,cancel状态转移等背景知识。

  在我自己看来,我对测试知道的只是皮毛,但对于很多不研究软件测试的同学来说,他们会觉得我对测试已经很了解很熟悉了,毕竟接触了两年测试方面的书籍和测试项目的磨练。那时候,我并不知道我所掌握的测试知识将在我以后求职的过程中发挥很大的作用,直到后来,当我很顺利地进行着测试工程师职位的面试时,确实发现,两年的测试相关知识的积累使我应聘测试工程师时具有很大的优势,因为同等条件下,用人单位还是希望招进来一些已经具有一定测试背景和知识体系的人。的确,对于一个在此领域里是“零”的应聘者,你很难信誓旦旦地将你的潜力展现给面试官。