我做软件测试的工作经历
扫描二维码
随时随地手机看文章
我从毕业开始,就在一家软件公司上班,做的是软件开发,因为公司小,基本上一个项目我一个人从头到尾安排,包括测试,不过那种测试只是自己调试,好了就给客户用,根本就没有什么文档,也别说测试了,经过一年时间,我掌握了从与客户沟通到测试到部署的整个项目过程,虽然还不规范,但已经是有了个大概了解,实际的了解,在这过程中,我发现软件工程与项目规范管理很重要,自己总结的一些与软件工程的差不多,于是我特别注意软件工程并学习它。但我觉得重要的还是从设计,需求、开发上来理解软件工程与其运用,还侧重程序开发,文档我虽重视了些,多半是后来补上的。
第二年我进入了一家台湾的软件公司,他们是做软件产品的,产品与项目不同,基本上看不到需求的过程,只有设计、开发、测试,公司分为开发部与QA部,我在开发部的一个产品小组里,在这个小组里,我主要学会了如何写文档,因为公司对文档是有要求的,而且是英文文档,并且理解了产品的整个过程与实际公司的运作,在公司里还接受了各种培训,如请美国项目管理协会的讲师等等,让我获益非浅,那段时间我开始掌握ROSE建模型,COMCORBA等,那时候这些东西还是新事物。我们这个产品开发结束后基本上是维护了,代码没多少,就是改客户提交的问题。基本上已经让我们改的没有任何问题了,QA测试也没问题了,一次,我们菲律宾的一线实施人员来公司学习产品,我向他介绍产品,他跑了一下,不一会,他就发现问题,我发现他测试的思路是从客户角度,及我们想不到的角度去操作,这让我大吃一惊,因为。我们的QA已经有测试计划,测试用例。但还是有问题,这让我对测试有了新的认识,得重新认识软件测试了,正好我们项目组的QA移民了,缺少QA,QA部暂时也没人进来,因此我考虑了一下,主动去做QA,当时领导还问我,确定好了吗,因为象我这样的程序设计开发“高手”怎么想到去QA。而我当时的想法是,我要把软件的整个过程掌握,包括测试,因为这是我的弱项。
于是我就开始了我的QA经历,在这一年中我掌握了产品的发布过程,维护,实施等规范的过程,特别是掌握了QA测试的从文档到实际测试的经验,由于我从开发设计过来,因此我测试出的东西比别人多,同样一个问题,我不但告诉程序员有问题了,而且告诉他,估计是那个地方,或那类代码有问题。因为我看到界面,就知道代码是如何实现的。
我在那个公司呆了三年,两年的开发设计,开发组组长,最后一年的测试QA,做QA的阶段,我掌握了整个产品的过程与测试所有的要求过程,由于公司采用自动化测试的,我那时候就用了 Winrunner 6,由于我是开发出身,Winrunner 的脚本类C语言,因此,我很快掌握了 ,并且在Winrunner 语言不足的情况下,自己编写代码,及调用代码,比如出错了,自动调用我的截屏程序截下保存错误的界面等等,写了许多供Winrunner 调用的dll,这让我对软件自动化测试有了较好的认识。有时候自己也写点自动辅助测试的工具。
第四年,我到了一家国外软件公司(公司的总公司是搞电子的)的中国研发中心,开始我是以项目经理的角色进入的,这家公司很规范,主要接国外的单子,因为是刚开始筹建,所以规范上还没有一个成行的套路,只是参照国外公司的模式,文档要求与我前一个公司差不多都要求较高,那时候是2001年,我开始带的项目是基于.net环境的,后来基本上是作基于 j2ee平台的,这年我的设计,开发技术水平又有了更好的提高。在做项目经理期间,我不但要按规范搞好项目,还得参与设计分析,这对我的项目管理水平与开发水平提高很多,又因为我以前做过测试,因此我对项目的测试很重视,从项目需求开始,就开始考虑测试问题,计划安排,及需求与设计与测试的衔接,可测性等等。项目的测试人员的水平不高,我就教他们,从技术到测试管理安排。这段时间我对单元测试的工具测试有了了解,如用Nunit,Junit,Cunit来测试,及静态测试等等。[!--empirenews.page--]
因为写代码对我来说很简单。由于公司是开始建设,组织机构还不全,那时候测试没有部门,属于总经理管,后来决定成立QA部门,总经理把我叫去,让我作QA部门经理,我那时候并不想搞QA,因为我认为QA已经没什么好掌握的了,另外QA部门与QA角色总的来说总有点比开发人员“低档”的感觉。但是我还是接了下来,先做着吧。于是我就成了QA部门的部门经理,管理着每个项目的QA,由于我们以项目为主,我把QA的职责,部门与项目之间的关系定好,QA属于项目负责,管理上与技术指导上由QA部门负责,这样项目经理能够根据项目来安排,而不会与部门产生矛盾,我把部门定义为支持与服务项目的部门。同时我定了每个星期五开部门会议,讨论项目与技术,同时还定了每个QA人员必须用平时的时间学习一门技术,有的学 Winrunner有的学Loadrunner ,有的学单元测试,不限制时间,然后,会了就与大家讲解,这样促进部门的测试人员共同提高,我呢就常指导他们技术,也教他们编写程序的知识,也常讲QA测试,软件质量,TQC,TQA等等。
后来公司因为逐渐完善了,一次总经理让我们商量是认证ISO9000还是CMM,由于CMM2价格高,我后来建议先根据自己的实际认证ISO9000,虽然许多公司认证是靠花钱就可以了,实际并没做,但我们要以这个为开始,然后再向CMM发展,不能为了认证而认证。后来公司就成立了ISO9000认证小组,总经理牵头,我负责,负责全过程,如写质量手册,过程文件,安排项目文档要求等等。
由于我们本来项目管理很规范,文档实用与齐全,所以,很容易就通过认证,完全是按照要求做的。在这个认证后,计划在一两年后在做CMM。我在做QA部门经理的期间除了学习了更多的测试技术与知识外,还把许多理论性的知识应用到实际中,如BUG密度计算, MTTF,代码行估算与BUG估算等等,全用到实际中,测试上,多采用工具检查,且自己写程序测试。这样从一个项目需求开始,根据技术程度,人员技术水平等等,就大概能估计到产品规模大概多大,大概的BUG有多少,基本上我为我们定的是正式测定每千行1-3个BUG,这也是我们的质量标准之一。由于是测试部门,我接触的项目很多,每个项目我都要参与指导测试,这样对不同类型的项目不同的策略,就有了不断的积累,不同规模,不同大小,不同技术采用不同的测试策略。同样接触的技术层面也很广了。每个项目从需求与设计,我都要去看,了解,虽然累些,当真的掌握了很多东西,如从SUN,IBM解决方案,各种 UNix 平台等大型应用开发与测试。同时也能认识到自己在设计中的局限,能更好的设计好产品。
这段时间是我对软件工程及测试理解认识掌握的好时机,对以后的工作大有帮助。文档的水平越来越高了,写得实在且有用。在这家公司也呆了三年,之后我去了家新的公司,因为我主要对项目设计开发感兴趣,所以我还是找项目开发的职位,并不想在测试上花太多时间,那时我去了一家软件公司作项目部经理,管理各个项目及组织。我就脱离了测试的工作,又回到了开发工作中,但因为我以前的测试经历,所以在项目无论开始,设计与测试,我都很注意质量与客户的要求。
后来就在做项目开发,技术上。会时常用到测试的知识,公司的测试人员,也都是我培训出来的。虽然离开了测试,但还有点测试情节,也时常关心测试的情况,动态,在开发过程中研究些测试技术,安全测试等。主要是基于代码级别的测试。做些小工具,如屏幕错误捕捉工具等等。尝试用用新的测试工具,国内外测试的情况,朋友还让我管个测试的 QQ群,这样我与大家的测试交流都没断,共享自己的资料,与大家讨论,给大家解答与介绍等等。虽然不在测试岗位了,我发现我还是有喜欢测试的,离不开测试。
无论项目如何,技术如何,所有的测试的基本道理是一样的,所以大家还是先掌握好基本的,不仅仅是学,而是会用好它。学以至用才能发展下去。而且测试不能因为环境限制而浮躁,老老实实的学习和应用。深入下去你就是专家。细节决定成败。