软件开发模型和软件测试模型的简单介绍

文章目录

      • 软件开发的模型
      • 软件测试的模型

软件的生命周期:
从产品设想到不再使用而结束的时间,可以分为 6 个阶段:需求分析、计划、设计、编码、测试、运行和维护

软件开发的模型

✅瀑布模型(Waterfall Model)
其他模型的基础框架,每个阶段只执行一次,是先行顺序进行的开发模型

  • 优点:强调开发的阶段性、早期计划和需求调查、强调产品测试
  • 缺点:不能适应变化的需求,由于单一流程风险性往往推迟至后期测试才显露

✅螺旋模型(Spiral Model)
开发初期需求不很明确的渐进式的开发,适用于规模大复杂度搞,风险大的。测试跟着开发的迭代而迭代。因此,回归测试就很重要。

  • 优点:强调严格的全过程风险管理、各个开发阶段的质量,提供机会检讨项目是否由进行的价值
  • 缺点:引入严格的风险识别、风险分析和控制,对风险管理的技能水平提出了很高的要求。需要人员、资金和时间的投入。

✅增量、迭代
降低项目风险,是当前流行的软件工程实践之一。鼓励用户反馈,在每个迭代过程促使开发小组以一种循环的,可预测的方式驱动产品的开发。因此每一次迭代都意味着可能有需求的更改、构建出新的可执行软件版本、意味着测试需要频繁进行,测试人员需要与开发进行协作。
增量和迭代是有区别的。增量式逐块建造的概念,好比画人物画从上到下,而迭代式反复求精的概念,好比先画整体再画细节。

✅敏捷(Agile)
个体与交互重于过程和工具、可用软件重于完备文档、客户协作重于合同谈判、响应变化重于遵循计划。
敏捷开发有很多种方式,srcum 是比较流行的一种

scrum 里面的角色:产品经理(product owner)、项目经理(scrum master) 和研发团队(team) 组成
• 产品经理(po):客户的代表,和客户沟通,把客户的需求转换为 user story
• 项目经理(sm):负责召开各种会议,协调项目,为研发团队服务
• 研发团队(st):由不同技能的成员组成,紧密协作完成每一次迭代目标

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

scrum 的基本流程
• 发布计划会议
• 迭代计划会议
• 每日站会(昨天做什么有什么问题,今天的计划)
• 演示会议
• 回顾会议
敏捷中的测试
挑战1:轻文档
挑战2:快速迭代
核心内容不变依然是找bug,但是以敏捷为原则,测试人员不能依赖文档,测试用例作用减弱,更多的采用思维导图、探索性测试(强调自由度、设计和执行同时,根据测试结果不断调整测试计划)、自动化测试。
敏捷讲求合作,测试人员应该主动向开发了解需求,探讨和设计

软件测试的模型

软件测试 V 模型
目的改进软件开发的效率和效果。是瀑布模型的变种
• 明确标注了不同类型的测试,描述了这些测试阶段和开发过程期间各阶段的对应关系
• 单元、继承测试应检测程序的执行是否满足软件设计需求;系统测试应检测系统功能和性能特性;验收测试确定软件实现是否满足用户、合同需要
• 局限性:仅把测试作为编码之后的一个阶段,未在需求阶段进入测试。
软件开发模型和软件测试模型的简单介绍_第1张图片
软件测试 W 模型
增加了软件开发阶段中应同步的验证和确认活动,W 模型由两个 V 模型组成,分别代表测试与开发过程。测试与开发是并行。

  • 特点:测试对象不仅是程序,需求和设计等同样要测试,测试与开发同步
  • 优点:可尽早发现问题,如需求分析完后测试人员就应该参与到对需求验证和确认活动中,尽早发现缺陷,同时也有利于即时了解项目难度和测试风险
  • 局限性:需求、设计、编码等活动被视为串行的,测试和开发活动也保持一种线性的前后关系,上一阶段完全结束才能进行下一阶段,无法支持敏捷开发。
    软件开发模型和软件测试模型的简单介绍_第2张图片

你可能感兴趣的:(软件测试,软件测试,敏捷开发,瀑布模型,螺旋模型)