在经历了长期的不为人知和可有可无后,软件测试工程师目前已变的炙手可热。地位变迁的背后推手,是市场竞争的日益激烈和软件企业以及用户成熟度的不断提高。
作为一个软件测试的专家,清华大学教授郑人杰20年来的经历颇有一些戏剧性。
郑人杰首次因为软件测试为人所知,是在1980年代初期。当时清华大学从日本富士通公司引进了一台型号为M150的计算机,日本人以人手不足为由,要求中方做一个基于FORTRAN的动态软件测试工具。
“我们当时就是考虑不能给清华、给中国丢脸,一种非常朴素的爱国心态。”郑人杰说。一年以后,他们提交了这个测试软件,而且顺利通过验收。日本人也出乎意料,《读卖新闻》也在头版头条撰文,称“日本富士通公司从中国进口了高水平的软件”。中国的《参考消息》也加以转载。
此后,郑人杰一直投入在软件测试领域的科研。1985年他翻译出版了Glenford J.Myers 的《计算机软件测试技巧》一书,此后1992年又自己编写了国内第一本软件测试教材《计算机软件测试技术》。遗憾的是,几乎没有产生任何反响。
而现在,书店里已经有了许许多多关于软件测试方面的书籍。出版社邀请郑人杰再版他的《计算机软件测试技术》。可是“我已经70岁了,没有精力了。”郑人杰说。
从Monkey测试到跑步上岗
即使在2003年,人们对软件测试还是有着不少误解。“很多测试其实只是Monkey测试。”周峰说,“就像猴子跳上键盘,蹦来蹦去,偶然踩到了某一个健,或者就能够发现一个两个Bug(缺陷)。”
周峰之前是华为的资深软件测试工程师,目前是上海博为峰软件技术有限公司、无忧测试网(51testing)的创始人之一,他的工作,就是培训一批又一批的软件测试员。
他表示,很多人认为软件测试只是在软件编写完成以后通过简单使用发现Bug,没有什么技术含量,甚至临时从车间厂房里拉出来的女工也可以承担。
而事实上,在国外许多国家的软件公司,软件测试工作已经逐渐演变成一门独立的科学,包括了配置方案、测试机制、跨平台策略和产品性能、稳定性等独立区域的知识模块。
同时,软件测试员需要参与包括需求分析—设计—编码等所有软件开发环节,尽可能地发现每个环节可能存在的Bug。“这是一个要求非常高的职业。”郑人杰说。因此国外的软件测试工程师基本上都是由从业多年的开发工程师转变而来。
不过,现在软件测试的重要性已经逐渐获得认可。根据51testing提供的一份调查报告,目前近91%的国内软件企业配备了测试队伍,更多的企业通过软件测试来提高自身的软件产品质量。总体上,69%的企业认为通过测试后软件质量得到很好提高。
而所有的招聘网站都开始发布同样的信息:软件测试工程师供不应求,企业招聘不到合格的人才。智联招聘一篇文章称,“从入门级的初级测试工程师到高级测试工程师以及项目Leader全线短缺”。
国家劳动和社会保障部也在3月份发布信息,称未来几年软件测试员这一职位,将会产生大量的市场需求。
国家应用软件产品质量监督检验中心副主任吴铸成告诉记者,国外小一些的软件企业,软件开发与测试人员之比基本上是1:1。微软公司是1:2, windows2000 操作系统在研发过程中甚至使用了250名项目经理、1700名软件开发工程师、3200名软件测试工程师。
但相较而言,中国的大型软件企业如神州数码、东软等,比例较高,达到了4:1。而其他一些企业,只有10:1。
群硕软件开发(上海)有限公司人事经理贾笑妍的一项重要工作,就是招聘测试人员。但是,由于大学教育的缺失以及企业自身积累的不足,“要找到资深的从业人员,很难。”即使被招收的人员,也要在上岗前先接收公司3个月的培训。
巨大的市场空缺,使得从初级软件测试工程师,到高级软件测试工程师,再到测试经理,这个在国外需要耗费10年左右的职场历程,在目前的中国,只需要3年甚至更短的时间。
“大家都在跑步上岗。我们的一个学员,甚至刚毕业就被一家公司聘为测试项目组负责人,要求他为公司建立一整套的测试规范。”周峰说。
而跑步上岗的结果,就是周峰的培训业务蒸蒸日上, 51testing 的会员达到了4 万多人,成为全国最大的软件测试虚拟平台。
软件测试火热的背后
软件测试工程师地位“翻天覆地”的变化,源自信息产业的发展以及软件企业自身、用户成熟度的不断加深。
“一方面,计算机使用越来越普及,越来越多的领域使用了计算机,特别是一些重要领域如国防、银行、金融、通讯、航天等,他们对软件质量要求很高。”郑人杰告诉记者,同时出现的一些问题,也引发了人们对软件质量的关注。 比如2002年欧洲载重10吨的阿丽亚娜5型火箭发射失败,最后证实是软件质量问题。而这导致了整个航天计划的推迟。同时,国内的一些银行金融系统,也会因软件质量问题不得不暂停营业。
吴铸成表示,在软件业高速发展的同时,软件质量问题越来越突出,甚至成为软件产品研发和信息化发展中的一个制约因素。
他表示,国外的软件测试经费,一般会占到整个项目费用的30%~40%。而中国的软件企业90%都是中小企业,产品研发要受资金、工期和质量三个方面的制约。在资金紧缺和工期紧迫的情况下,唯一可以挤压的就是质量。
“用户成熟度不断增加,对产品的个性化以及安全等方面有更高的要求。如果产品在使用中如果出现各种各样的问题,只能通过维护解决。那么市场就不会选择这个产品。”郑人杰说。
一旦将质量问题转移给维护,周峰称,就会忽略开发过程中需求分析——设计——编码阶段可能产生的Bug。这些Bug会逐渐放大,最后扩散到整个系统中,不仅很难寻找到,而且修复代价更高。
“也就是说,你在销售软件时获取的利润,会在之后的维护中逐渐被消耗殆尽。”周峰说。这对企业来说,显然不是一个明智的、可持续的选择。
群硕软件开发(上海)有限公司主要是针对欧美市场为客户提供嵌入式系统、工具软件、企业软件和用户解决方案等外包服务。“欧美客户成熟度较高,对产品质量要求更高。”贾笑妍说,为了满足客户对质量的高要求,他们从公司成立之初就开展了CMM(能力成熟度模型)的认证。