我所在的Team对应聘的人员要求是做过测试,有一定的开发能力和扎实的数据库基础。因此,不少Vendor公司从测试里面找这样的人。但是,又出现一个问题,很多推过来的测试完全不懂开发。
我上次面试过一个兄弟,再微软的另一个项目组作STE,我一进去,他给我的第一句话就是我不懂开发。整得我当时就觉得可以直接cancel掉了。但是,至少给人家一个表现的机会。我稍微问了些开发的知识。的确,完全不懂(有点夸张了,不过真的不是很懂)。测试呢,还可以。其实也只能是Average+(不过能达到这个水平的10个面试的有2个就不错)。当然,被直接cancel了。
在中国,很多人不愿意去做测试,认为那是很低级的工作。很多公司把写代码不行得人,甚至是完全不懂计算机的人安排作测试。这就造成了一种现象,开发的看不起测试,测试的不会开发。但是,在软件工程这个系统科学里来说,真正的测试是建立在开发的基础上的。
这就好比修汽车与开汽车的(还是那个例子),修汽车的不会开汽车,你会发现很多问题你不知道是什么原因,也许你会修。如果你会开汽车,可能你就会知道也许是司机换档时离合器没有踩好,导致变速齿轮打坏(偶只开过以前的北京吉普,现在的车据说有同步器,好像不会有这样的问题,不懂得说)。这样,你就会在司机取车时给他很好的保养建议。同样,我理解的测试,就是发现问题,定位问题,向开发提出问题解决参考意见。如果你不懂开发,很多问题你能测出来,但是你不知道为什么会这样。所以定位问题,提出解决方案就不可能了。因为,你必须去懂代码,至少,能看懂代码,能写出简单的代码来辅助你的测试。
当然有些人会说,公司分工很细,黑盒测试人员根本接触不到代码。我承认,但是,如果你懂得页面(界面)实现过程和原理,很多错误你会很容易判断出来大体是什么问题。如果你懂得数据库或开发,很多注入式攻击你就能够理解并能运用到你的工作中。你想,如果一个做简单页面测试的人员,能够发现很多系统安全问题,你的leader还会让你继续作简单的页面测试吗?
昨天跟一个Vendor公司的HR聊天,她说很难找到会测试又会开发的人,说很多测试做了2年多还不会开发。我就问她,那他们这2年都干什么了?除了工作就是玩吗?2年哪怕你抽出半年的时间来学开发,还至于不会开发吗?难道你不会再业余时间来做些小工具,小网站之类的来练习一下吗?全都是自找的!
希望以后的测试工程师们能够觉醒,不再尴尬!