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

目录

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.hqwc.cn/news/685867.html

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

相关文章

Unreal Engine(虚幻引擎)的版本特点

Unreal Engine(虚幻引擎)是Epic Games开发的游戏引擎,广泛应用于游戏开发、影视制作、建筑设计、虚拟现实等领域。Unreal Engine版本指的是该引擎的发布版本,不同版本之间在功能、性能和稳定性等方面存在差异。北京木奇移动技术有…

【JavaScript】内置对象 - 数组对象 ① ( 数组简介 | 数组创建 | 数组类型检测 )

文章目录 一、数组对象1、数组简介2、数组创建3、数组检测 - Array.isArray() 方法4、数组检测 - instanceof 运算符 Array 数组对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array 一、数组对象 1、数组简介 在 JavaScr…

【vulhub靶场】Apache 中间件漏洞复现

【vulhub靶场】Apache 中间件漏洞复现 一、Apache HTTPD 换行解析漏洞(CVE-2017-15715)1. 漏洞详情2. 影响版本3. 漏洞复现 二、Apache多后缀解析漏洞(apache_parsing_vulnerability)1. 漏洞详情2. 漏洞复现 三、Apache HTTP Serv…

JDK不同版本里中国夏令时时间

什么是夏令时? 夏令时,(Daylight Saving Time:DST),也叫夏时制,又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采…

day2_greedyIntervalsLRU/LFU

二、贪心算法之区间调度问题 0.计算一个区间集合中无重复的区间的最大数量(模板) public int intervalSchedule(int[][] intvs) {if (intvs.length 0) return 0;// 按 end 升序排序Arrays.sort(intvs, (a, b) -> Integer.compare(a[1], b[1]));// 至少有一个区间不相交in…

摩菲Murphy显示器显示表 总线编程器维修PV780B

Murphy仪器维修包括:摩菲数字显示器;摩菲监视仪表;摩菲CAN总线控制器等维修 维修故障包括:黑屏、指示灯无显示,触摸屏上电无反应, 上电蓝屏、白屏,通电几分钟后屏幕变为蓝屏,主板故…

java中的oop(三)、构造器、javabean、uml类图、this、继承

!! 有get/set方法的情况基本就是说要搞个私有属性,不直接对外开放; 构造器 Person p new Person(); //其中的Person();就是构造器;---造对象;Constructor–建设者,建造者; 作用 搭配new 创建类的&…

DS:顺序表、单链表的相关OJ题训练(2)

欢迎各位来到 Harper.Lee 的学习世界! 博主主页传送门:Harper.Lee的博客主页 想要一起进步的uu欢迎来后台找我哦! 一、力扣--141. 环形链表 题目描述:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个…

java数据结构之数组系统了解

1.数组介绍 数组就是一个存储数据的容器,容器的长度固定、存储元素的数据类型固定。 跟变量加以区分:变量也可以存储数据,但是只能存一个值。当要存的数据比较多的时候,用变量就不方便了。我们就可以使用数组来存储。 1.1数组…

嫁接打印的技术要点

所谓嫁接打印,是一种增减材混合制造的方式。它将已成形的模具零件当作基座,在此基础上“生长”出打印的零件。其中基座通常采用传统加工方式制造,而打印部分则使用专用的金属粉末,通过 3D 打印技术成型。 嫁接打印之所以备受欢迎&…

安全 | 开源入侵防御系统 Snort

目录 Snort 概要 入侵预防系统模式 数据包记录器和嗅探器模式 网络安全学习路线 (2024最新整理) 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明: Snort 概要 Snort 概要 是世界上最重要的开源入…

Python语言基础学习(上)

目录 一、常量和表达式 二、变量和类型 2.1 认识变量 2.2 定义变量 2.3 变量类型 1、整数 int 2、浮点数(小数)float 3、字符串 str 4、布尔类型 2.4 类型转换 三、注释 3.1 单行注释 3.2 文档注释(或者多行注释) …