English

软件测试与净室技术

2001-10-10 来源:中华读书报 权彦杰 我有话说
信息技术的飞速发展,使软件产品应用到社会的各个领域;但随着软件规模的增大,复杂程度的提高,软件产品的质量成为人们共同关注的焦点。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险。

软件测试的目的是保证软件质量,满足客户的需求,降低软件开发成本和维护的成本。软件的质量越高,软件发布后的维护成本就越低。质量是由产品的可靠性、功能和上市时间决定的,是三者的平衡。软件的测试活动贯穿于整个开发过程的始终,对于产品进行系统、深入、广泛的测试和调试,试图找出产品中存在的所有问题和潜在问题;既测代码,也测设计;关注产品的规格、进度、资源以及产品开发后期的任何变化;直至代码完成。软件测试成本一般占软件开发成本的30%以上。

程序员的测试只是表面的测试,深层度的测试必须有专业的测试人员和质量控制工程师。在美国,测试人员每小时的薪金在18-25美元左右,一个具有两年工作经验的测试工程师的年薪能轻易达到6-7万美元;而一个程序员也不过如此。然而,国内普遍缺乏对软件测试的正确认识,往往带有偏见,甚至于不重视,最终是浪费资源、返工重做。尤其是在一些小型软件公司内部,根本不存在测试人员。此外,测试人员的地位和待遇也没有得到很好的重视。

微软公司从80年代后期一直非常重视软件测试,到90年代中期,微软公司软件开发人员和测试人员的比例达到了1:1;而同期硅谷的其他软件企业的软件开发人员和测试人员的比例在8:1或更高。目前,硅谷的软件公司开发人员和测试人员的比例基本上已经达到4:1或更低,有些公司已经达到1:1甚至1:2;而在微软内部的一些部门已经达到1:4。

在20世纪90年代初,IBM生产出运用Cleanroom(净室)方法开发的海量存储控制单元适配器,卖出了数千个单元,直到1997年产品超出使用寿命后,未收到任何反映Cleanroom微代码的故障报告。Cleanroom软件工程是一种采用统计学方法提供高质量软件的工程方法。在NASA、IBM、DoD、Ericsson、TI、美国空军等单位中得到了很好的应用,并使得软件组织性能得到很好的改善。

Cleanroom一词来自半导体制造业生产硬件的净室。它是在硬件生产过程中预防缺陷,而不是在事后排除问题和故障。净室理论的重点是通过设计和测试中的质量认证来保证软件开发的正确性。

净室理论建立于20世纪70年代末至80年代初,由IBM在80年代中期得以发展,并在1996年由MSU-SEI提出CRM(净室参考模型),实现了与CMM的统一。净室过程组合了形式化程序验证和统计过程控制,并采用正确性数学证明预防缺陷发生。净室过程是一种新的软件开发方法,它要求软件开发在管理方式和技术方法上作重大改变。CRM把净室对应到了CMM。但是CRM与CMM不是各自独立的,CMM为软件过程改进提供了一个良好的定义规范;而净室软件工程为软件的规范、开发、测试和认证提供了良好的理论基础和实践方法。CMM注重管理和组织;净室关注技术和工程实践。MSU-SEI的一项研究中已经证实:CRM和CMM是兼容的、相互支持的。

随着软件行业的飞速发展,如何充分利用国外的先进技术和理论、如何提高软件质量、如何缩短软件开发周期、如何降低软件成本是软件业共同关注的问题。但最终需要的,不仅仅是什么认证或证书,而是真正地实现软件过程和组织的高质量管理,并生产出高质量、零缺陷的软件产品。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有