|
从去年6月底开始正式做软件测试以来,我个人经过了很多阶段。从一开始的网站功能测试,到后来开始接触ERP,做了LR性能测试,然后开始做WR的自动化,到这时候大概半年时间去掉了。之后做了2个月的C#开发,在自动化测试方面用QTP开始逐渐替代了WR。然后我调到了市区“前线”工作。开始着手做NUNIT单元测试和基于.NET开发环境下的LR压力测试代码编写及面向Oracle存储过程的性能测试。06年7月,我开始担任测试管理的角色,开始从事培训新人,安排测试任务,与开发协调测试任务方面的工作,直到今天。我写这篇总结的原因,是由于自己对测试工作的职业发展开始感到迷茫,对技术发展没有方向。
我个人认为,我上班16个月以来所走过的路,是比较合理的。这样的路建立的经过测试专业培训的基础上(个人感觉,新人接受专业培训是很有必要的),否则可能先需要在基础方面努力3个月左右。基于对测试的正确理解以及对各种测试工具的了解,在正式工作中可以快速的应用上去。
下面说下我认为“菜鸟”应有的发展路程。
测试新人应该从系统手工测试开始,首先应该对整个软件的开发流程(软件工程)有正确的认识,了解测试工作在整个开发流程中的切入点和所起的作用。就项目而言,测试是其中的一部分,想要做好系统测试,首先应该学会怎么看SRS(需求规格说明书),对需求的正确理解将直接影响你的用例设计。其次,是用例设计的方法,这包括很多种,我就不多说了。主要的一点是,看SRS所设计的用例可能不全面,在实际测试过程中,应该从系统的操作中继续发现应该测试的点。另外,对于测试用例和BUG的编写,应该规范,清晰。出色的完成你的初测。其次,当开发修改完BUG之后开始复查时,首先你需要明白一个名词,它就是:版本。然后你开始复查BUG,如果时间允许,我强烈建议你重新执行所有用例,以防万一。
当你的系统测试做的“炉火纯青”的时候,你应该开始了解配置管理,质量保证,CMM以及一些开发上的相关知识。这可以巩固你对整个项目流程各个环节的了解,让你对他们有全面正确的认识。我认为这一点,很重要!
之后,公司的测试水平开始升华,你的经理发现,总是复查BUG是一件多么耗费时间和人力的事情啊!他开始要求做自动化测试。这时候你就应该加入其中。对于自动化测试怎么做法我就不仔细说了,东西太多,我自己目前可能处于中级应用阶段,大家可以去51testing上看相关帖子了解一下。需要说明的是,自动化虽然好,但是不可能替代手工测试。另外,它不适用于一些小项目,对于小项目来说,上自动化所带来的项目成本,将远大于手工测试。
在自动化测试过程中,你可能需要自己去写一些脚本。这就需要对编程有一定了解。在这里我想说,会编程不是测试人员必须会的技能,但是,不懂编程将不会成为一个高级测试人员,它会成为你发展的一个绊脚石。我在做程序员的2个月中,学到了很多,它会影响你对系统的认识,拓展你的测试思路,增强你对数据库的了解。在这个阶段中,我建议你有空时学习相关网络拓扑,系统架构,数据库的知识,为将来打下基础。
做到这样我可以说,这个人已经是测试方面的中高级人才了。当然,如果你想做技术全能选手,那就开始接触性能测试和白盒吧。我认为这两个是高阶的玩意。
在性能测试领域,我是只会用LR,关于怎么学我不想说,自己找资料。需要说明的是,性能测试有两个难点。第一,是对面向被测系统的认识,如何确认到底需要监控测试哪些性能点的问题。第二,是对于测试出来的结果,能否正确分析找出瓶颈的问题。这两面都需要大量的工作经验,以及对系统,网络等各方面的深刻认识。这是一个具有挑战性的工作。
在白盒测试方面,首先你要懂编程,要写过程序,其次,你要会使用相关工具实现测试过程。基于代码级的测试和系统测试在理念上是差不多的,你也需要对被测的方法或者基类设计测试用例,然后用测试代码去实现它。这是一个自己构造输入参数,执行代码并获取结果的过程,有兴趣学习的自己找资料看去吧!在每日构建方面我没有做过,所以也不好多说什么,别误导了大家,我只能说,每日构建是每天对配置库中的代码进行自动的单元测试,确保每天配置库中得下得代码是编译可通过的一个过程。
当你在技术上有了一定造诣,你得到了领导的赏识,可能你会步入测试管理的行列。强力的技术背景将成为你做领导的支柱,但不是全部。我想说的是,做测试管理和做技术完全不是一回事,管理基本关注两点,一是成本,二是进度。在确定这两点是可控的情况下,可以说你的管理工作是合格的。你的技术背景为你提供了如下的好处:第一,手下人对你的信服;第二,有利于和开发方沟通;第三,协助解决技术难题;第四,强力的自信。这一切都为实现控制成本和进度提供保障。这方面我就不多说了,我自己做这个时间也不长,大家自己摸索一下吧。
做任何事情都是没有止境的,不论是系统测试,自动化测试,性能测试,单元测试还是测试管理(当然还有做配置管理和质量控制的),都有需要继续学习的东西。目前国内没有超级牛的人带领大家在技术和发展方向上奔走,大家可能都是在爬行。当你在某个领域做到一定程度的时候,你会发现走到了瓶颈点,无法继续提高。这个是无法避免的问题,我给大家一个偏激但可行的方法,那就是跳槽。新的环境会带给你新的思路和活力。测试需要学习的东西太多太多,以上说的都是纯软件方面,我自己现在仍然不熟悉JAVA方面以及类似UNIX之类的操作系统,如果你做的是通信或其他方面的测试工作,你还需要掌握这方面的知识,实在是有的学,我相信经过3年的磨练,应该可以成为一个较为成熟的测试工程师。另外,前面提到了做CMO和SQA的方向,这个和做纯测试工作是不同的发展方向,CMO的工作我太熟悉,不过SQA实在又是一个博大而又精深的领域,据我所知,国内这方面的牛人很少,精英QA可以和PM相媲美,他对项目成功的贡献是巨大的,好像大多这类人是做了PM或系统分析员多年的人转做的。在这方面就不深入探讨了。
补充一点,公司的流程不可能像你学到的那样完美和规范,不要奢求,尽量去改善它才是你要做的。另外我想说下待遇问题,我建议新手不要太计较这个,也许你在51testing培训花了10K(不清楚现在具体价格,只是假设),你觉得自己从那培训出来已经是个牛人了,你要马上把你的投资赚回来。其实这么做实在是想法有问题,首先,你即使培训了,其实你仍旧是菜鸟,其次,中国人太多,人力资源不值钱,除非你是高级人才。新人在第一年不应该计较工资,而应该关注对方单位将会带给你的工作环境和发展潜力。讲工资的时候,应该在2-3年以后,需要强调的是,英文实在重要,我确实的体会,只是我太懒,一直不肯好好学,大家千万别学我啊!
以上是我个人的一些观点,大家随便看看吧,说错了我可不负责啊 ^_^
另外,我目前对于个人职业发展也比较迷茫,哪个牛人看了对我有所建议,请不吝赐教。。。。
胡 睿
2006年11月18日星期六
P.S. 我做过的一些项目:
1.ESCALADE ERP系统自动化测试
项目描述: Escalade 是一套面向电子商务/销售型企业的 ERP 软件,已在多家公司成功实施。
Escalade采用业界通用的业务流程,业务功能灵活而且完善,包括客户管理、销售订单管理、采购订单管理、配送管理、库存管理、销售分类账管理、采购分类账管理、系统管理等各个子模块,能适应大多数电子商务/销售型企业的业务需要。
责任描述: 利用QTP录制,增强脚本,进行回归测试。
2.上海市质量监督局网站测试
项目描述:上海市质量监督局网站测试是采用MVC开发模式。所以设计该体系平台就是为了能够对开发工作做出明确的定义。服务器端软件使用HPUX、Weblogic7、Oracle9i。
责任描述:网站功能测试,利用QTP制作自动化测试脚本,进行后期回归测试。
3.MyCmm 系统开发
项目描述:MyCmm系统是我公司自主研发的一个专门用于测试管理的软件,它综合了配置管理(绑定了VSS)和QA管理。它是基于webservice架构的C/S系统,数据库使用SQL SERVER,由 C# 开发而成。
责任描述:建立表空间,增加字段,添加窗体,新增或修改功能等。
4. ESCALADE ERP白盒测试
项目描述:Escalade 是一套面向电子商务/销售型企业的 ERP 软件,已在多家公司成功实施。
Escalade采用业界通用的业务流程,业务功能灵活而且完善,包括客户管理、销售订单管理、采购订单管理、配送管理、库存管理、销售分类账管理、采购分类账管理、系统管理等各个子模块,能适应大多数电子商务/销售型企业的业务需要。
责任描述:利用NUNIT对底层代码进行白盒测试,主要针对比较重要的业务基类
5.POS支付核销系统功能及性能测试
项目描述:该系统是和银联合作的一套可以利用银联卡和IC卡支付的系统,由终端操作上传至银联和公司内部服务器,以便于核查帐目所用。
责任描述:功能测试,LR性能分析及测试计划,执行,结果分析。
说明一下,发这个帖子有两个目的。
第一,尽我的能力帮助新人快递成长。
第二,找牛人给我些建议,指条明路。
以上内容可能有些说的不对,还望大家海涵。。。。
[ 本帖最后由 ecust 于 2006-11-18 18:55 编辑 ] |
|