一、瀑布模型
瀑布模型是线性模型的一种,在所有模型中占重要地位,是所有模型的一个基础
瀑布模型每个阶段执行一次,按照线性顺序进行开发
优点:
1、开发的各个阶段都比较清晰
2、当前一阶段执行完后,只需要关注后续阶段
缺点:
1、过于依赖早期需求调查,不适应后期需求变化
2、往往缺陷延至后期才会显露,不利于较早纠正缺陷
3、前期未发现的缺陷会传递并扩散到后期的阶段,导致项目失败
特点:
1、强调产品的定义
2、各个阶段独立,没有交叉
3、瀑布模型无法回调
二、V 模型
需求分析:用户需求、业务需求、需求规格说明书
概要设计:系统架构、模块划分、模块与模块之间的接口
详细设计:模块内部的代码逻辑
编码:实现以上的设计
单元测试:测试软件最小的底层代码,一般是类、函数、集合
集成测试:测试模块与模块结合在一起,对连接模块的接口进行测试
系统测试:测试软件的功能是否满足需求,业务流程是否完整流畅
验收测试:检查产品是否满足用户需求
优点:
1、开发的各个阶段都比较清晰
2、包含了底层测试,又包含了高层测试
3、分阶段的工作,便于控制项目过程
缺点:
1、v模型的缺点就是其自身顺序所导致的,到了测试阶段,程序已经完成,错误已经产生,很多前期的错误到测试阶段才被发现,甚至无法发现,往往无从修改
2、实际开发过程中,在需求阶段 很难把用户的需求完全明确下来,因此,在需求变更的时候,会导致阶段反复,而且都要重复需求、设计、编码、测试等过程,返工工作量大,灵活性较低
三、W 模型
优点:
1、测试伴随整个软件开发周期,测试的对象不仅仅是程序,还有需求和设计
2、测试更早的介入,可以更早的发现和更好的解决缺陷
3、分阶段的工作,便于控制项目过程
缺点:
1、对于当前有很多项目,在执行过程中根本不产生文档,那么W模型基本无法使用
2、使用起来技术复杂度很高,对于需求和设计的测试要求很高实践起来困难