做了5年测试,第一次知道软件开发模型有这么多种

Posted 测试baby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做了5年测试,第一次知道软件开发模型有这么多种相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

01软件的生命周期

软件的生命周期是指从软件产品的设想开始到软件不在使用而结束的时间。

软件的生命周期分为6个阶段,即需求分析、计划、设计、编码、测试、运行维护。

02瀑布模型

在这里插入图片描述

瀑布模型是最早出现的软件开发模型,是所有其他软件开发模型的基础框架。与软件的生命周期不同的是,它缺少了软件运行维护阶段。
描述: 每个阶段都只执行一次,因此是线性顺序的软件开发模型。
正是由于每个阶段只执行一次,所以前面的需求分析和设计尤为重要。

优点:

  • 为项目提供了按阶段划分的检查点,强调开发的阶段性。
  • 强调早期的计划及需求调查。
  • 强调产品测试。

缺点:

  • 在各个阶段之间极少有反馈。
  • 只有在项目周期的后期才能看到结果,所以风险往往至后期的测试阶段才显露,因此失去了及早的纠正过程。
  • 单一流程,开发中的经验教训不能反馈应用于本产品的过程。

适用项目: 需求比较明确且变更很少的项目。

03螺旋模型

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模型。螺旋模型是渐进式开发模型的代表之一。
在这里插入图片描述

描述: 以原型为基础沿螺线旋转、每转一圈都经过计划/风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得到最终版本。

螺旋模型沿着螺旋线进行若干次迭代,图中的四个象限代表了一下活动:

(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

(2)风险分析:分析评估所选方案,考虑如何识别和清楚风险;

(3)实施工程:实施软件开发和验证;

(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟着开发的迭代而迭代,所以回归测试的很重要。

优点:

  • 强调严格的风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适用于规模庞大,风险大的项目。
  • 强调各个开发阶段的质量。
  • 这种的开发模式会提供机会探讨项目是否有价值继续下去。

缺点:

  • 由于引入了非常严格的风险识别、风险分析和风险控制,将会大大消耗人力、资源,如果严重的影响了项目的利润,风险分析将毫无意义。
  • 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。
  • 软件建设周期长,但软件技术发展比较快,所以可能会和当前的技术水平有较大的的差距,无法满足当前用户需求。

适用项目: 对新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。

04迭代模型

在这里插入图片描述

开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,迭代模型是类似小型的瀑布式项目。

每一个迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。

描述:

  • 一次迭代过程包括了所有软件开发流程。
  • 每一次迭代均产生一个可发布的产品。
  • 该产品为最终产品的一个子集。

适用项目: 适合于事先不能完整定义产品的所有需求,计划多期开发的项目。

05增量模型

在这里插入图片描述

描述:

  • 采用随时间进展而交错的线性序列。
  • 每个序列产生一个可发布的增量。
  • 每一个增量产生一个可操作的产品。
  • 第一个增量是核心产品。

优点: 开始时不用投入大量人力资源,可以事先推出核心产品以稳定用户,可以有计划的管理技术风险。

缺点: 需要开放式体系结构,可能会产生设计效果差、开发效率低的情况。

适合项目: 需求经常发生改变的软件开发过程。

增量和迭代模型的区别:

增量是逐块建造的概念,例如:画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……。

迭代是反复求精的概念,例如:同样是画人物画,我们可以先画整体轮廓,在勾勒出基本雏形,再细化、着色……。

06敏捷模型

描述: 敏捷模型是一种轻量、高效、低风险、更强调团队协作和沟通的开发方式,适合于中小型开发团队,客户需求模糊或多变。

特点:

  • 强调人与人之间的沟通。

  • 轻文档(弱化文档,但不是不需要文档)

  • 客户需要全程参与

  • 需求可以的变化

给大家推荐下我自己建的软件测试交流学习群: 902061117 ,群里都是搞软件测试的,如果你正在学习测试 ,小编欢迎你加入,大家都是测试党,群内不定期分享干货(都是软件测试相关的),包括我自己整理的一份2021最新的进阶自动化资料。

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注我的微信公众号【伤心的辣条】免费获取~

送上一句话:

世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

在这里插入图片描述

好文推荐:

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

测试岗反复跳槽,跳着跳着就跳没了…

软件测试人员该学习 Python 的七个理由

App公共测试用例梳理

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

35岁之后软件测试工程师靠什么养家?我能继续做测试!

以上是关于做了5年测试,第一次知道软件开发模型有这么多种的主要内容,如果未能解决你的问题,请参考以下文章

在字节跳动做了5年软件测试,12月无情被辞,想给划水的兄弟提个醒

在字节跳动做了5年软件测试,12月无情被辞,想给划水的兄弟提个醒

在阿里巴巴做了5年软件测试,12月无情被辞,想给划水的兄弟提个醒

在深圳做了5年软件测试,到头来啥也不是~

软件测试你必须要知道的那些事儿

“软件测试”就需要这么学!