软件测试工程师:其职能是理解产品的功能要求,然后对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robust),并写出相应的测试规范和测试案例。
国内的一位博士到微软总部参观之后,觉得非常奇怪:“测试人员是做什么的?为什么微软在做产品时,测试人员占了一半以上?”其实,软件测试在产品开发中占据相当重要的一部分,这是一种需要,是微软从二十几年的实践中明白的道理,也是微软从不断的失败中总结的经验。
大家可以感觉到,微软以前的产品有时会发生崩溃、死机等现象,而今天的产品则比五年前的产品更大、更完善,并且要稳定得多。为什么呢?这是因为测试工作越来越好,测试人员越来越多,而且越来越有经验。关于这一点,微软公司曾经算过一笔账:最初,微软公司与大家一样,认为测试不重要,重要的是开发人员。通常,一个团队中有几百个开发人员,但只有几个测试人员,并且开发人员的工资比测试人员高很多很多。经过多年的实践公司发现,为那些出现问题的产品再去修一个补丁程序所花的钱,比多雇用几个测试人员的费用要多得多。
但是,软件测试到底是一门什么样的科学?没有人知道,大家只是在摸索。它需要什么样的背景,也没有人知道。所以,微软的测试人员中,只有很少一部分是从计算机出身的,其余的有学俄语的、英语的、数学的、工程的、生物的……种类特别多,但有一点:测试人员一定要有一种感觉。
由于现在的软件测试仍然处于发展阶段,往往测试人员还是依据本能、靠感觉、靠天赋来做软件测试。如果像用户那样只是通过使用来发现Bug不是真正的测试,这只是一种最基本的测试,你只能发现一般用户的问题。
最后,我以一段有趣而又真实的故事来结束这篇文章。
我在微软总部做测试组长和经理时,经常需要招聘测试人员。我招聘人时通常会遵循两个原则:一是要看他的逻辑性,这是非常重要的一点;二是要看他的思维是否怪异,是否能经常产生一些怪点子。第一点是可以依靠后天培养的,但是第二点恐怕是后天培养不出来的,多少有些天生的因素在里面。
这两个原则是我在多年的实践中得出来的。由于软件测试学科还不成熟,目前还没有一种很好的标准来衡量一个测试人员的优劣。而且它到底需要一个什么样的专业基础,尚无定论。从目前来看,并不是说学计算机专业的就最适合做软件测试人员。
说起来也许大家不会相信,我曾经亲自招聘过一位家庭主妇来做微软的测试人员!
这名家庭主妇已经四十多岁了,是一位海军军官的妻子,三位孩子的母亲。她只读到高中毕业,连大专也没有上(在美国没有上过大专的人是很少的)。她使用计算机的水平也非常初级,而且还是跟着自己的女儿学的。后来她在家闲得无聊,就决定出来找一个工作,而且居然跑到微软来应聘了。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/