随着全面质量管理思想在软件开发领域的应用,软件测试也由最初的只针对软件成品扩展到了针对软件半成品和过程产品的全过程测试。这是对软件测试的一种扩充。扩充后的软件测试贯穿了软件开发的全过程,包括从软件需求分析、软件概要设计、软件详细设计、编码、集成、验收等各个工程阶段。相应地,各阶段所开展的测试分别为需求测试、架构测试、详细设计测试、单元测试、集成测试以及验收测试等。这样的软件测试涵盖了软件开发的整个工程过程,对于识别和控制软件缺陷、提高软件质量起到了很明显的成效。
从本质上来说,无论是传统的软件验收测试,还是面向整个开发过程的全过程软件测试,其所针对的测试对象都是软件产品、半成品或者过程工作产品,其所报告的测试结果也只是为了识别出现在阶段产品的缺陷,并加以纠正以支持下一阶段的开发工作。从软件开发组织的长远发展来看,仅仅做到这些还是不够的。软件测试作为软件质量保证的一种重要手段,不仅要能够识别软件产品的缺陷并加以改正,还应该在软件测试中结合统计技术方法,给出对软件开发过程的度量,从而支持组织对软件开发过程的评估和改进。由美国国防部和卡耐基-梅隆大学的软件工程研究所联合开发的CMMI模型,正是从软件过程改进和评估的角度出发,对软件开发中的测试技术给出了充分的支持和扩充。