【软件测试】3.开发模型

news2024/11/22 17:58:14

目录

1.常见的开发模型

1.1瀑布模型

1.2螺旋模型

1.3增量模型和迭代模型

1.4敏捷模型

1.4.1特点:

1.5Scrum模型(三个角色和五个重要会议)

1.5.1三个角色:

1.5.2Scrum工作流程(五个会议)

1.6测试模型

1.6.1V模型

1.6.2W模型(双V模型)


1.常见的开发模型

1.1瀑布模型

需求分析——计划——设计——编码——测试

瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。

特点:瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

1.优点:

  • 强调开发的重要性。
  • 线性结构,每个阶段都只执行一次。
  • 是其他模型的基础框架。

2.缺点:

  • 测试后置   前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修复的机会。必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给用户(产品质量差)。
  • 周期太长,产品很迟才能被看到或者使用,可能会导致需求/功能过时。

 瀑布模型使用场景:需求固定的小项目。

1.2螺旋模型

特点:螺旋模型中各个阶段都引入了风险分析+原型

引入的目的:是为了减少各阶段遗留的风险问题,避免吧问题遗留到后面阶段

1.优点:

  • 强调严格的全过程风险管理。
  • 强调各开发阶段的质量。
  • 增加风险分析和模型。

2.缺点:

  • 项目中可能存在的风险性和风险管理人员的技能水平有直接联系。
  • 需求人员、资金、时间的增加和投入,可能会导致项目的成本太高。

适用场景:规模庞大、复杂度高、风险性大的项目。

1.3增量模型和迭代模型

增量模型和迭代模型配合使用。

使用场景:大型项目,需求不明确。

1.4敏捷模型

主要困难包括在项目开发期间处理来自客户的变更需求以及合并这些变更所需的高成本和时间。为了克服这些模型的缺点,在1990年代中期提出来了敏捷软件开发模型。

敏捷模型主要旨在帮助项目快速适应变更请求。

在敏捷模型中,需求被分解成许多可以增量开发的小部分。

敏捷模型非常重要的内容:

  • 个体与交互重于过程和工具。(强调高效的沟通)
  • 可用的软件重于完备的文档。(强调轻文档,文档不应该作为工作验收的标准)
  • 客户协作重于合同谈判。(及时了解当下需求)
  • 响应变化重于遵循计划。(能够主动迎接变化)
1.4.1特点:

轻文档、轻流程、重目标、重产出

1.5Scrum模型(三个角色和五个重要会议)
1.5.1三个角色:

scrum由product owner (产品经理)、scrum master(项目经理)和team(研发团队)组成。

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

迭代开发:

每次迭代会产生一定的交付。

1.5.2Scrum工作流程(五个会议)
  • 产品负责人负责整理user story ,形成左侧的product backlog。
  • 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
  • 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初统计。
  • 每日例会:每天Scrum master召开站立会议,团队成员回答昨天做了什么,今天计划做什么,有什么问题。
  • 延时会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,形成新的story。
  • 回顾会议:项目团队对本次迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。(回顾上一次迭代过程中的问题,不断优化)

敏捷中的测试:

轻文档和快速迭代:

  • 敏捷模型中强调轻文档,所以测试人员不应使用传统的Excel编写测试用例的方法,更多的是使用思维导图,探索性测试(强调自由度,设计和执行同时进行,根据测试结果不断调整测试计划),自动化测试等。
  • 敏捷讲求合作,在敏捷项目组中,测试人员应多主动的跟开发人员了解需求,讨论设计、一起研究bug的出现的原因。
1.6测试模型

测试中有两个非常重要且具有标志性的测试模型:V模型和W模型。

1.6.1V模型

优点:

1.明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系,有效提升测试的质量和效率。

2.V模型指出:

  • 单元和集成测试应检测程序的执行是否满足软件测试的需求。
  • 系统测试应检测系统性能、性能的质量特性是否达到系统要求的指标。
  • 验收测试确定软件的实现是否能满足用户需要或合同的要求。

缺点:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就介入测试。缺点同瀑布模式。

1.6.2W模型(双V模型)

特点:测试的对象不仅时程序,需求,设计等同样要测试,测试与开发是同步进行的

优点:

有利于尽早的全面发现问题。例如:在需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以免尽早的找出缺陷所在。同时,对需求的测试页也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。

缺点:

  • 需求、设计、编码等活动被视为串行的。
  • 测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可以正式开始下一个阶段工作。
  • 重流程,无法支持敏捷开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。

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

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

相关文章

PCIE学习(2)PCIE配置空间详解

文章目录 前言一、配置空间header二、Base Address register(BAR)2.1、BAR是干什么的2.2、具体实现过程BAR示例1——32bit内存地址空间请求BAR示例2——64bit内存地址空间请求 前言 图片来自:https://zhuanlan.zhihu.com/p/463518877 一、…

传感器—超声波雷达

声波技术 在讲述超声波雷达之前,先了解一下声波的概念以及超声波和声波之间的关系 什么是声波? 声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动形式,这种振动状…

设计模式1——初步认识篇

设计模式1——初步认识篇 一、先让我们浅聊一下面向对象和设计模式。 说起设计模式,我第一次听到它,是在学习面向对象的时候。那么什么是面向对象,什么是设计模式,而且设计模式和面向对象又有什么关系呢? 1、什么是面…

智能创作时代:AI引领下的内容生产革命与效率提升

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

OpenHarmony 实战开发——移植通信子系统

通信子系统目前涉及Wi-Fi和蓝牙适配,厂商应当根据芯片自身情况进行适配。 移植指导 Wi-Fi编译文件内容如下: 路径:“foundation/communication/wifi_lite/BUILD.gn” group("wifi") {deps [ "$ohos_board_adapter_dir/ha…

【start和run的区别(面试题)及创建线程的五种写法】

线程 1.start和run的区别2.创建线程的五种写法1.继承Thread,重写run2.实现runnable,重写run3.继承Thread,重写run,使用匿名内部类4.实现Runnable,重写run,使用匿名内部类5.使用lambda表达式 1.start和run的区别 1.start方法内部,是会调用到系统api&…

用于视频大型多模态模型(Video-LMMs)的复杂视频推理和鲁棒性评估套件

1 引言 最近,大型语言模型(LLMs)在同时处理广泛的NLP任务的同时展示了令人印象深刻的推理和规划能力。因此,将它们与视觉模态集成,特别是用于视频理解任务,催生了视频大型多模态模型(Video-LMMs)。这些模型充当视觉聊天机器人,接受文本和视频作为输入,并处理各种任务,包括视频…

《2024网络安全报告》中文版

Check Point发布了《2024 年网络安全报告》,Check Point Research 对网络攻击数据(包括所有地区和全球的统计数据)进行了全面分析,揭示了不断变化的网络威胁形势。 ● 去年,全球 1/10 的机构遭遇勒索软件攻击尝试&a…

浅析扩散模型与图像生成【应用篇】(二十三)——Imagic

23. Imagic: Text-Based Real Image Editing with Diffusion Models 该文提出一种基于文本的真实图像编辑方法,能够根据纯文本提示,实现复杂的图像编辑任务,如改变一个或多个物体的位姿和组成,并且保持其他特征不变。相比于其他文…

C++基础中的存储类别

存储的类别是变量的属性之一,C语言定义了4种变量的存储类别,分别是auto变量、static变量、register变量和extern变量。以下重点介绍这几种类型。 一、auto变量 auto变量是C默认的存储类型。函数内未加存储类型说明的变量均被称为自动变量,即…

UBOOT介绍

一、UBOOT简介 U-boot全称 Universal Boot Loader,是遵循GPL条款的开放源码项目,uboot 是一个裸机代码,可以看作是一个裸机综合例程,执行启动内核的功能。 补充:GPL条款(GNU General Public License&…

数据分析:基于sparcc的co-occurrence网络

介绍 Sparcc是基于16s或metagenomics数据等计算组成数据之间关联关系的算法。通常使用count matrix数据。 安装Sparcc软件 git clone gitgithub.com:JCSzamosi/SparCC3.git export PATH/path/SparCC3:$PATHwhich SparCC.py导入数据 注:使用rarefy抽平的count ma…

css--控制滚动条的显示位置

各种学习后的知识点整理归纳,非原创! ① direction属性 滚动条在左侧显示② transform:scaleY() 滚动条在上侧显示 正常的滚动条会在内容超出规定的范围后在区域右侧和下侧显示在有些不正常的需求下会希望滚动条在上侧和左侧显示自己没有想到好的解决方案…

k8s部署最新版zookeeper集群(3.9.2),并配置prometheus监控

目录 zookeeper集群部署创建zookeeper文件夹namespace.yamlscripts-configmap.yamlserviceaccount.yamlstatefulset.yamlsvc-headless.yamlsvc.yamlmetrics-svc.yaml执行部署 接入prometheus访问prometheus查看接入情况导入zookeeper监控模版监控展示 zookeeper集群部署 复制粘…

YOLOv5入门(五)训练自己的目标检测模型

前言 通过前面几篇文章,已经完成数据集制作和环境配置(服务器),接下来将继续实践如何开始训练自己数据集~ 往期回顾 YOLOv5入门(一)利用Labelimg标注自己数据集 YOLOv5入门(二)处…

地球行星UE5和UE4

地球行星,包含多种地球风格,可蓝图控制自转和停止,可材质自转. 支持版本4.21-5.4版本 下载位置:https://mbd.pub/o/bread/ZpWZm5lv b站工坊:https://gf.bilibili.com/item/detail/1105582041 _______________________…

C++进阶 | [3] 搜索二叉树

摘要:什么是搜索二叉树,实现搜索二叉树(及递归版本) 什么是搜索二叉树 搜索二叉树/二叉排序树/二叉查找树BST(Binary Search Tree):特征——左小右大(不允许重复值)。即…

【项目实战】使用Github pages、Hexo如何10分钟内快速生成个人博客网站

文章目录 一.准备工作1.安装git2.安装node安装 cnpm 3.使用 GitHub 创建仓库,并配置 GitHub Pages0.Github Pages是什么1. 在 GitHub 上创建一个新仓库2. 创建您的静态网站3. 启用 GitHub Pages4. 等待构建完成5. 访问您的网站 二. Hexo1.什么是Hexo2.安装Hexo1. 安…

RAG查询改写方法概述

在RAG系统中,用户的查询是丰富多样的,可能存在措辞不准确和缺乏语义信息的问题。这导致使用原始的查询可能无法有效检索到目标文档。 因此,将用户查询的语义空间与文档的语义空间对齐至关重要,目前主要有查询改写和嵌入转换两种方…