软件测试、开发人员的职场发展探讨

上一篇 / 下一篇  2012-04-17 09:21:43 / 个人分类:杂谈

导读:软件测试人员和软件开发人员的岗位要求到底哪个更高?哪个更有发展前景?业界关于此问题的争论似乎一直未停。而有人指出,这个问题实际上就是一个伪命题。对于两个不同岗位的从业人员能力,因不具备可比性所以无法比较。但不可否认,这两个岗位之间又存在着不可分割的重合领域。本篇文章列出了从业者对于软件测试和软件开发的几类典型观点,并包括了二者对应的职业发展方向,以此为广大从业者提供参考。51Testing软件测试网:x@)w#q9jz w/r

  一些软件开发方向的毕业生表示,还在学校时,老师经常说的是如果女生以后不能从事开发,可以去做测试。刚进入企业时,问起开发人员未来几年的发展,被告知如果个人水平差的话可以转去做测试。言外之意是否就是:软件测试人员的技术要求比软件开发人员的技术要求低呢?51Testing软件测试网W:l:X"Vqayk2HA

51Testing软件测试网EX[ N'}-z%i/?$A

  针对这个问题,众多开发人员、测试人员发表了不同意见,这里整理总结了几类典型观点,其中还包括了一些关于职业发展的建议,不妨一看。51Testing软件测试网I?N1[$t

51Testing软件测试网7V1~8AX x6D}X!U

  “造炸弹”和“拆炸弹”

^pF{+w,Gi^0

&R2l*r1iy `0  《我的第一本C++书》作者陈良乔表示,他不认为程序开发人员的技术水平比测试人员高。他把开发人员和测试人员分别比作“造炸弹”的和“拆炸弹”的,从这方面来说,陈良乔甚至认为测试人员的技术水平要求应该要比开发人员的要求高一些。51Testing软件测试网]+p:ls(J$`x n

$y3] d/`wvt EG+R0  陈良乔进一步指出,之所以有很大一部分人认为“开发人员技术水平高于测试人员技术水平”的这个观点的产生,反映了国内目前重视程序实现、轻视程序质量的业界现状。

E*I;{dj3]!o(j051Testing软件测试网OU+Rc3}}5n

  “生产力”和附加“支持”51Testing软件测试网z^g5x4dH

51Testing软件测试网!Kb#vHV@}#GY gx1Z

  Adobe程序员冯东的观点刚好与陈良乔相反,他结合行业现状表示,在软件工业里,只有开发者旗鼓相当的公司,才能拼测试。而实际上,开发者的生产力可能会相差到十几倍。冯东认为,目前行业内大部分公司中的测试人员起到的是“支持”作用,只有开发人员才能起到“生产”作用。换句话说,如果你只能招一个人,你是招开发人员还是测试人员呢?“造炸弹的起码可以当半个拆炸弹的,如果你非要说拆炸弹的也会造炸弹,我只能说你给他的title 错了。”因此,测试和开发的技术水平不在同一“境地”。

-G'WfZs'jM5C^051Testing软件测试网6[M U P#K6TP

  要做好测试工作同样需要高技术水平51Testing软件测试网;FD*antO:~` r4W1b

51Testing软件测试网;_%v6C-Y'b

  微软亚洲工程院项目开发工程师陈甫鸼认为,对于并不真正理解测试究竟是什么的人来说,“开发人员技术水平高于测试人员技术水平”这个观点具有一定代表性。51Testing软件测试网%w w e_,W

51Testing软件测试网 J?/L)o6x e(S

  陈甫鸼表示,软件测试的目的是为了保证软件质量,从工程的角度出发,软件测试人员举足轻重。他认为,要真正了解什么是测试,要先了解测试究竟是做什么的。陈甫鸼介绍了软件测试所做的三大方面工作:第一方面是监控产品流程。程序的开发和这个过程中的bug修正是一个时间平衡的工作。开发得太快,就有可能给下一阶段带来较多的问题。而每一个开发阶段都需要一定的信息收集、分析。这些只能由测试人员去做。51Testing软件测试网&I4Y1zS5t"gU|5@8s

'i$b)kW6G`0  第二方面是搭建复杂的应用场景。就拿一个完整的Active Directory服务器的回归测试环境的搭建来说,陈甫鸼曾为此搭建过11台域控,其中还不包括中间可能动态加入的、删除的客户端。而过程中包含大量故意毁坏性操作,每一次毁坏之后都必须恢复现场进行下一个测试。陈甫鸼认为这种测试场景并不是任何一个程序员可以构造的。

{?-`(y3K*y \o"f051Testing软件测试网%g#k7b}`

  第三方面是简化问题报告。当发生用户报告时,用户给出的描述往往缺乏直指问题所在的步骤描述,此时,需要分析过程、并反复与用户进行沟通最终完成关键步骤的定位,这一系列工作也并不适合开发人员来负责处理。

p k U(r[B&`%[7}#s0

ZJ&gy0H0  陈甫鸼介绍了一些不需要专门测试的情况。即软件本身不包含复杂的应用场景,比如单机软件、单服务器网站。而更多的复杂应用场景需要通过专业而严谨的测试,比如股票软件类的服务器系统。如果没有长时间熟悉过这类复杂系统的技术人员,是无法做好测试工作的。测试和开发所需的技能有交集,但又属于两个要求不同的岗位。如果因为开发技术不行就去做测试,也不等于你就能成为一个好的测试人员。

.NU~c\acf]0

1p,d @(|X$p4Z#F0  目前开发和测试分离的做法助长了一个倾向:一些程序员越来越不关注自己的程序质量,也不关心自己的程序如何被使用。在CSDN的微软测试专家群论坛上曾有人发言说一个产品到发布的时候对他来说就是死掉了,他就不再关心了。陈甫鸼认为这代表了一部分程序员的看法。但这不是程序员的错,也不是分工的错。该指责的是无能的领导,他们设置测试这个职位就是为了丢垃圾的,而没有能力把握两个角色的关系改进产品。这种无能的另一种倾向就是雇用大量的测试人员,以为用人去堆就能堆出好产品。他们忘记了,测试人员起到的是监控质量变化的作用,而不是提高质量。提高质量的唯一办法是开发。丢包袱能让人轻装前进,但是只知道丢包袱丢不出好产品。51Testing软件测试网&m2g^1r/Y.a` ~ jx

(z:f5u;p [;Hy0  技术要求侧重点不同51Testing软件测试网-v5b#ph J_iL

!Z-Sl^ eXA V-Bw q'F0  iOS开发者石英则认为,开发人员和测试人员的技术水平要求大致一样,只是侧重点不同。开发人员需要精通某个技术点,测试人员要高度熟悉某个技术面。

ySH1y9L U0Qe/|0

TAG:

 

评分:0

我来说两句

Open Toolbar