测试市场方兴未艾
作为IT测试的重要组成部分,软件测试近年来一直稳定增长,尤其是在电信、银行、军 工、航天等领域。在软件业较发达的国家,软件测试不仅早已成为软件开发的一个有机组成 部分,而且在整个软件开发的系统工程中占据着相当大的比重。与此同步的是,软件测试市 场已成为软件产业中的一个独特市场。
据赛迪顾问统计,中国软件市场2004年实现销售额479.10亿元,同比增长19.9%。从细分 产品市场看,2004年应用软件仍以63.6%的比例占据中国软件市场的主要份额。在测试软件所 属的中间软件领域,同比增长43.4%,同时在软件市场中的份额上升至10.5%,比2003年提高 了1.8个百分点。”
在软件测试市场中还有一股值得关注的新“势力”——测试外包。因为在软件外包中, 软件测试的门槛相对较低,是比较容易进入的。据了解,国内这两年已经出现了一些专门提 供软件测试服务的公司,有些软件外包测试公司的测试人员数量甚至已达数百人,而且未来 两三年内仍将继续快速发展。
赛迪顾问的数据显示,2004年,中国软件外包服务市场规模达到6.33亿美元,比2003年 同期增长了34.6%。在2005-2009年这五年内,赛迪顾问预测,中国软件外包服务市场将以 48.4%的年均复合增长率高速增长,处于市场快速扩张阶段。测试外包市场具备相当的发展潜 力。
IDC公司研究成果显示,在2003年全球通信测试产品市场销售额衰退之后,2004年全球通 信测试市场重新恢复增长,并有望在今后几年保持持续增长的局面。IDC预计,从2003到2008 年全球通信网络测试产品市场的年复合增长率将达到11.0%。
与国外相比,中国市场的增长更为强劲。IDC指出,2003年中国的通信网络测试产品市场 增长率为12.3%,预计2004到2008年累计市场规模将达到29.5亿美元,发展速度明显高于全球 市场。
渐受关注的第三方测试
这里所说的第三方测试,是指独立于软件公司自身测试的测试。所谓的第三方,是指处 在软件公司和软件用户之间的一方。第三方测试机构也是一个中介的服务机构,它通过自己 专业化的测试手段为客户提供有价值的服务。但是第三方测试机构提供的服务不同于公司内 部的测试,因为第三方测试机构的测试除了发现软件问题之外,还有对软件进行科学、公正 的评价的职能,这就要求第三方测试机构要保持公正、廉洁、客观、科学、独立的态度。
第三方测试机构存在的价值,主要由软件公司、软件用户以及国家的公正诉求所决定。 对于软件开发商来说,经过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软 件错误,帮助开发商提升软件的品质,而且可以对软件有一个客观、科学的评价,有助于开 发商认清自己产品的定位。对于行业主管部门以及软件使用者来说,第三方测试机构独立公 正的地位有助于对被测软件进行客观公正评价,帮助用户选择合适、优秀的软件产品。而对 于一些信息工程项目来说,在验收之前经过第三方机构的严格测试,可以最大程度地避免信 息行业的“豆腐渣”工程。
此外,经过国家认可的第三方测试机构还为国家软件产品的质量监督抽查提供独立公正 的测试支持。
由此可见,第三方测试机构的测试工程师面对的是各种各样的系统,而且大多和具体的 业务相关。这就要求他们不仅有宽广深厚的软件技术功底、测试技术功底,而且需要积累行 业知识和经验,并且要融会贯通。
目前,我国涌现了很多的第三方测试机构,虽然他们处于不同的发展阶段,但是他们的 存在必将对我国整个软件产业的健康发展起到巨大的促进作用。
出场人物:
Vito公司CEO 张亚东
Vito公司CIO 谢常君
HAL咨询公司资深顾问 郭沈贤
本故事纯属虚构,请勿对号入座 Vito公司CIO谢常君从春节长假后上班开始就一直很烦恼,因为公司项目总监刘光良向他 提出了抗议——公司在伦敦项目中使用的项目管理系统出现一个不大不小的问题,虽然不是 导致严重影响公司业务的大问题,但是谁敢保证以后也不会呢?谢常君对刘光良的抗议表示 理解的同时也觉得非常郁闷。原来,这套项目管理系统是两年前由谢常君带领几个人自行开 发的,当时按照Vito公司的实际情况量身定制了这套软件。它也经历过了Vito公司大大小小 不少项目,得到了公司上下的交口称赞,谁知这次一用于国际项目中就露了怯。
谢常君就这事向HAL咨询公司资深顾问郭沈贤小小地发了一顿牢骚,郭沈贤听完微微一 笑,说:“我说什么大不了的事情呢,现在国际上成熟的软件都是经过了成百上千乃至上万 次测试的,你们呢?相信100次都不到,所以使用过程中出现问题不奇怪。”谢常君一怔, 问:“要那么多次测试吗?用人工来测得多少人呀?”“现在怎么还会那么老土,当然要借 助专业的软件测试软件啦!”郭沈贤笑着说,“不光是软件质量,网络质量也需要专业的测 试工具来保障。让我给你讲讲软件测试和网络测试是怎么回事吧。”
和国外已成规模的测试相比,我国的IT测试已经落后了。在国外凡是从事软件开发和生 产的企业测试人员至少是开发人员的3/4。像微软这些企业已经达到了1∶1。
网络已经成为人们工作和生活的一部分,它的可靠性、高可用性将直接影响企业效益。
走向应用的网络测试
自网络通信产品诞生起,网络测试技术就成为通信工业中不可或缺的部分。伴随着通信 产品的更新换代和网络构建技术的发展,网络测试技术也经历了几个阶段的发展,其技术主 体已经逐渐趋于成熟。
在1990年以前,网络产品较少,并且网络架构比较简单,网络测试仅限于验证网络设备 和网络的功能,即现在人们常说的功能测试。可以说上世纪90年代以前基本上是网络产品和 数据测试仪表的“史前年代”。
1990年以后,随着Hub等产品的运用,网络产品发展加快,先后出现了功能强大的性能测 试仪表,解码分析仪表和一致性测试软件/仪表等一系列重要的测试产品。1990年至今,是网 络测试技术发展的黄金时期,这期间,关于网络设备、网络性能和网络应用的测试技术基本 形成了比较完整的体系。
而国内的网络测试真正得到重视始于1998年,其中一批有远见的数据通信厂商和网络测 试技术研究人员开始吸收和引进国际上先进的测试方法和测试设备,并培养出一批网络测试 人员。但由于国内网络测试发展的时间并不长,技术水平距国际先进水平尚有一定的差距。
目前,国际测试市场发展到了一个新的阶段,其发展的走势正面临着一些比较大的变 革。其中出现几个比较值得注意的动向:
1.网络测试的对象从网络层向应用层过渡
类似于丢包率、延迟等指标的测试现在已经做得很纯熟了。虽然这样的测试很重要,但 我们需要想一下这个问题: 测试的最终目的是为了什么? 答案其实很简单, 就是要确保网络 能够承载各种各样的应用。最终用户可能不会关心某种条件下设备的丢包率,他可能更在意 诸如“能否开展VOD业务,能有多少个用户同时上线”等问题。回答这些问题的最好办法是对 网络上加载不同应用的情况进行测试。
从某种意义上说,测试应用才是网络测试的真正意义所在。目前我们已经看到很多应用 测试已经如火如荼地开展起来了,比如话音业务、网站业务等等。这将成为一个长久的过 程,将会不断发展下去。
2.测试重点将逐渐转向可靠性测试
很多用户持有这样的观点:国外的网络产品比国内的更稳定,如果价格允许,将优先考 虑采用国外的网络产品。我们不能去指责用户的观点,但有个问题需要我们思考:为什么我 们的很多产品性能和功能已经相当完备了, 用户还是不大敢用?
对用户来说,网络可靠性测试的重要性甚至超过性能测试。网络可靠性的提高同样需要 网络测试来促进,而不能仅仅寄希望于设计和开发。目前国内对这方面的测试方法研究还比 较少,但是可以预见,网络可靠性测试将成为网络测试技术发展的主要趋势之一。
3.网络的安全性测试将得到重视
去年几次重大的网络病毒事件,为人们敲响了警钟。以前网络的安全性主要是从终端的 安全做起的,然后是防火墙,现在要集成进路由器了。这是个很好的趋势,只有网络中间的 中转设备(至少要在各网络的入口设备上)具备安全能力,安全问题才有可能得到解决。安全 功能的转移给测试工作带来很多新的课题, 如安全和性能之间如何平衡等。这个发展趋势是 必然的,也是很有挑战性的,目前还有待深入的研究。
网络是信息系统信息共享、信息传递的基础。建立高效、稳定、安全、可靠、互操作 强、可预测、可控的网络是网络研究的最终目标,而网络测试是获得网络行为第一手指标参 数的有效手段。
随着用户对网络依赖程度的增加,网络的正常运行变得越来越重要,用户对网络可用 性、稳定性、响应性(运行效率)等提出了越来越高的要求。随着网络应用系统越多,网络 的功能系统越复杂,出现问题所带来的损失也就越大,网络性能的问题最终会妨碍企业生产 效率的提高,并影响到客户服务。
导致网络应用性能降低的因素是多方面的,而网络测试正是一种可以有效提高网络系统 及网络应用运行质量的方法。在测量和测试的基础上建立网络行为模型并用模拟仿真的方法 建立理论到实际的桥梁是理解网络行为的有效途径。
软件测试与开发并行
软件测试是伴随着软件的产生而产生的。早期的软件开发过程中,测试的含义比较狭 窄,将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成 这部分的工作。对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完 成时才进行测试。
直到1957年,软件测试才开始与调试区别开来,作为一种发现软件缺陷的活动。由于一 直存在着“为了让我们看到产品在工作,就得将测试工作往后推一点”的思想,测试仍然是 后于开发的活动。潜意识里,我们的目的是使自己确信产品能工作。
到了20世纪70年代,尽管对“软件工程“的真正含义还缺乏共识,但这一词条已经频繁 出现。1972年,在美国北卡罗来纳大学举行了首届软件测试正式会议。1979年,Glenford Myers的《软件测试艺术》(The Art of Software Testing)中作出了当时最好的软件测试 定义:“测试是为发现错误而执行的一个程序或者系统的过程。”
直到上世纪80年代早期,“质量”的号角才开始吹响。软件测试定义发生了改变,测试 不单纯是一个发现错误的过程,而且包含软件质量评价的内容。软件开发人员和测试人员开 始坐在一起探讨软件工程和测试问题。制定了各类标准,包括IEEE(Institute of Electrical and Electronic Engineers)标准、美国ANSI(American National Standard Institute)标准以及ISO(International Standard Organization)国际标准。1983年, Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指 出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度 量。”Myers和Hetzel的定义至今仍被引用。
上世纪90年代,测试工具终于盛行起来。人们普遍意识到,工具不仅仅是有用的,而且 要对今天的软件系统进行充分的测试,工具是必不可少的。
到了2002年,Rick和Stefan在《系统的软件测试》(Systematic Software Testing)中 对软件测试做了进一步定义:“测试是为了度量和提高被测软件的质量,对测试件进行工程 设计、实施和维护的整个生命周期过程。”这些经典论著对软件测试研究的理论化和体系化 产生了巨大的影响。
近20年来,随着计算机和软件技术的飞速发展,软件测试技术研究也取得了很大的突 破。测试专家总结了很好的测试模型,比如著名的V模型、W模型等,在测试过程改进方面提 出了TMM(Testing Maturity Model)的概念,在单元测试、自动化测试、负载压力测试以及 测试管理等方面涌现了大量优秀的软件测试工具。
虽然软件测试技术的发展很快,但是其发展速度仍落后于软件开发技术的发展速度,使 得软件测试在今天面临着很大的挑战,主要体现在以下几个方面:
1.软件在国防现代化、社会信息化和国民经济信息化的作用越来越重要,由此产生的测 试任务越来越繁重。
2.软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题。
3.面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步。
4.对于分布式系统整体性能还不能进行很好的测试。
5.对于实时系统来说,缺乏有效的测试手段。
6.随着安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成为世界 性的难题。
