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

embedded/2024/12/22 19:51:26/

📖 前言:在软件开发过程中,理解和应用合适的开发模型与测试模型至关重要。本文将详细介绍几种常见的开发模型,如瀑布模型、螺旋模型、增量模型和敏捷过程,以及测试模型如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.ppmy.cn/embedded/103900.html

相关文章

【复旦微FM33 MCU 外设开发指南】外设篇3——SPI

前言 本系列基于复旦微FM33系列单片机的DataSheet编写,旨在提供一些开发指南。 本文章及本系列其他文章将持续更新,本系列其它文章请跳转【复旦微FM33 MCU 外设开发指南】总集篇 本文章最后更新日期:2024/08/31 文章目录 前言GPIO配置SPI配…

Ascend C算子开发(入门)—— 算子开发环境搭建

文章目录 Ascend C算子开发(入门)—— 算子开发环境搭建在CPU上部署开发环境准备工作步骤配置环境变量配置pip源pip安装依赖包安装开发套件包添加配置验证是否安装成功下载samples代码包测试算子 Ascend C算子开发(入门)—— 算子…

【C++ 第十六章】哈希

1. unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 ,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好 的查询是,进行…

高级java每日一道面试题-2024年8月27日-框架篇[SpringMVC篇]-Spring MVC 支持哪些视图技术?

如果有遗漏,评论区告诉我进行补充 面试官: Spring MVC 支持哪些视图技术? 我回答: Spring MVC作为基于Spring框架的Web应用开发框架,其核心优势之一在于其支持多种视图技术,这使得开发者可以根据项目需求或个人偏好选择最适合的视图渲染方式。以下是…

并集的大小

问题描述 有两个数的集合 A 和 B (每个集合里面没有重复的数),请你看一下 A B 的元素个数。 输入格式 第一行: m 和 n ,用空格隔开,分别表示 A 和 B 集合数的个数。 第二行: m 个数&#x…

react|useState的异步渲染

useState 组件里面的变量可以用state来表示,setState函数是用来更新state的值的用法 let [age,setAge]useState(0); // 0是变量age的初始值异步渲染 setState是异步指定的。也就是setAge是异步执行的。执行但不是立刻渲染,而是进入到微任务队列。注意…

排序算法之桶排序详细解读(附带Java代码解读)

桶排序(Bucket Sort)是一种基于分布的排序算法,它通过将待排序的数据分配到若干个桶(即子区间)中,然后对每个桶内的元素进行排序,最后将各个桶中的元素合并以得到最终的排序结果。桶排序适用于均…

vue项目安装pnpm和无法加载pnpm,已解决

vue3安装pnpm命令: 1.提升依赖安装速度:npm config set registry https://registry.npmjs.org 2.安装pnpm:npm install -g pnpm 3.安装pnpm依赖:pnpm install 4…windows电脑,无法安装pnpm,pnpm install命令&#xff0…