文章目录
前言
软件的生命周期可以分为需求分析——计划——设计——编码——测试——运行维护
针对软件生命周期,开发了一些模型供大家进行参考,不同的模型适用于不同的场景。
一、瀑布模型
瀑布模型的流程如下
开始——>需求分析——>计划——>设计——>编码——>测试——>结束
我们可以看到瀑布模型的特点:每个流程只执行了一次,并没有重复执行的情况。
而这样的开发流程就会导致可以运行的产品要经过很长的时间才能让人看到。
对于测试人员:前**面各阶段如果出现了问题并不能及时发现,只能等到测试阶段才能发现问题。失去了及早修复的机会。**如果开发人员技术不好可能会不断返工延误了产品上线时间。
瀑布模型适用场景:需求固定的小项目。
二、螺旋模型
我们可以先看看螺旋模型的示例图。
我们可以看到螺旋模型的特点:
- 在每个阶段都引入了风险分析和原型。 因此出现了一个新的职业:风险分析师。负责减少各阶段遗留的风险问题。
- 全过程风险管理
- 强调各开发阶段的质量。
对于螺旋模型,项目可能存在的风险与风险管理人员的水平直接挂钩,对于整个项目的成本提高了许多。
适用场景:规模庞大、复杂度高、风险大的项目。
三、增量模型和迭代模型
在增量模型中,引入了软件持续构建机制,对项目进行逐块建造。
迭代模型是对于项目进行反复求精的一个机制。
增量模型和迭代模型通常都是结合使用的。我认为下面的图片可以更好的对两个模型进行理解。
增量模型和迭代模型适用场景:大型项目,需求不明确。
四、敏捷模型
在瀑布模型中我们知道它较为“迟钝’的开发流程,而如今的软件变更是十分迅速的。为了帮助项目快速适应变更请求,就引入了敏捷模型。
在敏捷模型中,需求被分解成许多可以增量开发的小部分。敏捷模型采用迭代开发。每个增量部分都是在迭代中开发的。每次迭代都旨在小而易于管理,并且只能在几周内完成。⼀次为客户计划、开发和部署⼀个迭代。没有制定长期计划。
敏捷模型的特点:轻文档,轻流程,重目标,重产出
Scrum
Scrum模型是敏捷模型中较为流行的一种。在该模型中,一共有三个角色和五个会议。
三个角色分别为:产品经理、项目经理、研发团队
五个会议:计划会议、迭代计划会议、每日例会、演示会议、回顾会议
- 产品负责⼈负责整理user story,形成左侧的product backlog。
- 计划会议:产品经理讲解user story,对其进行估算和排序
- 迭代计划会议:项目团队对每一个story进行任务分解,并估计工时
- 每日例会:成员回答每日任务和计划
- 演示会议:迭代结束之后召开演示会议进行成果评估。
- 回顾会议:对本期迭代进行总结,制定改进计划用于下一次迭代。
在Scrum中测试人员的任务:由于轻文档的原因,测试人员尽量采用思维导图、探索性测试、自动化测试的方式进行测试。
五、测试模型
测试模型中比较具有代表性的就是V模型和W模型
V模型
如下图所示,明确的标注了测试过程中不同类型的测试。
它的缺点如瀑布模型一样,没有在需求阶段就接入测试,而是在编码之后才开始测试。