环境造成软件测试人员低人一等
这是个经常被人说起的话题。到底测试人员是为程序员打杂的还是一金难求的国内软件行业的特殊人才?
个人认为,软件测试工程师是一个对专业技术和自身素质都有一定要求的职业。一个优秀的软件测试工程师无论在何处都是一金难求的。以我所在的 微软亚洲工程院为例,我们的测试工程师需要和开发工程师,规程经理一起合作,从产品定义(product definition)到产品开发(product development)再到产品维护(product servicing),在整个产品生命周期中,不断贡献各种建议、测试文档以及测试数据。在这样一个开发团队中,测试工程师的地位和开发工程师,规程经理是一样的——是软件开发团队中不可或缺的部分。
正因为测试工程师与开发工程师的同等重要性,使得软件测试开发工程师(SDET)和开发工程师的录用标准基本类似,但是由于外界长久以来的“不平等”观点,左右了很多软件开发人员的选择:大部分人更乐意成为软件开发工程师。这也就出现了所谓的软件测试工程师“一金难求”的现象。
但同时,作为一个优秀的测试工程师,他应该具备与开发工程师相类似的软件开发知识和技能,对被测试的软件产品架构和所使用的技术了如指掌,同时还要有足够的热情和动力,凭借积累的测试经验,去寻找并指出产品中存在的漏洞。如果说以上这些还仅仅是对测试工程师工作要求的简单描述,我们可以看到这样的能够帮助产品开发团队寻找到重要缺陷的工程师永远都会是一金难求的。
对于测试人员低人一等这样的看法,我认为是由环境造成的。在 微软公司,我们营造的是测试和开发同等重要的环境。一个软件测试开发工程师(SDET)一般会与开发工程师配合工作,负责开发相应产品模块的自动化测试工具以及测试用例。当然,必须承认, 微软公司也一样有很多项目是需要一些具有简单技能的测试人员帮助运行手工测试的。而对于这些测试人员,我并不认为是“低人一等”,而是测试行业的“初级工作”。如同初级开发人员只负责编写一些简单逻辑的模块一样,测试工程师的简单工作不应被大家诟病或者轻视的。同时,只要这些测试人员愿意,他们完全可以在工作中不断成长,最终成为一个优秀的经验丰富的测试人员。