软件开发过程模型
在软件开发的几十年实践中,人们总结了很多软件开发模型来描述和表示一个复杂的开发过程,如:
软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自己在其中的位置,从而发挥自身的价值。
瀑布模型
1、是线性模型的一种,在所有模型中占有重要地位,是所有模型的一个基础。
2、每一个阶段执行一次,按线性顺序进行软件开发
测试的切入点
测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露
瀑布模型优点
a、开发的各个阶段比较清晰
b、强调早期计划及需求调查
c、适合需求稳定的产品开发
瀑布模型缺点
a、依赖于早期的需求调查,不适应需求的变化
b、单一流程不可逆
c、风险往往延至后期才显露,失去及早纠正的机会
d、问题在项目后期才开始暴露
e、前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败
快速原型模型
在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求,通过逐步调整原型使其满足用户的要求,开发人员可以确定用户的真正需求是什么。第二部是在第一步的基础上开发出用户满意的软件产品
优点:
克服瀑布模型的缺点更好地满足用户的需求减少由于软件需求不明确带来项目开发风险。适合预先不能确定确切定义需求的软件系统的开发。
缺点:
不适合大型系统的开发(适合小型的、灵活性高的系统)。前提要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。
螺旋模型
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,瀑布模型沿着螺旋线旋转,即在坐标的四个象限上分别表示了4个方面的活动,如图所示:
优点
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
缺点’
采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间