V模型和W模型

本文介绍了软件生命周期模型中的迭代与增量概念,重点探讨了V模型和W模型。V模型强调开发阶段与测试阶段的对应关系,但测试介入较晚。而W模型则提出测试伴随整个开发周期,测试与开发并行进行,更利于早期问题发现。不过,W模型在缺乏文档的项目中难以实施,对需求和设计测试技术要求较高。

迭代和增量的理解

迭代就是:反复求精的过程,假如画一幅画,先画整体,再画每个部分细花加色,这就是迭代

 

增量:逐块增加,加入画一幅画,先画头,再画身体,再画手,这就增量

软件的生命周期模型

软件生命周期 同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期(软件生存周期)。软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考

V模型

V 模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。

V 模型的优点在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。

有点:

1每一个阶段都清晰明了,便于控制开发的每一个过程

2既包含单元测试又包含系统测试

缺点:

1测试介入的比较晚,对于前期的一些缺陷无从发现和修改

2测试和开发串行

 W模型

相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。

有点

1测试伴随着软件的整个生命周期,例如,在需求分析结束就可以进行需求分析测试

2测试于开发是并行独立进行的

缺点

1对有些项目,开发过程中根本没有文档产生,故W模型无法使用

2对于需求和设计的测试技术要求很高,实践起来很苦难

软件测试的常识

测试部门的组织结构

 

 小公司组织结构

 大公司组织结构

### 软件测试V模型介绍 V模型明确标识出在开发过程中一般应完成的测试级别,以及这些测试级别与代码生成前各项开发活动的对应关系。单元测试依据详细设计检查代码是否正确实现了单元的功能;集成测试依据概要设计检查各单元间的接口是否正确实现;系统测试依据需求规格检查软件是否作为一个整体有效运行;验收测试则是由用户代表依据用户需求检查软件是否真正满足用户的实际需要。不过,V模型把测试活动全部安排在编码活动之后,可能会导致需求开发设计阶段的错误直到编码完成之后才发现,不符合尽早测试的原则,会增加很多开发成本,以至于影响软件交付工期。实际工作中,需求经常变化,还会导致V模型步骤反复执行,返工量很大,灵活度较低[^2][^4]。 ### 软件测试W模型介绍 W模型是对V模型的一种改进,由两个V模型组成,分别代表测试开发的过程,表示测试开发是同时进行的。软件开发测试紧密结合,每个开发活动完成后就同步进行测试活动,即需求分析完成后进行需求测试;设计完成后进行设计测试;编码完成后进行单元测试;集成完成后进行集成测试;系统构建完成后进行系统测试;完成交付准备工作之后进行验收测试。W模型伴随着整个开发阶段,测试对象不仅是程序,需求设计等同样要测试,有助于尽早发现问题,找出缺陷所在。对需求的测试有助于了解项目的难度测试风险,尽早制定应对措施,加快项目进度。但W模型中开发活动是串行的,开发测试是线性关系,只有开发活动完成了才能进行测试活动,无法适应敏捷、迭代开发以及灵活的变更调整[^1][^2][^3]。 ### 对比 - **测试时间**:V模型将测试活动安排在编码之后;W模型中测试与开发同步进行,每个开发活动完成后就同步开展相应测试活动。 - **发现问题时间**:V模型可能使需求开发设计阶段的错误到编码完成后才发现;W模型有助于尽早发现问题。 - **灵活性**:V模型在需求变化时,步骤反复执行,返工量大,灵活度低;W模型开发活动串行,无法适应敏捷、迭代开发灵活变更调整。 - **对测试对象的覆盖**:V模型主要关注代码及后续的集成、系统验收方面;W模型测试对象不仅有程序,还包括需求设计等。 ### 代码示例 由于V模型W模型主要是概念性的流程模型,难以直接用代码体现,以下为一个简单示意的Python代码,表达W模型中开发测试并行的理念: ```python # 模拟需求分析需求测试 def requirement_analysis(): print("完成需求分析") def requirement_test(): print("进行需求测试") # 模拟设计设计测试 def design(): print("完成设计") def design_test(): print("进行设计测试") # 模拟编码单元测试 def coding(): print("完成编码") def unit_test(): print("进行单元测试") # 模拟W模型流程 requirement_analysis() requirement_test() design() design_test() coding() unit_test() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值