当前位置: 首页 > article >正文

【测试】——开发模型与测试模型

📖 前言:在软件开发过程中,理解和应用合适的开发模型与测试模型至关重要。本文将详细介绍几种常见的开发模型,如瀑布模型、螺旋模型、增量模型和敏捷过程,以及测试模型如V模型和W模型。


目录

  • 🕒 1. 开发模型
    • 🕘 1.1 瀑布模型(Waterfall Model)
    • 🕘 1.2 螺旋模型(Spiral Model)
    • 🕘 1.3 增量模型和迭代模型
    • 🕘 1.4 敏捷过程(Agile Process)
  • 🕒 2. 测试模型
    • 🕘 2.1 V模型
    • 🕘 2.2 W模型(双V模型)

🕒 1. 开发模型

🕘 1.1 瀑布模型(Waterfall Model)

在这里插入图片描述
注:这里的“测试”指的是所有的测试活动

特点:线性结构,每个阶段只执行一次,每个阶段做什么,产出什么非常清晰,是其他模型的基础框架。

缺点:

  1. 测试后置
    ① 遗留在前期各阶段的风险,直到测试阶段才被发现,导致项目需要大规模返工,错失了早期修复的机会。
    ② 测试活动必须有足够的时间,否则可能导致测试不完全,从而使缺陷暴露给用户(产品质量低)。
  2. 周期过长,产品推向市场的时间延迟,用户需等待很长时间才能看到和使用产品;这可能导致需求或功能变得过时。

使用场景:需求固定的小项目

🕘 1.2 螺旋模型(Spiral Model)

在这里插入图片描述

  • 螺旋模型拉直之后就相当于瀑布模型,螺旋模型中增加了风险分析和原型。
  • ② 螺旋模型需要招聘专业的风险分析人才。

特点:螺旋模型中增加了风险分析和原型

缺点:

  1. 项目中可能存在的风险性与风险管理人员的技能水平有直接的关系。
  2. 需要人员、资金、时间的增加和投入,可能会导致项目的成本过高。

使用场景:规模庞大、复杂度高、风险大的项目尤其适合。

🕘 1.3 增量模型和迭代模型

在这里插入图片描述

  • 增量模型中把大的需求划分成一个个可以独立开发上线的功能。
  • 增量模型在开发上线各功能时是可以并行开发的。

迭代模型(反复求精):迭代模型在开发上线软件的各功能时,先开发个功能的基础版本,然后再在基础版本上不断进行功能的完善。

🕘 1.4 敏捷过程(Agile Process)

  • 敏捷模型不强调流程,而是更多地思考如何去激发开发人员的工作热情。
  • 敏捷模型的考核标准是:可交付的软件
  • 特点:敏捷模型拥抱变化

🔎 敏捷软件开发宣言

  1. 个体与交互重于过程和工具: 要注重人与人之间的交流沟通。
  2. 可用的软件重于详尽的文档: 不过分关注过程中的文档,更重视是否能交付可用的软件。
  3. 客户协作重于合同谈判:用户需求多变,可能随时间改变,因此应重视与客户的沟通和协调,确保及时进行修改和更新。
  4. 响应变化重于遵循计划:要能够灵活应对变化。
  5. 虽然上述比较中的后者也有其价值,但我们更加重视前者。

总结:敏捷模型的特点:轻流程、轻文档、重目标、重产出。

敏捷开发有很多种方式,其中Scrum是比较流行的一种。

Scrum敏捷软件开发架构图:
在这里插入图片描述

  1. 三个关键角色:产品经理、项目经理和研发团队
  • 产品经理(Product Owner):负责整理用户故事(User Story),界定其商业价值,进行优先级排序,制订产出列表(Product Backlog),并对产品结果负责。
  • 项目经理(Scrum Master):负责组织各种会议,协调项目进度,为研发团队提供支持。
  • 研发团队(Team):由具备不同技能的成员构成,通过密切合作,实现每个迭代的目标,交付最终产品。
  1. 五个重要会议:
    发布计划会议(Product Backlog)、迭代计划会议(Sprint Planning Meeting)、每日站会(Daily Stand Up)、演示会议(Review Meeting)、回顾会议(Retrospective Meeting)。
    在这里插入图片描述
  • 发布计划会议:产品经理负责整理User Story,进行估算和排序,会议的结果是确定本次迭代要完成的Story列表(Sprint Backlog)。
  • 迭代计划会议:项目团队将每个Story细分为具体任务,标准是完成所有任务以实现该Story,每项任务都指定明确的负责人,并进行初步工时估计。
  • 每日站会:Scrum Master每天组织站立会议,团队成员汇报昨日所做、今日计划以及遇到的问题。
  • 演示会议:迭代结束后,举行演示会议,邀请相关人员参加,团队展示本次迭代的成果。会中收集的反馈由产品经理整理,转化为新的Story。
  • 回顾会议:项目团队总结本次迭代,识别不足之处,制定改进措施,以便在下一次迭代中持续改进。

🔎 Scrum 是什么?概念、定义、实施指南

🕒 2. 测试模型

🕘 2.1 V模型

在这里插入图片描述

  • 用户需求:PM将用户需求收集形成软件需求
  • 需求分析与系统设计:验证需求是否正确,确定编程语言与框架
  • 概要设计:项目结构如何设计
  • 详细设计:每个接口,涉及那些库表,涉及哪些任务
  • 单元测试:测试每一个方法/函数/接口
  • 集成测试:将许多的方法,集成到一起测试
  • 系统测试:模块与模块之间没有影响
  • 验收测试:验收的人、产品、运营

特点:左侧是开发,右侧是测试,类似于瀑布模型
优点:测试被划分成许多类型
缺点:测试人员介入太晚,发现问题时机太晚

🕘 2.2 W模型(双V模型)

在这里插入图片描述

优点:开发人员尽早介入了需求
缺点:测试人员和开发人员一定程度上还是串行的,不能拥抱变化,不能适用于敏捷


OK,以上就是本期知识点“开发模型与测试模型”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页


http://www.kler.cn/news/285165.html

相关文章:

  • 黑神话 悟空 配置 Mac玩游戏
  • vue3中ref绑定的节点顺序错乱
  • day36
  • 【MySQL 12】事务管理 (带思维导图)
  • leetcode 147.对链表进行插入排序
  • Pr:代理预设
  • [E二叉树] lc110. 平衡二叉树(dfs+自底向上)
  • Java技术栈 —— Spark入门(二)之实时WordCount
  • 基于微信小程序的电动车租赁系统---附源码97332
  • 遇到的BUG及解决方法
  • 【读书笔记-《30天自制操作系统》-12】Day13
  • 监控平台之上报(未完成)
  • Python算法工程师面试整理-Python 编程技巧
  • 使用Ansible stat模块检查目录是否存在
  • 【Docker】Dockerfile实列-Nginx镜像构建
  • 类与ES6类之间的继承
  • 叶斯神经网络(BNN)在训练过程中损失函数不收敛或跳动剧烈可能是由多种因素
  • 全网最适合入门的面向对象编程教程:42 Python常用复合数据类型-collections容器数据类型
  • P02-Java流程控制基本结构
  • codetest
  • Linux下递归设置目标目录及其子目录和文件的权限
  • Qt/C++地址转坐标/坐标转地址/逆地址解析/支持百度高德腾讯和天地图
  • 项目策划书六度自由双足机器人
  • WHAT - 通过 react-use 源码学习 React(Animations 篇)
  • Qt QTableWidget可编辑设置,设置部分可编辑
  • 线性表之静态链表
  • Jenkins发邮件功能如何配置以实现自动化?
  • 推理引擎测试-算力共享:test_inference_engine
  • 力扣68.文本左右对齐
  • 18043 找出3个数中最大的数