经常看到网上有些文章讨论测试人员的工作有没有技术含量,似乎很有一些人,包括测试从业人员,认为测试的技术含量比较低,觉得学不到东西,从而产生前途迷茫的想法。
或者反过来,拼命举一些例子,比如自动化测试,性能测试啊,以来说明测试需要的技术要求还是挺高的,来为测试人员辩护。但这么来辩论,潜意识已经承认一个观点了,即技术能力就是评价一个测试人员最重要的指标。
我觉得要理解这个问题,首先要看一下技术的定义,然后再看一下这么想的背后原因。
From wiki:
Technology is the making, usage, and knowledge of tools, machines, techniques, crafts, systems or methods of organization in order to solve a problem or perform a specific function. It can also refer to the collection of such tools, machinery, and procedures. Technologies significantly affect human as well as other animal species' ability to control and adapt to their natural environments.
从以上的定义来看,技术本身是用来解决问题的,但是如果大多数测试人员,他的工作往往终结于发现问题,或者说发现问题最终的负责人,而至少从他的职责来说,不包括解决问题本身。按照技术的定义来看,测试人员通过工作掌握的技能,应该是不构成技术这个概念所包括的完整的要素的。
所以,测试工作本身,至少在测试的起步阶段,对于技术能力的要求是不高的。
当然,由于现代软件业日益复杂,测试本身也有很多问题需要解决,比如回归测试的问题,测试用例的维护,如何在测试的成本和测试对质量的改进中间达到平衡。对很多大型企业来说,把功能代码写出来可能并不是很难,但是如何保证新的功能不影响老的功能,或者兼顾功能的质量和交付的进度,可能是一个更难解决的问题。所以针对问题,也引入了很多技术,比如自动化测试的技术,测试设计的技术,已经测试选择的策略。
从我的体会来讲,虽然测试本身对技术的要求越来越高,但是解决这些问题所需要的技术技能,应该还是比不过开发领域。如果你如果对纯粹的技术更加有偏好的话,你还是更应该做开发人员,而且最好还是做你们公司的核心的产品的开发,这样才能受到最大的锻炼,对你的成长更有帮助。
所以一句话,如果你要和开发人员拼技术的话,你是拼不过的。
既然是这样的话,对于一些工程师,可能纯粹的技术并不是他的兴趣所在,或者出于各种原因,已经选择了测试这个行业,换一个行业,再去做开发的话,机会成本太高,难道就没有希望了吗?
我觉得问题的焦点是,测试人员为什么有这样的顾虑,技术能力真的是测试人员核心的价值吗?
先试着回答以下这几个问题:
技术真的是做一个好的产品所唯一需要的吗?
技术是做一个好的产品最重要的吗?
如果你回答是的话,你不妨看一下苹果和诺基亚,你可以考虑一下,他们谁的技术能力更强,以及现在市场上谁更成功。
然后来看一下完成一个产品所需要的能力:
很多时候研发人员考虑的是如何Do things right,但其实更重要的是Do right things。因为一个开发和测试都很好的产品,如果没有在恰当的时间来到市场,被一些恰当的人群接受,其实最终的结果还是失败。看一下上图的组合,只有落在右上象限,既Do right things,又do things right, 才是我们想要的成功。