软件测试是软件质量保证的重要手段之一,软件测试模型则是软件测试的工作框架,用于指导软件测试过程。今天,我们就来介绍几个基本的软件测试模型——V-模型、W-模型和前置测试模型。
一、V-模型:
在传统的瀑布型软件开发过程中,仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,对软件测试过程没有进一步的描述。V-模型针对瀑布模型对软件测试过程进行了补充。V-模型最早由已故的Paul Rook在80年代后期提出。在该模型中,测试过程被加在开发过程的后半部分,如下图所示。
在开发阶段一侧,先从定义业务需求开始,然后把需求转换为软件规格,再转换到概要设计和详细设计中,最后进行编码成为程序代码。在测试执行阶段一侧,先进行单元测试,然后是集成测试、系统测试,最后是验收测试,这些测试形成了软件测试的不同层次(级别),并与开发过程的相应阶段相对应。
二、W-模型:
软件开发过程各阶段都可能产生错误。据国外对一些大型软件系统的统计,需求分析与设计阶段产生的错误占64%,编码错误占36%。软件错误具有传递性,即需求分析产生的错误如果没有发现,会依次传递到设计和编码。软件错误的发现和解决具有放大性。据估计,在分析设计阶段产生的错误,如果在编码结束后的测试过程才被发现,其代价约为在分析设计阶段发现和解决错误的代价的10倍。如果该错误在产品交付使用后才发现和解决,则其代价将超过100倍。因此,测试工作越早进行,发现和解决错误的代价越小,风险越小。根据这个观点,Systeme Evolutif公司在V-模型的基础上,提出了W-模型,如下图所示。
图中,W-模型由两个“V”重叠而成。其中一个“V”表示开发过程,包括需求分析、规格书生成、软件设计、代码编程、软件构建、系统构建以及安装等阶段。另一个“V”表示测试过程,包括需求测试、规格测试、设计测试、单元测试、集成测试、系统测试以及验收测试等活动。软件测试的各项测试活动与开发过程的各个阶段相对应。
三、前置测试模型:
前置测试是一个将测试和开发紧密结合的模型,其示意图如下图。
前置测试模型将开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键活动。如果其中有些活动没有得到很好的执行,那么项目成功的可能性就会因此而有所降低。