软件测试:孤独的舞者

发表于:2008-02-03来源:作者:点击数: 标签:软件测试
软件作为一种纯数字化商品,在没有权威的第三方进行监督认证的情况下,软件供应商和用户在软件产品是否达到目标 需求 的问题上,往往各执一词。 关于软件 质量 标准和认证,国内虽然制定了有限的几个软件技术标准,但无法从根本上对软件这种特殊商品实施有效
软件作为一种纯数字化商品,在没有权威的第三方进行监督认证的情况下,软件供应商和用户在软件产品是否达到目标需求的问题上,往往各执一词。

  关于软件质量标准和认证,国内虽然制定了有限的几个软件技术标准,但无法从根本上对软件这种特殊商品实施有效的质量监督和认证。在国际上通行的做法是,软件的质量标准和认证工作,由独立的软件测试机构来完成。这些测试机构的行为是市场化的,但因为测试能力和权威性将直接关系到它们的市场影响力,所以他们的测试行为极其严格,力求将垃圾软件扼杀在摇篮中。

  樱花西街一座不太显眼的大厦里,迈捷实验室技术总监武友文从软件测试说起,以第三方的视角分析了制约国内软件发展的瓶颈,发表了不同意见,提出了自己的建议。

  为什么需要软件测试

  “我是清华大学77级的学生,在国内做了3年软件开发,随后就去了加拿大读研,专业是网络协议测试。毕业后我在北电、惠普等公司做软件质量的控制和测试项目。”武友文轻声细语地说着自己的经历,“1998年我回到国内,在对金融电信行业进行考察时,发现他们买的硬件设备都是顶级的,可惜软件应用这一块跟不上,导致了硬件功能得不到充分的发挥。硬件设备低下的运行效率,造成了资源与资金的隐性浪费。不客气地说,实际上,是国内软件在拖硬件的后腿。”

  在武友文回国期间,国内一些软件开发商通过朋友的引见,邀请武友文与公司研发人员交流时,武友文发现当时国内的软件开发普遍存在“重开发,轻测试”的现象,常常是在项目开发完成之后,才发现软件有严重缺陷问题,不得不全部推倒从头再来。推倒重来则意味着前期人、财、物的投入全部浪费了,即大大增加了软件的开发成本,又会因为超出了客户的委托时间,付出的代价就更高了。

  武友文以自己在国际公司的实践经验,一再强调,软件测试是软件开发过程中的一个重要步骤,或者说测试应该贯穿在软件开发过程的每一个阶段。软件测试所起到的作用就是:能够确保在软件开发的过程中,随时发现问题,方便开发人员及时修改。

  在国内对于消费类软件来说,经常出现一些已经推向市场的产品由于被发现有严重缺陷而导致大量退货的局面。而对于定制的行业软件来说,则是一再的返工、绵绵无绝期的修改和维护,既拖死了软件提供商,也耽误了客户的正常业务。

  这一系列现状使用户对国内软件提供商失去信心,因此我们经常听到有人抱怨:国内软件没法用,对于正在成长的国内软件市场来说,这一结论无疑是灭顶之灾。

  武友文告诉记者:“因为国外软件的成熟度高,开发商对软件质量的控制力度很强,所以国外软件测试外包的不是太多;不过在国外有些软件需要比较专业的质量认证,例如软件的本地化测试,就必须借助第三方机构来完成了。拿微软来说吧,微软的产品要翻译成欧洲的6种文字,如果是自己来做这些本地化测试工作,成本就会很大,所以外包给别的公司来做就很合适;另外还有一种情况也会外包的,例如对一些大型软件的测试,不一定每家开发商都有专业的测试队伍和测试的工具。从成本上来说,某些软件测试工作外包是经济的。相反,国内软件的成熟度比较低,软件开发商基本没有能力来做测试,我指的是专业的、职业的测试,所以从目前来说,国内软件测试的市场空间很大。”

  凭着对软件测试行业的深刻理解,武友文意识到要解决国内软件应用滞后于硬件的问题,就必须提高国内软件的质量,而要提高软件质量,就必须加强软件开发过程中的测试力量,而独立的第三方测试机构正是一个市场空白点,于是专业从事软件测试的迈捷实验室就应运而生。

  软件测试如何做

  “迈捷成立之初,主营业务只是受客户委托,测试已经开发完毕的软件,更多的是事后验收工作,后来我们慢慢的从事后测试,向质量控制上转型,例如开始介入软件开发前的需求评审,以及开发时的文档评审、代码走查等等。我们最终的发展方向就是做软件监理,但是不能不承认,目前我们与国际上通行的软件监理还有一定的距离。”说到迈捷的发展方向,武友文沉稳中略显激昂。

  武友文接着说:“美国实际是在软件规模的扩大和结构的不断复杂的情况下,开始建立软件测试制度和规矩的。我想美国在软件开发的起步阶段,也不会自己主动去做,是在现实的压力下,才去实施这些流程规范的。国内一定要有这种意识,意识到软件开发过程中一定要引进这些规章制度。另外,意识到了还不行,一定要实践。

  软件测试现状

  武友文向记者提供的一个市场调查报告说明,目前国内做软件测试的机构,还没有发现与迈捷公司商业形态相同的企业,只是有某些政府部门下属的机构做一些软件产品验收工作,但完全商业化操作的机构没有;另外就是开发商临时承接的一些软件测试项目。当记者问到迈捷实施软件测试时遇到的最大障碍是什么时,武友文很爽快的回答到: “一是客户的意识,二是我们派出的项目实施人员的素质问题。”

原文转自:http://www.ltesting.net