lhy8848 发表于 2011-9-18 21:32:57

测试职业之路的发展与困惑

从事测试这个行当多年了,被问到也思考过很多有关测试职业成长途径之类的问题,大体上,我对于励志方面的事情很感无力,也不想说些冠冕堂皇的话,不过因为在IT这个行当里,做编码和测试是很典型的两种职业路线的选择,尤其对于初入行当面临选择的人来说,或者对于面对成长困境的人来说,指出两种途径的区别和成长路途还是很有必要的。由于本人从事多年开发和测试,经验不多,教训不少,两相比对,也算对他人的思考有所启发。
      软件这个行业从用户的需要开始,到应用系统交付为止,完成一个有效的生命期。在这样的生命期中开发设计与测试贯穿始终,其中涉及到的各种角色也是职业人逐步提升自己所面临的各种短期长期的目标,但是这不是我们本文讨论的目的,我无法给出一个有效的路线图,我只能提出来尤其在测试这个行当,人们所面的各种困境的根源,毕竟尽管从底层做起,一步步提高是每个从业人的打算,但是你必须首先知道来自行业的阻碍、自我能力的约束和工作团队的限制,并且每个人都知道的一个真理,权力是金字塔形的,自我提升的路途同样是充满矛盾,沮丧和困惑。
      首先比较一下开发技术与测试能力的区别。我们谈及两者之间的职业选择,往往不知道这两者最大的区别在什么地方。细心的你会注意到,在说到开发的时候,我提到的是“技术”,而对于测试却是“能力”,这两者可是两个职业本质上的区别。
开发设计最终的实现方法就是采用计算机语言编码实现,计算机语言是内涵周延经过严格设计的逻辑推演体系,尽管在形式上很复杂,但是本质上属于数理逻辑的一部分,这样一个知识技术体系是能够积累与传播的,我们可以通过教学或者自学的方式,获得相应的技能,并能够通过实践不断扩展自己的技术能力。如同代码是可以继承复用一样,从事开发工作的人,所有的工作都是提高自我的基石,坚实而稳固,在广度和深度上随着时间的推移,获得更多的收益,从而构筑无限制的自我能力成长的空间。
      测试是非编码化的工作,在技术实现与业务解析方面,更侧重于后者。可以说,测试是一项经过流程化控制的手工作业活动,它的工作特点就是不可分享与继承工作成果, 不可能以编码化的手段,实现工程化管理。所以说来,软件测试一直在谈论方法论,但是却无法将测试流程实现工程化。尽管有些项目局部测试可能采用了自动化的手段,但是从完整的测试流程上来说,这些手段远谈不上复杂的技术积累(也不可能采用复杂的测试编码)。对于从事测试行业的人来说,自我成长的路径是非常具有不确定性的,因为缺少以逻辑推演为基础的工作,自我能力的培养是难以积累拓展的,如同踩在瘫软没有支撑的胶皮上,缺少了坚实的登高的台阶。测试人员最容易感到职业的彷徨,就是因为这个职业能力的不可积累性。
      我不能过多讨论基于逻辑推演的知识与技能的可积累性,那个话题太大也太长,或许人类进步的秘诀也存在于此。像许多人说的那样测试更像是一种艺术活动,灵感来自对于技术与业务衔接的洞察,做好测试活动其实也是需要很高的感悟力的,可惜的是,我们的流程化管理限制了个人感知力的发挥。当测试人员在短期内掌握了测试流程和测试工具后,就会陷入前途的迷茫状态,因为往往地,他们认为这就是测试本身的全部知识。也的确,在做应聘面试的时候,除了了解测试的方法论,可做谈资的确实不多,也无怪乎测试的职位薪酬普遍低于开发的职位。
      不要忘了我之前提到的,测试这个行当更加偏向于应用系统的业务逻辑,这意味着一个并不让人感到舒服的结论,测试工作本身能够积累的不是测试技能,而是测试对象的业务逻辑,这个是比较掉诡的结论,也是从来被人忽略的成长因素。因为从事测试行业的人员随着测试应用的交付,也就远离了这样的业务环境,他本身不是测试业务的从业者,却在职业发展路途上跟这个行业形成了某种捆绑。最糟糕的也是最常见的情况,没有哪些测试员对所测试应用的行业有过深入而广泛的了解,也就放弃了自我积累的机会。这种积累是否对自我成长有所助益?答案并不乐观。并不是所有的积累都是有效的积累,过于偏狭,用途和接受面很受限制的系统,其实对个人成长起到的作用是不大的,在之后的工作中能够再次相遇的机会不大,对他人对其他公司来说,那样的系统过于生疏,也缺乏说服力。只有社会上得到广泛认识的业务知识,才是测试人员有效的积累,比如银行,物流,财务,人力资源等等,这样的业务能力的积累,为今后做管理,顾问,测试架构,系统高端设计都有帮助。这么说是不是有所感悟了?做测试对自我能力成长最重要的是选对测试的对象,有点无奈了吧?没有办法,测试就是作嫁的行业,当自身行当缺少成长空间的时候,只能向外要成长空间。嫁女要嫁对郎,测试要选对行。
      当然,单纯从测试行业来说,能够自我臻至化境,将测试看作艺术一样品味的,也大有人在,至少在某种程度多多少少有所领悟的,也是一种收获。测而有优则仕,能够拐上管理路途算是成功转型,否则,在洞察力上高人一筹,成为解决问题的高手,也是自我成长的一种测度,可惜的是这种成功不可复制,而且带来的物质上的回报可能会让人有些失落。Tim Riley 写了一本《 Beautiful Testing》的书,把这本书当作一本艺术导读的书来看,而不是技术指南,你会体味到测试的美感,毕竟成功的标志,物质和职位的获得不是仅有的衡量尺度,自我的满足和他人的认同也算是可选项,尽管不那么主流或者显得有些落魄,但至少保有一种骨气。
      上面是从行业的特点来讨论自我能力积累的路途,此外环境的影响对自身发展的选择也起着至关重要的作用。每个公司都有自身的文化,所在团队也有自己的特点,审慎评估自己的能力与所得职位及薪酬的公平性,是对自己也是对公司发展负责的态度。对于新人来说,刚刚从事这个行业,一切的积累都是从零开始,能够提供的选项不多,心态比较平和,工作态度都很上进,这样的日子很累也有着无尽的期盼。每到两三年,往往你会很快面临一些门槛,也许来自自我成长的烦恼,也许是晋职的焦虑。任何一个公司在提供晋职的机会上都不可能是完全公平的,是一种平衡和个人因素参杂起来共同作用的结果,因此结局不可能是人人圆满的。评估最终的结果,当过多个人因素参杂导致不良结果时,也许尽早离队是个好的选择。很多技术能力经验丰富的人,在情墒上却是可怜的低能,这样的人在职业发展上会遇到很多烦恼。相对于其他团队或者公司而言,他们能够看到的是个人的能力与经验,而不会有人情之间的平衡考虑,因此评估结果相对客观一些,也是这类人可行的成长之路。对于整个公司薪酬与社会薪酬的失衡,解决的途径其实不用说太多了,这样的公司需要在整体上做出调整,等待公司自我纠偏需要给它足够的理由。
      总的说来,测试这个行业虽然入职的门槛相对低,但是发展起来,却是很容易触摸到成长的天花板,很多有关测试职业发展的建议,在我看来都没有抓到这个行业真正的特点,也无法解决测试人员实际遇到的职业发展的困惑。本文没有意愿也没有能力提出有效的建议,只是提出问题关键所在。纵观IT行业的发展趋势,将测试纳入编码化工程化,是解决这个行业发展的最终途径,不过由此带来测试门槛的大大提升,对测试人员来说是个巨大的挑战,当然也是巨大的机遇。

bluesky1986007 发表于 2011-9-18 23:28:03

对于测试来说,行业知识和技术其实都是很重要的。如果过于注重行业即业务知识的积累而忽略的技术的提高,那么这个时候就会像lz所说的,你的测试职业生涯就像是作嫁行业,选对了行业可能还好点,工资会相对高点,选错了那也只能自认倒霉了。另一方面,如果一味的追求技术的话,那么我告诉你技术只是要想成为一个测试高端人才的必备条件之一,因为测试就好比一门高深的艺术,测试思想、测试理论、分析能力、系统熟悉度、业务熟悉度等等都将是衡量一个测试人员的标准,而技术只能更好的辅助你去解决、去分析、去优化、去改善测试中所遇到的一些问题等。所以个人认为要想往测试金字塔顶端走的话,对业务的了解、对系统的熟悉度、测试思想以及技术背景缺一不可

lhy8848 发表于 2011-9-19 00:53:26

可惜,你没看懂我所要表达的意思,技术是可以测度的,而你所说的所谓思想,方法论,分析能力之类的恰恰不具有可以衡量的尺度,如何让他人评估这些指标不是能够一言而概之的.我很想知道测试技术是什么?不要说什么分析能力之类的,那个不属于技术,不要说是流程化的东西,那个更不是技术,也不要说怎么使用工具,那个不具有深度可言,相对于软件开发环节,测试的技术含量必须承认相对较低,否则就是自欺欺人.包括自动化测试,也不具有软件开发所达到的复杂度(否则,它的可信度由什么来保障).你认为走金字塔尖当然也是一条路,不过我相信多数人都会倒在半路上,把一个不具有普遍意义的蓝图拿来陈述,是不具有说服力的,就象上语文课,尽管我们在读大师的文章,但是如果老师告诉你,多读多写就能成为大师,那只能算是善意的谎言.本贴子的目的不是找到出路,而是揭示问题的本源,给与一些小的提醒,笼而统之的将所有优异能力聚合起来,然后告诉大家这就是出路,那不是我的本意,也恰恰是我所反对的,因为远离现实.

sam.sheng.3 发表于 2011-9-19 09:35:11

我很支持LZ前辈的最后一句话。如何不让自己淹没,唯有不断学习,不能因为现在做的手动,而把技术能力无限降低。

bluesky1986007 发表于 2011-9-19 21:06:55

回复 3# lhy8848

呵呵,只是想表达一下自己的想法。首先我想说的是其实每个人都有自己适合做的职业和工作,只是很多人自己不知道而已。不说别的,就说测试和开发所要的人才是不同的,为什么?就是应为思想不同,他们考虑的问题不同,做事的方式和想法不同。同样一个东西,你让一个做开发的人和一个做测试的人来测,他们的思考角度会不同。有些东西没有和lz争议或者是和lz的思想有异议,只是在说明一个事实。这些东西在lz眼里无法测量,其实是可以看的出来的。你让一个专业的开发人员和专业的测试人员去测同一样东西就会发现其中的奥秘,这也是为什么测试现在被越来越重视的原因之一。
从技术上来说,我绝对不否认lz所说的肯定没有开发技术含量高,这是事实也是现实,因为之前也说过了,开发和测试本来就是两个研究方向的,需要的人才也不同,当然也肯定是有共同点的这点毫无疑问。我只是想说的是作为测试,偏离技术也是无法在测试领域往上走得,只想说明这点而已。
最后还是想说明,我只是发表一下自己的看法,绝对没有针对lz写的这篇文章,说实话,你的文章太长了,不会有人耐心认真看的,从测试的角度来说,你文章的易读性不高

铁风 发表于 2011-9-19 21:46:06

我想我明白楼主要表达的意思,因为我最近也经常在想同样的问题。测试做了两三年年之后,想要再提高,可以往编程方面考虑,做到测试开发工程师,工资会比较高。但是再往后,想要做到测试架构师,必须提升在某一领域的业务能力,成为某一方面的专家。所以在前期,在工作两年左右,就要开始考虑自己以后想要在哪一方面发展,比如银行、电信、网络、手机等等,选定行业之后,再向其中的杰出公司靠拢。而不能前年做手机测试,去年做银行测试,今年做WEB测试,明年做电信测试……,这样只是浪费青春,永远只能做一个测试工程师。

lhy8848 发表于 2011-9-21 10:53:13

确实跟上面bluesky1986007朋友提到的,文章有些散乱,不过,基本核心概括来说,主要有以下几点:
1. 了解测试流程以及测试的方法论所需要的时间并不用很长时间
2. 体味流程与测试方法论的内涵并能够有机地结合到具体的测试环节,需要个人的经验与洞察
3. 测试职业还是处于手工作坊状态,缺少技术手段的支撑,个人的成长在于对关键业务的掌握而不是技术能力的提高
4. 适时评估自己经验能力的水平,选择更合适的项目与公司也是自我成长的一个捷径.
页: [1]
查看完整版本: 测试职业之路的发展与困惑