软件测试概念篇(下)|开发模型与测试模型

news2024/11/23 23:20:39

作者:爱塔居

专栏:软件测试

作者简介:大三学生,希望同大家一起进步!
文章简介:主要介绍软件生命周期、瀑布模型和螺旋模型两个开发模型,V模型和W模型两个测试模型

文章目录

目录

文章目录

一、软件的生命周期

二、开发模型

2.1 瀑布模型

2.2 螺旋模型

​编辑

三、增量、迭代

4、软件测试模型

4.1 软件测试v模型


一、软件的生命周期

软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。

软件生命周期的六个阶段:需求分析、计划、设计、编码、测试、运行维护

二、开发模型

软件开发模型总体上有传统的瀑布模型和后来兴起的快速原型模型两类。在实践中,软件开发人员对上诉两类开发模型进行了改进,产生了一些可行的软件开发模型,常见开发模型有:瀑布模型、快速原型模型、增量模型、喷泉模型、螺旋模型。

2.1 瀑布模型

瀑布模型遵循软件生命周期的划分规划,明确规定每个阶段的任务,各个阶段的工作以线性顺序展开,恰如奔流不息的瀑布。

 实线箭头表示开发工作的流程,每个阶段顺序进行,有时会返工;虚线箭头表示维护工作的流程,根据不同的情况返回到不同的阶段进行维护。

瀑布模型三个特点:

1.软件生命周期的顺序性

顺序性是指只有前一个阶段工作完成以后,后一个阶段的工作才能开始。前一阶段的输出文档就是后一阶段的输入文档。只有前一阶段有正确的输出,后一阶段才可能有正确的阶段。瀑布模型的特点是由文档驱动的。

2.尽可能推迟软件的编码

瀑布模型在编码之前安排了需求分析、概要设计和详细设计等阶段,从而把逻辑设计和编码清楚地划分开,尽可能推迟编码阶段。

3.保证质量

瀑布模型坚持两个重要的说法:

(1)每个阶段都要完成规定的文档

(2)每个阶段都要对已完成的文档进行复审,以便及早发现隐患,排除故障

瀑布模型的优点:

1.强调开发的阶段性

2.强调早期计划及需求调查

3.强调产品测试

瀑布模型的缺陷:

由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;风险往往迟至后期的检测阶段才显露,因而失去及早纠正的机会。如果在需求引入的一个缺陷要到测试阶段甚至更后的阶段才会发现,通常会导致前面阶段的工作大面积返工。

瀑布模型使用场合:

瀑布模型开发适合于在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用。

2.2 螺旋模型

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型时渐进式开发模型的代表之一。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试世间和阶段,测试必须跟随开发的迭代而迭代。

 螺旋模型的优点:

1.强调严格的全过程风险管理

2.强调各开发阶段的质量

3.提供机会检讨项目是否有价值继续下去

螺旋模型的缺点:

引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求,这需要人员、资金和时间的投入

螺旋模型的使用场合:

适合那些规模庞大、复杂度高、风险大的项目

三、增量、迭代

增量开发能显著降低项目风险、结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地写作。

增量是逐快建造的概念,比如画一副人物画,可以先画头、再画脖子、画手脚……

迭代是精益求精的概念,先画整体轮廓,再勾勒出基础雏形,再细化、着色。

4、软件测试模型

4.1 软件测试v模型

 V模型最早是由Paul Rook在20世纪80年代后期提出的,目的是改进软件开发的效率和效果。是瀑布模型的变种。
(1)V模型明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。

(2)V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。
局限性:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试。

4.2 软件测试W模型

W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系

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

W模型的优点:有利于尽早地全面地发现问题。同样,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度

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

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

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

相关文章

【Go】五、网络编程

文章目录 网络编程1、互联网协议介绍2、Socket编程2.1、socket图解2.2、TCP编程2.3、UDP编程2.4、粘包(❌没有详细看代码,但是大概知道怎么实现) 3、Http编程4、WebSocket编程 网络编程 1、互联网协议介绍 2、Socket编程 2.1、socket图解 1…

这家工作室为网飞、亚马逊、迪士尼都制作过特效

过去的十年里,CGEV工作室通过为电影、电视剧以及Netflix、Amazon、Disney等平台制作大量内容,建立了坚不可摧的声誉。我们采访了CGEV团队,了解他们如何在每一个环节都依赖于ftrack Studio。 CGEV全称Compagnie Gnrale des Effets Visuels&…

C++缺省参数

目录 什么是缺省参数缺省参数分类全缺省参数半缺省参数 缺省参数函数的声明缺省参数的使用 什么是缺省参数 缺省参数是声明或定义函数时,为函数的参数指定一个缺省值。 在调用该函数时,如果没有指定实参,那么形参就会采用缺省值,如果指定了实…

【C语言】基础语法5:数组和指针

上一篇:函数和递归 下一篇:字符串和字符处理 ❤️‍🔥前情提要❤️‍🔥   欢迎来到C语言基本语法教程   在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望…

C#串口通信从入门到精通(4)——串口调试助手的使用

前言: 关于本文中使用到的串口助手工具,订阅专栏后,加入vip群,即可在群文件免费下载 1、认识串口助手 串口助手主要的功能有以下六个模块,功能介绍分别如下: 1.1 打开、关闭串口、清除接收区数据按钮区 这些按钮用于打开串口、关闭串口、清除接收数据区的数据 1.2 …

IIC协议——同步半双工串行通信方式

文章目录 前言一、简要介绍1、优点2、缺点 二、信号线和连接方式1、信号线2、连接方式2.1 单主设备,单从设备2.2 单主设备,多从设备2.3 多主设备,多从设备 三、数据传输格式1、数据传输过程 二、SPI配置1、传输模式2、地址位宽3、仲裁机制3.1…

【Linux】Linux基本指令(1)

一.前言 从这篇文章开始,博主就开启了Linux学习之路了,本篇文章也是博主的第一篇Linux的文章,今后也会持续不断更新的。 二.理解文件 1.文件 文件文件数据文件属性(所以一个建好的文件就算没有数据,也占用存储空间&am…

[RoarCTF 2019]Easy Calc、攻防世界 ics07、[极客大挑战 2019]EasySQL

[RoarCTF 2019]Easy Calc 进入题目是一个计算器的功能 检查网页源码发现这样一个重要信息 这题有WAF计算功能是通过calc.php这里面的代码执行的&#xff0c;我们去访问一下得到源码 <?php error_reporting(0); if(!isset($_GET[num])){show_source(__FILE__); }else{$str…

传统机器学习(二)逻辑回归算法(二)

传统机器学习(二)逻辑回归算法(二) 之前在传统机器学习(二)逻辑回归算法(一)中介绍了逻辑回归的原理、公式推导、手动python实现及sklearn工具包的使用详解等内容。继续对逻辑回归的使用细节进行介绍。 一、如何得到逻辑回归模型系数 1.1、一个简单的逻辑回归例子 已采集15…

广州蓝景分享—6 个ES13 中非常实用的新 JavaScript 特性

首先作为前端最重要的编程语言JavaScript&#xff0c;每年都在不断发展&#xff0c;让该语言都会通过新功能变得更强大。今天由小蓝跟大家分享6 个ES13 中非常实用的新 JavaScript 特性。 接下来让我们开始&#xff1a; 1.at 当我们想要获取数组的第 N 个元素时&#xff0c;…

Redis底层设计与源码分析---学习笔记

一.Redis为什么快 高速的存储介质 机械硬盘—>固态硬盘—>内存&#xff0c;随机访问的延迟逐渐变小 优良的底层数据结构设计 底层设计用到了hashtable&#xff0c;时间复杂度低 高效的网络IO模型 epoll等&#xff0c;不同平台有不同的实现   高效的线程模型 二.Re…

【论文阅读笔记|ACL2022】Legal Judgment Prediction via Event Extraction with Constraints

论文题目&#xff1a;Legal Judgment Prediction via Event Extraction with Constraints 论文来源&#xff1a;ACL2022 论文链接&#xff1a;https://aclanthology.org/2022.acl-long.48.pdf 代码链接&#xff1a;GitHub - WAPAY/EPM 0 摘要 近年来&#xff0c;虽然法律判…

动态内存管理--->(经典入手版详解)

友友们有时候在开辟内存的时候&#xff0c;所需要的空间大小不太好确定&#xff0c;只有在程序运行的时候才能知道&#xff0c;这时候我们就要尝试一下动态内存开辟空间了&#xff0c;下面来和阿博一起了解并掌握它吧&#x1f917;&#x1f917;&#x1f917; 文章目录 1.为什么…

系统的部署

把报错的三个给删了&#xff0c;系统可以运行了我猜测它对应的是商品分类页面 我觉得它分页器有问题所以研究了下userdto和mtuser的区别 Failed to parse configuration class [com.fuint.fuintApplication]; nested exception is java.lang.IllegalArgumentException: Could…

Mycat数据库中间件 mycat2 路由转发

1.非分片字段查询 Mycat中的路由结果是通过分片字段和分片方法来确定的。例如下图中的一个Mycat分库方案&#xff1a; 根据 tt_waybill 表的 id 字段来进行分片 分片方法为 id 值取 3 的模&#xff0c;根据模值确定在DB1&#xff0c;DB2&#xff0c;DB3中的某个分片 非分片字段…

ESP32设备驱动-LPS25H压阻式压力传感器驱动

LPS25H压阻式压力传感器驱动 文章目录 LPS25H压阻式压力传感器驱动1、LPS25H介绍2、硬件准备3、软件准备4、驱动实现1、LPS25H介绍 LPS25H 是一款超紧凑型绝对压阻式压力传感器。它包括一个单片传感元件和一个能够从传感元件获取信息并向外部世界提供数字信号的 I2C 接口。 传…

leetcode两数、三数、四数之和

如有错误&#xff0c;感谢不吝赐教、交流 文章目录 两数之和题目方法一&#xff1a;暴力两重循环&#xff08;不可取&#xff09;方法二&#xff1a;HashMap空间换时间 三数之和题目方法一&#xff1a;当然是暴力破解啦方法二&#xff1a;同两数之和的原理&#xff0c;借助Has…

工厂管理系统该如何选?5款主流的工厂管理软件全测评!

工厂管理系统该如何选&#xff1f;5款主流的工厂管理软件全测评&#xff01; 阅读本文您将了解&#xff1a;1.工厂管理系统软件是什么&#xff1b;2.五大主流工厂管理系统介绍&#xff1b;3.如何选择工厂管理系统。 一、工厂管理系统软件是什么&#xff1f; 工厂管理系统软件…

SpringBoot整合JUnit--MyBatis--MyBatis-Plus--Druid

文章转自黑马程序员SpringBoot学习笔记,学习网址:黑马程序员SpringBoot2教程 1.整合JUnit ​ SpringBoot技术的定位用于简化开发&#xff0c;再具体点是简化Spring程序的开发。所以在整合任意技术的时候&#xff0c;如果你想直观感触到简化的效果&#xff0c;你必须先知道使用…

SpringBoot项目创建和使用

Idea创建&#xff08;社区版&#xff09; 安装插件 首先找到设置&#xff0c;然后点击插件&#xff0c;在里面搜索 springboot helper 安装好后名字和图标会变为如下&#xff1a; 安装好后就可以开始创建项目了。 创建项目 第一步&#xff1a;打开创建项目面板 上面设置源…