开发和测试模型

news/2024/5/18 1:23:12

瀑布模型

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

 

特点:


线性结构每个阶段只执行一次
其他模型的基础框架

缺点:

测试后置
前面的风险被推迟到测试阶段才被发现,项目大面积需要修改,工作量大

测试时间不够
没有充足的测试时间进行功能评估和需求功能比对,会将缺陷暴露给用户,影响用户体验

周期太长
产品上线时间周期长,影响生产效率

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

螺旋模型

 

优点:


增加了风险分析和原型

缺点:

需要专门的风险分析人才,风险性和风险分析人员有关系

需要大量的时间,资本,人力投入

 

增量/迭代模型

增量模型把大的需求划分成一个个可以独立上线的功能

增量


可以先开发 1 2 ,再增加 3 4 5

迭代


可以先开发12345的基础版本
再迭代1 2 3 4 5 的进阶版本

敏捷模型

 

个体交互重于过程和工具

可用软件重于完备的文档
客户协作重于合同谈判

响应变化重于遵循计划

敏捷模型(Agile Model)是一种迭代和增量的软件开发和项目管理方法,强调灵活性、协作和持续交付。

目标是通过频繁的迭代和持续反馈来快速响应需求变化并提供高质量的软件产品。

敏捷模型的核心原则包括:

  1. 个体和互动胜过流程和工具:注重团队成员之间的沟通和协作,强调人际关系和合作。

  2. 可工作的软件胜过详尽的文档:重视通过交付实际可运行的软件来验证和演示功能,而非过度依赖大量的文档。

  3. 客户合作胜过合同谈判:鼓励与客户密切合作,包括在项目过程中不断获取反馈和进行需求调整。

  4. 响应变化胜过遵循计划:接受需求变化的现实,并能够灵活地调整计划和优先级。

敏捷模型通常采用以下实践和方法:

  1. Scrum:Scrum 是一种广泛使用的敏捷框架,通过团队的迭代开发和时间框,将项目划分为一系列的短期开发周期(称为冲刺),以便快速交付软件,并持续获取反馈。

  2. 迭代开发:软件开发过程被划分为多个迭代周期,每个迭代周期内包含需求分析、设计、编码和测试等阶段,以便快速迭代开发和验证功能。

  3. 用户故事:以用户的需求和价值为中心,通过编写简短的用户故事来描述功能需求,以便开发团队理解和实现。

  4. 自组织团队:鼓励团队成员自组织、自我管理,促进更好的合作和决策。

  5. 持续集成和自动化测试:通过持续集成和自动化测试工具,确保团队能够频繁地集成和验证代码,减少错误和提高质量。

敏捷模型的好处包括更高的灵活性、更快的交付周期、更好的适应需求变化、更高的客户满意度和更好的团队协作。然而,敏捷模型也需要团队成员具备高度的沟通和协作能力,以及对变化的接受和适应能力。

scrum模型

主要三个角色

产品经理:需求管理,评断商业价值

项目经理:人力资源,召开项目,为研发团队服务

研发团队:在生产过程中使用技术创造/维护/测试/规范产品的人员

Scrum模型强调自组织和跨职能团队的合作,鼓励团队成员在项目中承担责任并共同完成任务。通过短周期的迭代和持续的反馈,Scrum模型能够快速适应变化和优化软件开发过程,提高项目的成功率和交付价值。

五个会议

根据需求池
发布计划会议
迭代计划会议
每日会议
演示会议
回顾会议

1. 发布计划会议(Release Planning Meeting):
      发布计划会议通常是在项目开始时或新迭代开始前召开的。这个会议的目标是为整个项目或产品的发布制定一个整体计划。

2. 迭代计划会议(Sprint Planning Meeting):
   迭代计划会议是在每个迭代周期开始前进行的。团队会明确要完成的任务和任务之间的依赖关系。

3. 每日会议(Daily Scrum):
   每日会议是每个迭代周期内的日常会议。在每日会议中,团队成员汇报前一天的工作进度,分享遇到的问题和障碍,并计划今天的工作。这有助于团队了解项目进展情况,并及时调整工作计划。

4. 演示会议(Sprint Review):
   演示会议是每个迭代周期结束后进行的。在这个会议上,团队展示已经完成的工作成果,并邀请利益相关者提供反馈和建议。演示会议有助于确保团队与利益相关者的沟通,确认项目进展和功能是否符合预期。

5. 回顾会议(Sprint Retrospective):
   回顾会议是每个迭代周期结束后进行的。在这个会议上,团队回顾过去迭代的工作过程,总结成功和改进的地方,并制定下个迭代的改进计划。回顾会议是持续改进的重要环节,助于团队优化开发过程和提高工作效率。

测试模型

V模型

 

模型(V-Model): V模型以字母V的形状来表示软件开发和测试的生命周期。它强调测试活动与开发活动的紧密关联。在V模型中,每个开发阶段都有相应的测试阶段,测试阶段与开发阶段是一一对应的。V模型的各个阶段包括:

  • 需求分析阶段:在这个阶段,需求规格说明书被创建,其中包含了用户需求和系统功能的详细描述。
  • 系统设计阶段:在这个阶段,基于需求分析的结果,系统的整体架构和设计被定义。
  • 模块设计阶段:在这个阶段,系统被分解成模块,并进行详细的模块设计
     
  • 编码阶段:在这个阶段,根据模块设计,程序员开始编写代码。
     
  • 单元测试阶段:在这个阶段,对每个模块进行独立的单元测试,以验证其功能的正确性。
  • 集成测试阶段:在这个阶段,将已经通过单元测试的模块进行集成,并进行整体的功能测试。
  • 系统测试阶段:在这个阶段,对整个系统进行综合测试,以验证系统是否满足需求规格说明书中的功能和性能要求。
     
  • 验收测试阶段:在这个阶段,系统交付给用户,用户进行验收测试,以确定系统是否满足用户需求。

V模型的特点是测试活动与开发活动是一一对应的,测试活动发生在对应的开发活动之后。这种模型的优点是在早期就能够进行测试,缺点是较为刚性,变更和修复缺陷的成本较高。


W模型

重流程
测试开发双流程

W模型是在V模型的基础上扩展而来的一种模型。W模型将测试活动进一步细分,强调了多层次和多维度的测试。

  • 需求分析和收集阶段:收集和理解用户的需求,并将其转化为详细的需求规格说明。
  • 系统设计阶段:根据需求规格说明书,进行系统的整体架构设计、模块划分和接口设计。
  • 模块设计和开发阶段:根据系统设计,将系统划分为各个模块,然后进行详细的模块设计和开发。
  • 编码和单元测试阶段:根据模块设计,程序员编写代码,并进行针对每个模块的单元测试,验证其功能的正确性。
  • 集成测试阶段:将已经通过单元测试的模块进行集成,进行整体的功能测试,验证模块之间的接口和交互是否正常。
  • 系统测试阶段:对整个系统进行综合测试,验证系统是否满足需求规格说明书中的功能和性能要求。
  • 验收测试阶段:系统交付给用户,用户进行验收测试,以确定系统是否满足用户需求。


哈,谢谢各位同志的阅读,然后呢如果觉得本文对您有所帮助的话,还给个免费的赞捏

Thanks♪(・ω・)ノ


http://www.mrgr.cn/p/47271405

相关文章

代码版本管理工具 git

1. 去B站看视频学习,只看前39集: 01-Git概述(Git历史)_哔哩哔哩_bilibili 2.学习Linux系统文本编辑器的使用 vi编辑器操作指令分享 (baidu.com) (13条消息) nano编辑器的使用_SudekiMing的博客-CSDN博客 windows下载安装Git官…

使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【C++】开源:Boost网络库Asio配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Asio网络库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次…

小程序----配置原生内置编译插件支持sass

修改project.config.json配置文件 在 project.config.json 文件中,修改setting 下的 useCompilerPlugins 字段为 ["sass"], 即可开启工具内置的 sass 编译插件。 目前支持三个编译插件:typescript、less、sass 修改之后可以将原.w…

GNSS技术知识你知道多少?这些你或许还未掌握

GNSS信号频段 GNSS频谱图展示了不同的GNSS信号及其星座、载波频率、调制方案,以及所有这些信号在同一L波段频段内如何相互关联,是GNSS专业人员的必备工具,包括设计和开发GNSS系统的工程师,以及测试GNSS系统的工程师。 GNSS术语 …

基于深度学习的高精度课堂人脸检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度课堂人脸检测系统可用于日常生活中或野外来检测与定位课堂人脸目标,利用深度学习算法可实现图片、视频、摄像头等方式的课堂人脸目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标…

shopee,lazada,etsy店群如何高效安全的管理

对于电商卖家来说,要经营多个店铺,管理多个账号是非常常见的操作。为了避免账号关联被平台识别出来,需要使用防关联的浏览器来进行操作 ​1、支持多平台 支持同时管理多个电商平台店铺,Shopee、Lazada、etsy、poshmark、vinted等&…

网络安全(黑客)自学——从0开始

为什么学习黑客知识?有的人是为了耍酷,有的人是为了攻击,更多的人是为了防御。我觉得所有人都应该了解一些安全知识,了解基本的进攻原理。这样才可以更好的保护自己。这也是这系列文章的初衷。让大家了解基本的进攻与防御。 一、怎…

Redis学习路线(6)—— Redis的分布式锁

一、分布式锁的模型 (一)悲观锁: 认为线程安全问题一定会发生,因此在操作数据之前先获取锁,确保线程串行执行。例如Synchronized、Lock都属于悲观锁。 优点: 简单粗暴缺点: 性能略低 &#x…

2024届IC秋招兆易创新数字IC后端笔试面试题

数字IC后端实现PR阶段设计导入需要哪些文件? 设计导入需要的文件如下图所示。这个必须熟练掌握。只要做过后端训练营项目的,对这个肯定是比较熟悉的。大家还要知道每个input文件的作用是什么。 在吾爱IC后端训练营Cortexa7core项目中,你认为…

uniapp 语音文本播报功能

最近uniapp项目上遇到一个需求 就是在接口调用成功的时候加上语音播报 , ‘创建成功’ ‘开始成功’ ‘结束成功’ 之类的。 因为是固定的文本 ,所以我先利用工具生成了 文本语音mp3文件,放入项目中,直接用就好了。 这里用到的工…

java快速生成数据库表文档(HTML、DOC、MD)

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐,这里推荐一个开源项目:screw gi…

大促之前全链路压测监控

1. skywalking服务监控 1.1 skywalking简介 Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计 它通过探针自动收集所需的指标,并进行分布式追踪,通过这些调用链路以及指标,Skywalking …

VMware搭建Hadoop集群 for Windows(完整详细,实测可用)

目录 一、VMware 虚拟机安装 (1)虚拟机创建及配置 (2)创建工作文件夹 二、克隆虚拟机 三、配置虚拟机的网络 (1)虚拟网络配置 (2)配置虚拟机 主机名 (3&#xf…

1.Flink概述

1.1 技术架构 应用框架层: 在API层之上构建的满足特定应用场景的计算框架,总体上分为流计算和批处理两类应用框架。API 层: Flink对外提供能力的接口 ,实现了面向流计算的DataStream API和面向批处理的DataSet API。运行时层:Flin…

golang waitgroup

案例 WaitGroup 可以解决一个 goroutine 等待多个 goroutine 同时结束的场景,这个比较常见的场景就是例如 后端 worker 启动了多个消费者干活,还有爬虫并发爬取数据,多线程下载等等。 我们这里模拟一个 worker 的例子 package mainimport (…

振弦采集仪完整链条的岩土工程隧道安全监测

振弦采集仪完整链条的岩土工程隧道安全监测 隧道工程是一种特殊的地下工程,其建设过程及运行期间,都受到各种内外力的作用,如水压、地震、地质变形、交通荷载等,这些因素都会对隧道的安全性产生影响。因此,对隧道的安…

机器学习-Gradient Descent

机器学习(Gradient Descent) videopptblog 梯度下降(Gradient Descent) optimization problem: 损失函数最小化 假设本模型有两个参数𝜃1和𝜃2,随机取得初始值 求解偏微分,梯度下降对参数进行更新 Visualize: 确定梯度方向&…

强化学习QLearning 进行迷宫游戏和代码

强化学习是机器学习里面的一个分支。它强调基于环境而探索行动、学习,以取得最大化的预期收益。其灵感来源于心理学中的行为主义理论,既有机体如何在环境给予的奖励或者惩罚的刺激下,逐步形成对刺激的预期,产生能够最大利益的习惯…

七、Kafka源码分析之网络通信

1、生产者网络设计 架构设计图 2、生产者消息缓存机制 1、RecordAccumulator 将消息缓存到RecordAccumulator收集器中, 最后判断是否要发送。这个加入消息收集器,首先得从 Deque 里找到自己的目标分区,如果没有就新建一个批量消息 Deque 加进入 2、消…