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

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

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

相关文章

Nginx: 使用KeepAlived配置实现虚IP在多服务器节点漂移及Nginx高可用原理

使用KeepAlived配置实现虚IP在多服务器节点漂移 1 )环境准备 2台 linux , 一主一备 节点1:192.168.184.30 CentOS 7 Master节点2:192.168.184.40 CentOS 7 BackupVIP 192.168.184.50 安装 KeepAlived, $ yum install keepalived 注意&#x…

时空图卷积网络:用于交通流量预测的深度学习框架-1

摘要 准确的交通预测对于城市交通控制和引导至关重要。由于交通流的高度非线性和复杂性,传统方法无法满足中长期预测任务的需求,且往往忽略了空间和时间的依赖关系。本文提出一种新的深度学习框架——时空图卷积网络(STGCN)来解决交通领域的时间序列预测…

云同步的使用

云同步技术是一种在多个设备或系统之间保持数据一致性的技术,它通常依赖于云存储服务来实现。在Java中,实现云同步功能通常需要与云服务提供商的API进行交互,如Amazon S3、Google Cloud Storage、Microsoft Azure Blob Storage等。 以下是一个…

golang gin template模板渲染

1、根据值控制html元素显示隐藏 main.go package main import ("html/template""net/http""github.com/gin-gonic/gin" ) func main() {r : gin.Default()r.SetFuncMap(template.FuncMap{"greaterThan": func(a, b int) bool {retur…

PyCharm 自定义字体大小

常用编程软件自定义字体大全首页 文章目录 前言具体操作1. 打开设置对话框2. 设置编辑器字体3. 选择外观字体 前言 PyCharm 自定义字体大小,统一设置为 JetBrains Mono 具体操作 【File】>【Settings...】>【Editor】>【Font】 统一设置为字体样式 JetB…

人工智能训练师工作内容及职业发展路径

人工智能训练师(AI Trainer)是一种专业职位,主要负责训练和优化人工智能系统,尤其是机器学习模型。他们的工作涉及到以下几个方面: 1、数据准备:训练师需要收集、清洗和预处理数据,以确保数据的…

C++ | Leetcode C++题解之第355题设计推特

题目&#xff1a; 题解&#xff1a; class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…

简易STL实现 | Deque的实现

一种 在内存中存储元素的数据结构&#xff0c;它支持 在两端添加和删除元素&#xff08;使用循环数组实现&#xff09; 1、deque的特性&#xff08;分段deque实现&#xff09; 1、双端操作&#xff1a; deque支持在前端和后端执行快速的插入和删除操作 2、随机访问&#xff…

Servlet 简介+ Cookie和session+过滤器Filter和监听器Listener

目录 1.Servlet 介绍 1.1 什么是Servlet 1.2 Servlet的使用方法 1.3 Servlet接口的继承结构 2.Servlet的生命周期 2.1 servlet生命周期中重要的方法 3.获得前端提交数据 4.中文乱码的解决方案 5.重定向和转发 5.1 重定向 5.2 转发 6. Request对象 7. Response对象…

Linux上启动redis

1.默认启动方式:在系统的任意位置执行 redis-server即可启动 ps:这是前端界面启动&#xff0c;无法直接连接redis&#xff0c;想要连接的话只能另外启动一个窗口&#xff0c;因此下面我们介绍后台启动redis 2.指定配置启动&#xff1a; redis的配置文件位置&#xff1a…

华为手机数据丢失如何恢复?

在智能手机普及的今天&#xff0c;华为手机凭借其卓越的性能和用户体验赢得了众多用户的青睐。然而&#xff0c;在使用过程中&#xff0c;我们难免会遇到数据丢失或误删除的情况。面对这一困境&#xff0c;许多用户可能会感到束手无策。别担心&#xff0c;本文将为你提供一份全…

FastGPT:利用大模型重新定义传统知识库

引言 传统知识库的痛点 传统知识库广泛应用于企业文档管理、客户支持等场景&#xff0c;但随着信息量和复杂度的增加&#xff0c;存在以下显著问题&#xff1a; 数据难整合&#xff1a; 结构化与非结构化数据分散&#xff0c;更新维护成本高。检索不精准&#xff1a; 依赖关…

【前端开发必备小技巧】前端代码规范Vue篇

文章目录 &#x1f7e2; 前端代码规范&#x1f7e2; 一、前端代码规范Vue篇&#x1f449;1、Vue编码基础&#x1f449;1.1、组件规范&#x1f449;1.2、模板中使用简单的表达式&#x1f449;1.3、指令都使用缩写形式&#x1f449;1.4、 标签顺序保持一致&#x1f449;1.5、必须…

【Kotlin设计模式】Kotlin实现适配器模式

前言 适配器模式(Adapter Pattern)的核心将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;使得客户端能够通过自己期望的接口与不兼容的类进行交互。适配器模式有三种实现方式&#xff0c;分别是类适配器模式、对象适配器模式、 接口适配器模式。 我们假设有个视频…

3D Tiles的4x4的仿射变换矩阵

前言 项目需要&#xff0c;使用Cesium技术&#xff0c;把STL格式模型加载进去。 一、格式转换 第一步&#xff0c;先将STL文件转换为glTF格式 第二步&#xff0c;将glTF文件转换为3D Tiles格式&#xff0c;使用Cesium ion 二、矩阵整体结构 这个矩阵是一个4x4的仿射变换矩阵&…

LeetCode题练习与总结:单词搜索Ⅱ--212

一、题目描述 给定一个 m x n 二维字符网格 board 和一个单词&#xff08;字符串&#xff09;列表 words&#xff0c; 返回所有二维网格上的单词 。 单词必须按照字母顺序&#xff0c;通过 相邻的单元格 内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻…

中智科学技术评价研究中心与中企数研究院实现全面合作

8月29日&#xff0c;中智科学技术评价研究中心与《中国企业报》集团数字化发展研究院在北京顺喜山庄成功举办“数字经济GBC生态系统管理平台”项目实施落地座谈会及研究院高层管理集训班&#xff0c;并签署了项目合作协议。此次合作标志着双方将在“数字中国发展战略”的大背景…

人工智能领域正经历模型规模变革,小型语言模型(SLM)崛起,挑战“规模至上”观念。

在人工智能领域&#xff0c;一场关于模型规模的深刻变革正在悄然发生。长久以来&#xff0c;科技巨头们热衷于庞大语言模型&#xff08;LLM&#xff09;的开发竞赛&#xff0c;但如今&#xff0c;小型语言模型&#xff08;SLM&#xff09;正以其独特的优势逐步崭露头角&#xf…

WordNet介绍——一个英语词汇数据库

传统语义知识库最常见的更新方法是依赖人工手动更新&#xff0c;使用这种更新方法的语义知识库包括最早的 WordNet、FrameNet和 ILD&#xff0c;以及包含丰富内容的 ConceptNet和 DBPedia。此类语义知识库的特点是以单词作为语义知识库的基本构成元素&#xff0c;以及使用预先设…

Linux安装Hadoop(单机版)详细教程

目录 一、JDK安装 1、下载JDK安装包 2、解压下载的JDK安装包 3、移动并重命名JDK包 4、配置Java环境变量 5、验证安装是否成功 二、Hadoop安装 1、下载Hadoop安装包 2、解压Hadoop安装包 3、配置Hadoop环境变量 4、修改配置文件 5、验证Hadoop是否安装成功 三&…