1.开发模式
1.1瀑布模型
瀑布模型是线性模型的一种,在所有模型中占有重要地位
每一个阶段执行一次,按线性顺序进行软件开发
测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充足,很多问题到项目后期才暴露
步骤:
需求分析-设计-编码-实现-软件测试-完成-维护 从维护需求变更到软件测试
优点:
开发阶段,各个阶段比较清晰,强调早期技术及需求调查,适合稳定需求的产品开发
1.2快速原型模型
在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。
第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求,。通过逐步调整原型使其满足用户的要求,开发人员可以确定用户的真正需求是什么。
第二步是在第一步的基础上开发出用户满意的软件产品
步骤:
快速分析-需求说明-构造原型-原型-运行原型-评价原型-修改意见
优点:克服瀑布模型的缺点,更好的满足用户的需求并减少由于软件需求不明确带来的项目开发风险,适合预先不能确切定义需求的软件系统的开发
缺点:不适合大型系统的开发,前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新
1.3螺旋模型
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转
具体如下:
制定计划-风险分析-实施开发-客户评估
螺旋模型优点:
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估
缺点:
采用螺旋模型需要具有相当丰富的风险评估经验和专业知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失,过多的迭代次数会增加开发成本,延迟提交时间。
2.测试模式
随着测试过程的管理和发展,测试人员通过大量实践,从而总结出不少测试模型,如常见的V模型,W模型,H模型等,这些模型与开发紧密结合,对测试活动进行了抽象,成为了测试过程管理的重要参考依据。
2.1V模型
过程:
需求分析-概要设计-详细设计-编码-单元测试-集成测试-系统测试-验收测试
单元测试 集成测试 系统测试 验收测试
优点:包含了底层测试和高层测试,清楚的标识了开发和测试的各个阶段,自上而下逐步求精,每个阶段分工明确,便于整体项目的把控。
缺点:自上而下的顺序导致了,测试工作在编程之后,就导致错误不能及时进行修改,实际工作中,需求经常变化,导致V模型步骤,反复执行,返工量很大,灵活度较低
2.2W模型
W模型优点:开发强调测试伴随着整个软件开发期间,而且测试的对象不仅仅是程序,需求和概要设计同样要测试,更早的接入测试,可以发现开发初期的缺陷,那么可以用更加低的成本进行缺陷修复,同样是分阶段的工作,便于控制项目过程
W模型缺点:依赖于软件开发和软件测试依然保持一前一后的线性关系,依然无法支持迭代,自发性和需求等变更调整,对于当前很多项目,在执行的过程中根本不产生文档,那么W模型基本无法适用
2.3H模型
H模型优点:开发的H模型揭示了软件测试除测试执行外,还有很多工作;软件测试完全独立,贯穿整个生命周期,且与其他流程并发执行,软件测试可以根据被测物的不同而分层次,分阶段,分次序的执行,同时也是可以被迭代的。
H模型缺点:管理型要求高,由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制;H模型要求能够很高的定义每个迭代的规模,不能太大也不能太小;