在软件质量体系中,为了更好地指导软件开发的全部过程、活动和任务,人们提出了软件开发模型。典型的开发模型有:边做边改模型(Build-and-Fix Model)、瀑布模型(Waterfall Model)、快速原型模型(Rapid Prototype Model)、增量模型(Incremental Model)、螺旋模型(Spiral Model)、演化模型(Incremental Model)、喷泉模型(Fountain Model)、智能模型(四代技术(4GL))、混合模型(Hybrid Model)。但是所有的开发模型都没有把软件测试列进去,这样就无法对软件测试过程进行很好的指导,而随着软件测试的发展,软件测试成为软件质量保证的重要手段之一,软件测试也慢慢地受到公司的重视,于是人们就希望软件测试也像软件开发一样,由一个模型来指导整个软件测试过程。
这里主要介绍一下软件测试质量模型之瀑布模型。
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护六项基本活动,其过程是将上一项活动接收的工作对象作为输入,当该项活动完成后会输出该项活动的工作成果,并将该项成果作为下一项活动的输入。该模型规定这六项基本活动自上而下、固定相互衔接的次序,如同瀑布流水,逐级下落。从本质上讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从需求分析直到产品发布和维护。如果在其中某个阶段有信息未被覆盖或有问题,那么就得返回到上一个阶段,并对这些阶段进行适当的修改才能进入下一个阶段,这样每个阶段都会产生循环反馈,开发过程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来,瀑布模型如图2-3 所示
瀑布模型的核心思想是按工序将问题简化,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。
瀑布模型的优点如下:
1)为项目提供了按阶段划分的检查点;
2)当前一阶段完成后,只需要关注后续阶段;
3)可在迭代模型中应用瀑布模型,如图2-4 所示;
增量迭代应用于瀑布模型,迭代1 解决最大的问题,每次迭代产生一个可运行的版本,同时增加更多的功能,但每次迭代必须经过严格的质量和集成测试。
瀑布模型有以下缺点:
1)项目中各个阶段之间极少有反馈;
2)只有在项目生命周期的后期才能看到结果;
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段;