以下转自 徐宏革的主页
在多年的软件职业测试培训中,我感到有很多学员都比较茫然。一个是不知道软件测试到底是做什么的,二是不知道学完后的职业发展方向。
软件测试的发展,是伴随着软件开发技术的进步,以及软件质量管理观念的形成。现代软件企业,软件开发技术从传统的字符界面发展到图形界面,从面向过程思想过渡到面向对象开发思想,历经了近70年的时间。在漫长的软件开发与使用当中,人们发现软件里面有很多的问题或缺陷,而要完全解决软件中的问题真是难上加难。这样在软件开发团队里就有一部分人开始进行编码的错误检查,这是早期的软件测试人员,但他们的职责却是软件开发。通过人工或自动的做法,找出源代码中的问题,按目前的讲法叫做软件自动缺陷预防AEP(Automated Error Prevention)。
软件的广泛应用,使得人们对软件质量的要求就越来越高。就像微软公司的Windows产品,从1.0版本到目前的Win 7,每个版本用了不到18个月就被众多的客户投诉,有无数个缺陷与漏洞。微软公司为此而蒙受的损失是巨大的。当质量管理的理念引入到软件企业的时候,人们才发现必须有一种找出问题的手段或方法,才能在最大程度上降低软件产品的问题或缺陷,获得客户的高度认同。
软件测试是从软件质量保证过渡而来,软件测试的职位从传统的白盒测试逐渐演变到黑盒测试,从单一的测试岗位发展到众多的测试岗位,如:WEB测试、数据库测试、安全测试、手机测试。
软件测试行业的职业发展路线按现在的现状,走四条路线:
第一条:软件测试技术路线
从初级测试工程师到中级测试工程师、高级测试工程师、资深测试工程师
第二条:软件测试管理路线
初级测试工程师、测试组长、测试经理、项目经理、项目总监
第三条:软件质量保证路线
初级测试工程师、质量保证人员、质量管理人员
第四条:软件开发技术路线
初级测试工程师、中级测试工程师、高级测试开发工程师
现在谈谈怎么学习软件测试技术。软件测试实际上是一种逻辑思维的方法或手段,因为事物总是一分为二的,这是自然规律,也是科学依据。软件产品的功能可以实现,就有可能有些功能实现不了或实现不全面,或没有满足客户的需要。软件测试人员往往关注的是软件产品的缺陷,他们拿着大号的放大镜在软件里面找问题,很像治病救人的医生。
软件测试人员就像万金油,需要各种软件开发技术、测试技术、质量管理、数据库、计算机网络都需要懂一些,最好精通一门或多门。软件产品开发的语言和工具很多,不能面面俱到,所以要学会程序设计语言的精髓,像C++/C#/JAVA,其实程序设计语言的基本结构是一样的。数据库有MS SQL Server和Oracle、MySQL;计算机网络的TCP/IP协议和LAN组建也是必须的,网络社会的到来要求软件从业人员必须具备网络知识,因为所有的软件产品都趋向于网络环境了。
对于软件测试技术的掌握:
一、是重点概念,现在有很多同学说概念或理论自己看书就能解决,主要是没有实际工作经验,其实老师在讲解概念或理论的同时,也在不断灌输软件测试的实质,没有理论上的掌握,你就无法理解一个软件产品怎么测试,为什么这么测试,怎么去考虑测试的方法或策略,软件测试术语是怎么引申来的,其实都在启发你的逻辑思维能力;也在不断的讲授和上机练习中体验软件测试的流程,软件测试的过程,由无形到有形,从无序的知识点到有序的系统的知识体系。很多东西是要由讲师潜移默化把他的经验传递给学生。如果都是自己看书能看明白的,培训也就没有存在的必要了;
二、是要有统筹兼顾,全盘考虑的思想,做测试工作不是一个孤立、片面的工作,很多同学都曾说过以前的学哥学姐都传授过经验,测试就那么回事,等到了工作单位,每天就那点活,老是机械式的重复,这些都是我们没有看到或没有意识到的,目前的软件开发与软件测试已不再是小作坊式的规模了,它需要大量的人力来协同工作,每个人的工作都是必不可少的一部分,所以需要在全局上把握,从宏观上考虑,这就是软件测试策略的由来,但是具体测试工作还是微观上的,还需要掌握软件测试的各种方法,另外还要站在项目管理的层面上,从时间上、成本上、效率上、人员分工上、测试团队的能力上、风险上等诸多方面来统筹考虑,要做到从事软件测试工作要从宏观到微观、从全面到局部去认识,不能再盲人摸象或者摸石头过河,要从认识论升华到方法论上;
三、是要多上机实践,多思考,会思考,找出疑难与不解,要从软件测试实践中总结出测试理论,再用测试理论去指导实践,这是个循环往复的过程,只有当你的认识达到一定的高度,你就深刻理解了什么是软件测试,你才会发现原来软件测试是那么的有意思、那么有动力、那么具有挑战性,以后还有很多未知的迷团需要你去破解,还有更多的知识需要你去掌握。软件测试技术到目前为止,还是一门新兴学科,还没有形成固定的理论体系,还需要很多人的努力,最终将这门艺术变成一种科学。
现在,参加软件测试工程师职业培训的同学有几个误区:
一、交钱买工作
如果抱着交钱就能买到工作的话,我建议你趁早拿着你的学费回家玩去。如果没有一种正确的就业观念的话,如果没有抱着刻苦学习和钻研的劲头的话,你还是找不到工作,钱不是万能的。
二、测试工程师入职门槛低
现在的软件测试岗位,对人才的需求很旺盛,很多人就误认为入职门槛低。但是很多企业人力资源专员也老说没有软件测试人才,老说找不到人,其实真正企业需要的人,适合企业的人却是很少。软件测试岗位对一个从业人员的综合素质的要求是很高的,不仅要有高的素质,还要有过硬的专业技术和良好的逻辑思维能力。
三、测试只是个工作而已
如果只把软件测试当作一种用以谋生的工作的话,你从事这份工作无论多长时间,你永远都是最初级的测试人员,永远无法走到你事业的顶峰。要把软件测试当作你毕生的事业的话,你就会学无止境,你就会在软件测试中找到人生的乐趣。
相信聪明的同学们都能明白一个道理:如果成功为一百分的话,那么99分的汗水加上1分的坚持,你就会成为有用的人才。
成功=99%汗水+1%坚持!
成功的道路上没有捷径!