技术开发 频道

CMMI模型对软件测试技术的应用和扩充

   
    【IT168技术文章】在软件开发的瀑布模型中,测试是一个非常重要的工程阶段。从保证软件质量的角度来说,软件测试是软件质量保证工程的一个重要组成部分,也是最重要的质量保证手段。为了保证所提交的软件产品能够满足客户的需求,以及在使用中的可靠性,就必须对所开发的软件产品进行系统而全面的测试。基于这一需求,软件测试作为软件开发过程中的一个重要阶段,受到了软件开发组织的普遍重视,并形成了一整套比较成熟的测试理论和技术方法。

    然而,随着软件开发技术的不断发展,以及软件系统的规模和复杂性的不断增加,传统的软件测试理论和技术已经不能够很好地满足开发组织在产品质量、开发成本以及研制周期等方面的需求。本文主要从软件测试的组织和管理角度,阐述了CMMI模型规范对软件测试技术的应用和扩充,对于软件开发组织如何发展和完善软件开发中的测试工作进行了初步探索。

1、传统的软件测试技术和测试过程模型

    传统的软件测试只是作为软件开发过程中的一个特定阶段,并且只针对软件成品进行测试。如图1所示,在瀑布式开发过程模型中,测试是在编码完成之后和软件产品交付运行之前的一个工程阶段,所有的审查和评审活动都是针对软件成型产品而开展。这样的软件测试主要关注的是对软件的验收测试,在一定程度上保证了所提交的软件产品的质量。但是,全面质量管理的理论认为,软件的高质量是开发和设计出来的,而不是测试出来的。因此,仅仅依靠对软件产品进行测试的质量保证活动显然是远远不够的。随着软件开发过程模型和开发技术的不断发展,软件测试理论和技术也应该得到相应的发展。

                                      图1:软件测试在软件开发过程的瀑布模型描述中所处的地位

    随着全面质量管理思想在软件开发领域的应用,软件测试也由最初的只针对软件成品扩展到了针对软件半成品和过程产品的全过程测试。这是对软件测试的一种扩充。扩充后的软件测试贯穿了软件开发的全过程,包括从软件需求分析、软件概要设计、软件详细设计、编码、集成、验收等各个工程阶段。相应地,各阶段所开展的测试分别为需求测试、架构测试、详细设计测试、单元测试、集成测试以及验收测试等。这样的软件测试涵盖了软件开发的整个工程过程,对于识别和控制软件缺陷、提高软件质量起到了很明显的成效。

    从本质上来说,无论是传统的软件验收测试,还是面向整个开发过程的全过程软件测试,其所针对的测试对象都是软件产品、半成品或者过程工作产品,其所报告的测试结果也只是为了识别出现在阶段产品的缺陷,并加以纠正以支持下一阶段的开发工作。从软件开发组织的长远发展来看,仅仅做到这些还是不够的。软件测试作为软件质量保证的一种重要手段,不仅要能够识别软件产品的缺陷并加以改正,还应该在软件测试中结合统计技术方法,给出对软件开发过程的度量,从而支持组织对软件开发过程的评估和改进。由美国国防部和卡耐基-梅隆大学的软件工程研究所联合开发的CMMI模型,正是从软件过程改进和评估的角度出发,对软件开发中的测试技术给出了充分的支持和扩充。

0
相关文章