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

news2024/11/15 9:17:19

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mobile-Agent赛题分析和代码解读笔记(DataWhale AI夏令营)

前言 你好,我是GISer Liu,一名热爱AI技术的GIS开发者,本文是DataWhale 2024 AI夏令营的最后一期——Mobile-Agent赛道,关于赛题分析和代码解读的学习文档总结;这边作者也会分享自己的思路; 本文是对原视频的…

18045 前一个和后一个字符

### 思路 1. 读取输入的字符。 2. 判断输入是否为数字字符: - 如果不是数字字符,输出“error”。 - 如果是数字字符,进行以下判断: - 如果输入是0,输出“first”和1。 - 如果输入是9,输出8…

MACOS安装配置前端开发环境

官网下载安装Mac版本的谷歌浏览器以及VS code代码编辑器,还有在App Store中直接安装Xcode(里面自带git); node.js版本管理器nvm的下载安装如下: 参考B站:https://www.bilibili.com/video/BV1M54y1N7fx/?sp…

【Python 千题 —— 基础篇】评论倾向分析

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目描述 在某个电商平台的评论系统中,用户可以提交商品评论。为了分析评论的情感倾向,我们需要编写一个程序来处理用户评论,并对评论内容进行简单的分析和处理。…

在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听

etcd 和zookeeper 很像,都可以用来做配置管理。并且etcd可以在目前流行的Kubernetes中使用。 但是etcd 提供了v2版本合v3的版本的两种api。我们现在分别来介绍一下这两个版本api的使用。 一、Etcd V2版本API 1、java工程中使用maven引入 etcd v2的java api操作ja…

Pytorch实现自然风光图像场景分类识别(含训练代码和数据集)

Pytorch实现自然风光图像场景分类识别(含训练代码和数据集) 目录 Pytorch实现自然风光图像场景分类识别(含训练代码和数据集) 1. 前言 2. 自然风光图像场景分类数据集 (1)自然风光图像场景分类数据集 (2)自定义数据集 3. 自…

震惊!更换GPU会改变LLM的行为

文章目录 新发现前言1. Why this article ?2. Setup the experimentation3. The experiment results:A100/A10/30904. Why is it different?5. Why do the calculation differ depending on the GPU ?结论 新发现 最近在做RAG相关的工作,偶然间发现&a…

swift自定义数据集微调Qwen-7B大模型,转换模型后使用ollama跑起来

前文:swift微调Qwen-7B大模型-CSDN博客 我详细介绍了swift如何进行微调,但数据集均来自魔搭社区,如何想训练自定义数据集,实际上也很简单。 一、自定义数据集微调 export MKL_THREADING_LAYERGNU \ CUDA_VISIBLE_DEVICES0,1,2…

STM32:TIM定时中断配置的最全库函数讲解笔记

声明:本博客为哔哩哔哩up主江协科技 “STM32入门教程”的听课笔记,仅供学习、参考使用,不得用作其他用途,违者必究。如有版权问题,请联系作者修改。 目录 一、综述 二、TIM库 初始化 2.1、TIM_DeInit 恢复缺省值 …

经典文献阅读之--ParkingE2E(基于摄像头的端到端停车网络:从图像到规划)

0. 简介 自动泊车是智能驾驶领域的一项关键任务。传统泊车算法通常采用基于规则的方案来实现。然而,由于算法设计的复杂性,这些方法在复杂的泊车场景中效果欠佳。相比之下,基于神经网络的方法往往比基于规则的方法更加直观且功能多样。通过收…

中国的铁路订票系统在世界上属于什么水平?

每到节假日,中国的铁路订票系统总会成为人们热议的焦点。无论是“抢票大战”还是“秒杀特价票”,这一系统似乎总是牵动着亿万乘客的心。那么,中国的铁路订票系统到底有多强大?在全球范围内,它处于什么水平?…

Java_ElasticSearch(ES)——分布式搜索引擎

介绍: Elasticsearch是一个开源的分布式搜索和分析引擎,最初由Elastic公司开发。它构建在Apache Lucene搜索引擎库之上,提供了一个强大的全文搜索和分析引擎, 它结合kibana、Logstash、Beats,是一整套技术栈&#xff0…

C语言——简单的do while循环找100~999之间的水仙花数(所有的三位水仙花数)

这道题的关键是如何把这个三位数的个位、十位、百位表示出来 这里用到了 / &#xff08;整除&#xff09;和 % &#xff08;取余&#xff09;这两个运算符 #include<stdio.h> int main() { int num 100; do { int a; int b; int …

手把手教你:用sentence-transformers库进行文本嵌入

在 Python 中使用 sentence-transformers 库进行实操&#xff0c;你可以按照以下步骤进行&#xff1a; 1. 安装 sentence-transformers 库 首先&#xff0c;确保你已经安装了 sentence-transformers。如果没有&#xff0c;可以通过 pip 安装&#xff1a; pip install sentenc…

图像去噪评论:从经典到最先进的方法

系列文章目录 文章目录 系列文章目录前言摘要1 引言1.1.噪声抑制 2. 空间域过滤2.1.局部滤波器2.2.非局部滤波器 3.变换域滤波3.1.阈值3.1.1. 通用阈值3.1.2. VISUShrink3.1.3.SURE收缩3.1.4.BayesShrink3.1.5.概率收缩3.1.6.SURELET3.1.7.Neigh Shrink Sure&#xff08;NSS&am…

十一头像红旗怎么弄的?3个方法轻松教会你!

国庆佳节渐行渐至&#xff0c;朋友圈里早已掀起了一股更换国庆主题头像的热潮&#xff01;那些五彩斑斓、光彩夺目的渐变国旗头像&#xff0c;既美观又富有节日气氛。如果你也想加入这个行列&#xff0c;那么如何动手制作呢&#xff1f;别担心&#xff0c;接下来我将为你介绍三…

求解组合优化问题的具有递归特征的无监督图神经网络

文章目录 ABSTRACT1 Introduction2 Related Work3 QRF-GNN方法4 数值实验4.1 MAX-CUTABSTRACT 介绍了一种名为QRF-GNN的新型算法,有效解决具有二次无约束二进制优化(QUBO)表述的组合问题。依赖无监督学习,从最小化的QUBO放松导出的损失函数。该架构的关键组成部分是中间GNN…

服务端之Node的QQ邮件发送功能、授权码申请流程、邮箱、createTransport、sendMail

MENU 前言邮箱授权码的申请流程Node连续发送邮件失败的原因 前言 1、代码段的主要功能是通过nodemailer模块从一个QQ邮箱发送电子邮件。 2、代码段实现从QQ邮箱1283077926qq.com发送一封邮件到2506562048qq.com&#xff0c;邮件主题为“微信公众号推广”&#xff0c;正文为“亲…

Docker私有镜像仓库Harbor安装并推拉镜像

1.环境信息 前置要求&#xff1a; linux&#xff1a;Oracle Linux Server release 7.9 docker&#xff1a;26.1.4 安装&#xff1a; docker-compose: Docker Compose version v2.29.2 harbor&#xff1a;v2.11.1 2.下载安装说明 docker-compose下载&#xff1a; https://githu…

Vue(八) localStorage、组件的自定义事件、Todo案例修改

文章目录 一、浏览器本地存储1. 相关API2. Todo案例中的应用 二、组件的自定义事件1. 回顾props传值方式2. 绑定自定义事件&#xff08;1&#xff09;方式一&#xff1a;v-on或&#xff08;2&#xff09;方式二&#xff1a; ref 3. 解绑自定义事件4. 注意点总结 三、Todo案例采…