一位企业家在分享自己的成功之道时说:自己的成功在于先于他人一步。中国的软件业起步晚,相对美国晚了30年左右,而软件测试这个行业,则相对美国晚了15至20年左右的时间。坦白的讲,我们是输在起跑线了。至今,中国的软件产品还是难以走出国门,只能给老外做做外包,当外包不景气时,IT业立马出现动荡,一群IT民工在网络论坛哭爹骂娘。稍加思考,一个产品的失败,除了市场因素外,往往是质量不行,软件测试作为软件产品质量的控制环节,从当今的软件环境可以看出国内的软件测试业有多么的薄弱。自动化测试作为软件测试的衍生物,更是薄弱无力。
软件测试从业人员的整体素质能力水平偏低,这个是普遍现象。国外的软件测试人员职业发展从测试员到测试经理或测试专家,平均需要10年以上的职业发展时间,而我们的速度显得快多了,干了6年测试当上测试经理的比比皆是,从这点至少从侧面反映软件测试行业的不成熟。反观自己,从毕业到现在,从事软件测试职业有四个多年头,期间也花了很多时间研究Web自动化测试技术,也开发出了一套自动化测试框架,但是,仍觉得悲催,因为框架是居于商业软件QTP之上开发的,意味着合法实施自动化的前提得花一大笔钱购买别人的产品,这样的框架充其量只能是花瓶,并没有掌握到自动化测试的核心技术。然而,有人会问,开源工具不好吗,例如Selenium之类。开源免费固然是好东西,但是开源也仅仅是代码开源,并不一定是技术开源,其次开源的工具往往需要更高的技术支撑,尽管如此,相比高昂的商业软件,我还是看好开源的自动化技术。希望将来的自动化测试技术领域能如同操作系统竞争一般,给最终的消费者带来福音。
从理论上讲,软件公司的质管部门(QM)包括两块,一个是软件测试(QC),一个是品质保证(QA),二者之间职能互有交叉,但是关注点和介入的点不同,不同公司对角色的定位也不同,正常情况下,QC倾向关注产品的质量,QA倾向关注产品的研发过程。所以,QC部门的成员是不断的在测试产品,分析产品的质量是否达到发布要求。而QA部门的成员则是在不断地规范开发产品的过程,并在原有过程的基础上对过程进行改进提升。二者的职能在产品线上都极为重要,从不同的角度上保证了产品的质量。而实际的软件开发环境呢,本人呆过的第一家软件公司,别提QA,连QC部门都没有,完全一私人小作坊,开发人员根据市场人员的要求对软件进行定制,市场人员简单对产品进行测试下就交付给用户,用户则在一片骂声中对市场人员施压,最终的结果是产品一直缺乏市场竞争力,订单减少,份额下降,领导层分崩离析。而目前的公司,通过了CMMI3级认证,在国内软件业界也算是拿得出手。但是随着软件技术的发展,开发部门在原有增量迭代模式引入了敏捷开发的思想,QA部门缺乏对过程的改进,导致QC部门的测试技术仍然沿用旧有的测试模式,在敏捷迭代模式下,测试人员往往疲于奔波在分析评审需求、用例设计编写、系统测试的过程中,不良的效应是测试人员没有时间来提高测试技能,这对于部门的成长是不利的。当然,领导层不是不明白这个道理,往往是投鼠忌器,对于流程中任何一丝改动,往往牵连着生产线上的各个环节,谁都不乐意去承担带来的风险。其实,任何一种变革都牺牲部分人的利益为代价,如果变革是一帆风顺就不能叫变革,充其量算是改进。总之,这一切主要取决于领导层的魄力。
测试人员的职业发展,相信许多人都关心,俗话说,女怕嫁错郎,男怕入错行。选择一个正确的行业对于个人的事业发展至关重要。凭心而论,软件测试这行并没有网络宣传中那么火,什么个刚毕业年薪10万啥的,那都不靠谱,拿极个别的案例说事那都是别有用心的阴谋家。软件测试人员在整个软件的产业链上薪资水平并不高,主要原因是测试的工作的技术含量普遍偏低和领导层对软件测试不重视。软件测试的主要工作是保证软件产品的质量,因此成果产出几乎没有,没有那个领导愿意拿着你的一堆测试用例说事,对吧,成果无法体现,薪资提升就得放缓。但是,其实也不能悲观,软件行业作为高技术行业的朝阳产业,软件测试仍然处于发展上升阶段,其重要性正在逐步被认可,而且,软件测试的技术也逐步在细化,越来越多的分支理论体系和测试技术也正在被系统化的推广。
刚刚进入软件测试的人过了个一两年往往容易迷茫,因为经过一两年的黑盒测试,软件业务已经掌握差不多,日复一日的重复执行用例,内心难免浮躁,此时如果没有很好地规划职业发展,接下来就难以突破自己的瓶颈,此时,往往会分为两类人,一类人停滞不前,一类人快速成长为测试专家或测试管理者。所以,一旦发现自己迷茫了,潜意识应该发现自己的职业发展已经遇到瓶颈,应该重新树立新的职业目标,选择一个适合自己的职业目标努力冲刺,否则你就是那个停滞不前的小兵。
测试人员的工作压力其实并不次于开发人员,良好的工作习惯有利于改善自身面临的工作压力。传统的职业素养要求做到五心:专心、细心、耐心、责任心、自信心,但是处在技术日新夜异的软件行业中,还要有上进心。如下总结个人对这六心的理解: