常见开发、测试模型

news2024/11/27 10:30:58

    • 开发模型
      • 瀑布模型
      • 螺旋模型
      • 增量、迭代
      • 敏捷开发模型
    • 测试模型
      • V模型
      • W模型

开发模型

瀑布模型

瀑布模型的每一个阶段都只执行一次,是线性顺序进行的软件开发模式。
在这里插入图片描述

优点:每个阶段做什么;产生什么非常清晰;
缺点:风险往往在后期的测试阶段才显露;容易失去及早纠正的机会(在测试阶段才能发现问题;然后需要一层一层往前找问题;如果发现需求有问题;那不是白忙活了吗)
适用:比较适合用于小型项目

螺旋模型

内圈到外圈;每一个阶段都会继续风险分析;反复测试;反复分析
在这里插入图片描述
优点: 每个阶段都会进行风险分析,避免一些线上问题发生
缺点: 风险分析可能分析错,需要人力财力的投入
适用: 适用于比较大的项目,风险比较多

增量、迭代

增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。
增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。
在这里插入图片描述

敏捷开发模型

敏捷宣言:
在这里插入图片描述
敏捷开发有很多种方式,其中scrum是比较流行的一种:
scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队;前端、后端、ui设计师)组成。

product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
scrum master负责召开各种会议,协调项目,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

scrum基本流程
在这里插入图片描述

测试模型

V模型

在这里插入图片描述
特点;左边开发、右边测试;类似瀑布模型;测试人员在编码后介入;
优点: 测试被划分成许多类型
缺点 : 测试人员介入太晚,发现问题时机太晚

W模型

在这里插入图片描述
特点: 开发一个V测试一个V
优点:测试人员尽早介入了需求
缺点:测试人员和开发人员一定程度上还是串行的;后面的都依赖于前面的。比如验收出现问题;就得一步一步往前回溯。不能很好的变化;不适用敏捷;W模型对于项目需求或技术变化的适应性不如敏捷开发方法;万一用户还有其它的需求;很难做到优化软件。v和w都不支持变化;需求文档一开始就确定了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1056034.html

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

相关文章

Python3数据科学包系列(三):数据分析实战

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 一: 数据分析与挖掘认知升维 我们知道在数据分析与数据挖掘中,数据…

15: 8种GPIO模式和其他资源

目录 一:GPIO 1:简历 2:模式 3:位结构 4:八种模式 A: 浮空/上拉/下拉输入 B:模拟输入 ----GPIO_Mode_AIN C: 开漏/推挽输出 D:复用开漏/推挽输出 E: 模式总结 二:其他资源 1:片上资源/外设 2:引脚定义表 一:GPIO 1:简历 GPIO(General Purpose Input …

排序---P1012 [NOIP1998 提高组] 拼数

思路: 这道题的思路就是进行排序,但不同于以往是根据数的大小排序,这道题是根据最高位最大就放在越前面。那么要怎么解决最高位越大排得越前这个问题呢,我们就会想到用字符串比较大小,就可以解决,所以我们…

RESTFul风格接口如何设计

RESTFul风格设计规范 HTTP协议请求方式要求 REST 风格主张在项目设计、开发过程中,具体的操作符合HTTP协议定义的请求方式的语义。 操作请求方式查询操作GET保存操作POST删除操作DELETE更新操作PUT 需求分析 数据结构: User {id 唯一标识,name 用户名&a…

车牌超分辨率:License Plate Super-Resolution Using Diffusion Models

论文作者:Sawsan AlHalawani,Bilel Benjdira,Adel Ammar,Anis Koubaa,Anas M. Ali 作者单位:Prince Sultan University 论文链接:http://arxiv.org/abs/2309.12506v1 内容简介: 1)方向:图像超分辨率技术…

MySQL进阶_1.数据类型约束

文章目录 第一章、名词解释第二章、数据类型2.1、数据类型简介2.2、数据类型对应属性2.3、整数类型2.4、浮点类型2.5、定点数类型2.6、日期和时间类型2.7、文本字符串类型2.7.1、CHAR和VARCHAR区别2.7.2、TEXT 2.8、小结和建议 第三章、约束3.1 约束的定义3.2 非空约束3.3 唯一…

浅谈OV SSL 证书的优势

随着网络威胁日益增多,保护网站和用户安全已成为每个企业和组织的重要任务。在众多SSL证书类型中,OV(Organization Validation)证书以其独特的优势备受关注。让我们深入探究OV证书的优势所在,为网站安全搭建坚实的防线…

内网安全学习

域 域在我的理解就是一个局域网,管理员为了便于操作域内主机,通常会有一个DC(domain control),域控主机可以直接控制其他域内主机,相当于域内的管理员权限,内网渗透的终极目的即拿到域控的权限…

嵌入式学习笔记(41)实时时钟RTC

7.6.1何为实时时钟 (1)real time clock,真实时间,就是所谓的xx年x月x日x时x分x秒星期x (2)RTC是SoC中一个内部外设,RTC有自己独立的晶振提供RTC时钟源(32.768KHz),内部有一些寄存器用来记录时间&#xff…

Acwing 842. 排列数字

Acwing 842. 排列数字 知识点题目描述思路讲解代码展示 知识点 DFS 题目描述 思路讲解 DFS重点是:顺序!(暴力的手法)(递归) 用 path 数组保存排列,当排列的长度为 n 时,是一种方…

pandas读取文件的时候出现‘OSError: Initializing from file failed’

报错原因: pandas.read_csv() 报错 OSError: Initializing from file failed,一般由两种情况引起:一种是函数参数为路径而非文件名称,另一种是函数参数带有中文。 原代码: data pd.read_csv(csv文件.csv) data导入文…

拒绝水文!八大排序(一)【适合初学者】直接插入排序和希尔排序

文章目录 直接插入排序希尔排序 大家好,我是纪宁。 这篇文章将向大家介绍直接插入排序算法和希尔排序算法。 直接插入排序 直接插入排序是一个简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有…

[中间件~大厂面试题] 腾讯三面,40亿的QQ号如何去重

前言: 在Spring Boot框架下,可以使用以下方法来去重40亿个QQ号.请注意:QQ号码的理论最大值为 2 32 − 1 2^{32} - 1 232−1,大概是43亿左右。 文章目录 提前总结(总分总~~~)最粗鲁的方式1. 使用…

深入理解Linux网络笔记(二):内核和用户进程协作之阻塞方式

本文为《深入理解Linux网络》学习笔记,使用的Linux源码版本是3.10,网卡驱动默认采用的都是Intel的igb网卡驱动 Linux源码在线阅读:https://elixir.bootlin.com/linux/v3.10/source 2、内核是如何与用户进程协作的(一) …

疯 狂 的 文 件 夹 【收藏起来】

文章目录 📁故事的开始📁一起疯狂📚资源领取 专栏Python零基础入门篇🔥Python网络蜘蛛🔥Python数据分析Django基础入门宝典🔥小玩意儿🔥Web前端学习tkinter学习笔记Excel自动化处理 &#x1f4…

力扣-345.反转字符串中的元音字母

Idea 将s中的元音字母存在字符串sv中,并且使用一个数组依次存储元音字母的下标。 然后将字符串sv进行反转,并遍历元音下标数组,将反转后的字符串sv依次插入到源字符串s中 AC Code class Solution { public:string reverseVowels(string s) {…

力扣 -- 1049. 最后一块石头的重量 II(01背包问题)

参考代码&#xff1a; 未优化代码&#xff1a; class Solution { public:int lastStoneWeightII(vector<int>& stones) {int nstones.size();int sum0;for(const auto& e:stones){sume;}int aimsum/2;//多开一行&#xff0c;多开一列vector<vector<int&g…

排序---P1116 车厢重组

P1116 车厢重组 来自 <车厢重组 - 洛谷> 其实这道题本质上就是求逆序对的过程&#xff1a; 两种方法&#xff1a;一个是通过冒泡排序过程求逆序对&#xff1b;一个是通过归并排序过程求逆序对。 法一&#xff1a;当通过冒泡排序进行正序排列时&#xff0c;相邻两个数需要…

批量将文件名称符合要求的文件自动复制到新文件夹:Python实现

本文介绍基于Python语言&#xff0c;读取一个文件夹&#xff0c;并将其中每一个子文件夹内符合名称要求的文件加以筛选&#xff0c;并将筛选得到的文件复制到另一个目标文件夹中的方法。 本文的需求是&#xff1a;现在有一个大的文件夹&#xff0c;其中含有多个子文件夹&#x…

Redis与分布式-集群搭建

接上文 Redis与分布式-哨兵模式 1. 集群搭建 搭建简单的redis集群&#xff0c;创建6个配置&#xff0c;开启集群模式&#xff0c;将之前配置过的redis删除&#xff0c;重新复制6份 针对主节点redis 1&#xff0c;redis 2&#xff0c;redis 3都是以上修改内容&#xff0c;只是…