常见的软件的开发模型与测试模型

首先我们要了解软件的生命周期

一个软件从无到有都经历了什么

软件的生命周期:

        需求分析--------计划--------设计--------编码--------测试--------运行维护


开发模型


一、瀑布模型:

  • 瀑布模型是其他模型的基础框架,是线性顺序进行的。适用于需求比较稳定需求变化少的项目,是串行的

优点:

  • 强调开发的阶段性
  • 强调早期计划及需求
  • 强调产品测试

缺点:

  • 依赖于早期进行的唯一一次需求,不能适应需求的变化
  • 流程单一,开发中的经验教训不能反馈应用于本产品的过程
  • 风险性延迟至后期的测试阶段才显露,失去了早纠正的机会

瀑布模型的测试阶段处于软件实现后,这意味着必须在代码完成后,有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷之间遗留给用户

瀑布模型的缺点还是比较明显的,不能适应需求的变化,而且程序的风险显露的太晚,不能适应如今的需求


螺旋模型

  • 适用于规模大,复杂度高,风险大的项目

它不允许有一段独立的时间测试,测试必须跟随开发的迭代而迭代,因此回归测试的重要性不言而喻


优点:

  • 强调严格的过程风险管理
  • 强调各开发段的质量;
  • 提供机会检讨项目是否有价值继续下去

缺点

  • 引入非常严格的风险识别,风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。需要人员、资金和时间的投入

螺旋开发模型,对于过程中的质量和风险管理做得比较好,但是对于管理人员的水平要求较高,投资较大


增量、迭代

  • 增量是指一块一块来进行测试、而迭代是指先整体在细化

        例如画一幅人物画,用增量就是先画头,再画身体,再画手脚;而迭代是先描绘出一个整体的轮廓,勾勒出基本的雏形,然后再细化,着色

  • 增量通常和迭代混为一块,可以降低风险,和螺旋结构相似

增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发,能显著降低项目风险。在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。


敏捷

敏捷

1.敏捷宣言:“人与人沟通、轻文档、用户参与、拥抱变化”

  • 个体于交互重于过程和工具(强调“人与人的沟通”)
  • 可用的软件重于完备的文档(强调“轻文档”,对文档的依赖性不高)
  • 客户协作重于合同谈判(强调“用户参与”)
  • 响应变化重于遵循计划(强调“拥抱变化”)
     

scrum 

scunm是敏捷开发模型中比较流行的一种
scrum里面的角色 

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

迭代开发 
    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模型有一定的局限性,它仅仅把测试作为编码后的一个阶段,未在需求阶段就引入测试

软件测试W模型:


W模型增加了软件个开发阶段中应该同步进行的验证和确认活动。W模型由两个V模型组成,代表了测试和开发的并行关系

特点:

  • 需求、设计也要经过测试。
  • 测试与发开同步进行

优点:

  • 尽早地,全面的发现问题,早早找出缺陷所在。
  • 即时了解项目难度和测试风险,尽早制定措施,显著减少总体测试时间,加快项目进度。

局限性:

  • 需求、设计、编码等活动被视为串行的;

后续复习到的我会继续补充

发布了120 篇原创文章 · 获赞 37 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Zhengxinyu666/article/details/100086538