软件开发模型和软件测试模型

Posted 你这家伙

tags:

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

随着软件工程学科的发展,人们对计算机软件的认识逐渐深入。软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件生命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。软件工程还包括很多技术性的管理工作,例如过程管理、产品管理、资源管理和质量管理,在这些方面也逐步地建立起了标准或规范。

软件的生命周期

软件的生命周期是指从软件产品的设想开始一直到软件不在使用而结束的时间
软件的声明周期可以分为六个阶段:需求分析——分析/计划——设计——开发——测试——运行维护

软件开发模型

瀑布模型

瀑布模型是所有其他模型的基础框架,瀑布模型的每一个阶段只执行一次,是线性顺序进行的软件开发模式

瀑布模型适用场景:适用于需求稳定的项目;项目前期的风险或者错误后期测试的时候才发现,因为测试只是发生在编码之后,那么很多问题就会在测试之后甚至更后的阶段才发现,这就会导致前面阶段的工作大面积返工,也就是所说的“集成之日就是爆炸之日”

螺旋模型

一般在软件开发初期需求不明确的情况下,采用渐进式的开发模式,螺旋模型就是渐进式的开发模型之一

适用场景:适用于规模庞大,复杂度高,风险大的项目,因为这种迭代开发的模式给软件测试带来了新的要求,在每一个阶段的时候都会进行风险测评,它不允许有一段独立的测试时间和阶段,但是缺点就是因为风险测评需要专业的人员进行评估,那么就需要花费一定成本

迭代模型和增量模型

目前来说迭代模型和增量模型是放在一起来使用的

比如现在有A B C D个模块的功能需要在两个周完成:

如果使用迭代的方式

  • 第一周完成A B C D 四个模块的基础功能,搭好基础框架(如四个模块之间的冲突和联系)
  • 第二周完成A B C D四个模块的后续功能,做好功能的完善

如果使用增量的方式

  • 第一个周完成A B两个模块的功能
  • 第二个周完成C D两个模块的功能

这两个模型的结合之后他的项目的风险防控能力比较强,其实两个模型比较而言,迭代的方式更能够降低风险,因为在第一个周的时候就已经把四个模块的联系和区别已经完善了,而增量模式是分开完成,那么完成A B之后,再去完成C D的这个时候才发现C D和A B之间有联系或者冲突,此时就会产生风险

敏捷开发模型

敏捷开发适用于需求随时变化的项目

scrum

scrum角色
首先scrum是由product owner(产品经理),scrum master(项目经理)和team(研发团队组成的)

  • product owner 主要复杂user story(用户故事),定义其商业的价值,对其进行排序,制定发布计划,对产品负责
  • scrum master 主要负责召开各种会议,协调项目,为研发团队服务
  • 研发团队由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品

迭代开发

与瀑布不同,scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的
团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。

scrum基本流程

  • 产品负责人负责整理user story,形成左侧的product backlog。
  • 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
  • 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
  • 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
  • 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
  • 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果

敏捷中的测试
因为敏捷测试它是轻文档,轻流程,重目标,重产品的

  • 那么测试人员那就要不停的找Bug,所以心态很重要
  • 测试人员不能依赖文档,测试用例作用减弱,更多的采用思维导图、探索性测试(强调自由度,设计和执行同时执行,根据测试结果不断调整测试计划)、自动化测试
  • 敏捷讲求合作,在敏捷项目组中,测试人员应该更主动点,多向开发人员了解需求、讨论设计、一起研究Bug出现的原因

软件测试模型

V模型

  • V模型特点:是瀑布模式的一种变种,V的左边阶段和右边测试阶段是一一对应的关系,并且是右边每一个测试阶段的依据
  • 缺点:项目前期的风险和错误到后期测试阶段才发现,会失去问题及时纠正的机会

W模型

  • W模型特点:测试在项目一开始就介入(需求阶段介入),有利于前期风险的及时发现
  • 缺点:它也是串行的过程,不能用于敏捷开发,不适用于需求变化的项目

以上是关于软件开发模型和软件测试模型的主要内容,如果未能解决你的问题,请参考以下文章

软件测试模型

测试模型

温故知新常见的开发和测试模型

作业九—总结

时间序列模型在R软件中的实现

软件项目管理 3.5.敏捷生存期模型