注:这篇文章说得也是实情。从测试转测试开发没那么容易。要牺牲业余时间,要付出大量努力。尤其是,当别人正在玩游戏、看网页、逛大街、看电影的时候,还要能耐住寂寞,真的很难。这是代价。
所以我很喜欢一个同事曾经说得一句话,想要有收获,还不想付出代价,我鄙视这种人。
其实,在其它行业,又何尝不是如此呢?
很多测试员从软件测试工程师开始。即他们执行测试,但不写任何(或者很多)代码。很多测试员梦想成为一名测试开发或者开发人员。同样,很多测试管理者则梦想把他们手下的测试员培养成测试开发。这能实现么?是有可能实现,但大多数情况下很可能实现不了。
很难自学成为一名开发人员。当我们考察计算机业内情况时,我们能够找到很多自学的程序员,看上去好像很容易。但是,一些人成功了,更多的人却失败了。为什么呢?我觉得有两个原因。第一,一些人不适合做程序员。第二,也许是更重要的,自学太难了。想成为一名好的程序员需要很多知识。这意味着大量阅读(网上或书上),大量练习。结果是,做做梦容易,真的实施起来很难。
关于第一点原因,我在一篇文章中已经说了。研究表明,很多人,甚至是对程序感兴趣的,终无法实现他们的梦想。我怀疑这和程序的抽象本质有关。这并不是说这些人根本无法编程,而是说他们不能写出好程序。而且,当难度加大时,越来越多的人也放弃了。
第二个原因也困住了不少人。我见过很多人试图超越,但只有少数人成功了。成功的人花了很多自己的时间在上面。没成功的人则不愿在工作之外花大力气。期望从测试员成长为测试开发的人,如果仅仅是在工作时间努力则恐怕是要失望了。要成为一名称职的程序员要付出很多很多努力。在我早些的一篇文章中我给过一些建议。我建议不仅仅要学编程语言的语法,还要学习计算机科学的基础知识。当然,不学这些你也能编程,但做不到更好。而要学习这些,则要花费很多时间和汗水。
大部分时候,雇主们不会给你时间去折腾。他们想要员工们生产力高效,而正在学习编程的员工不会很高效。他们简单的事情都要做很长时间。当有事情要做的时候,团队里总是会有更有效率的程序员可用,因而事情给他们去做了。并不是这些管理者不鼓励学习编程。他们也希望员工水平更高。但他们未必能预留足够的时间去让你实际去学习。
我已经阐明这其中的困难,那么测试员可以做些什么来提高他们的成功机会呢?测试经理那方面呢?我将在以后讨论这些问题。
* 请注意我这里说的。人们可以自学C#来写个ASP.NET界面,或者自学perl来分析日志,这并不难。然而,这种程度离写出测试框架,分析性能,或者自动化测试COM对象,还差得很远很远。