软件测试基础知识整理(四)- 软件开发模型、测试过程模型

news2024/11/19 16:22:56

目录

一、软件开发模型

1.1 瀑布模型

1.1.1 特点

1.1.2 优缺点

1.2 快速原型模型(了解)

1.2.1 特点

1.2.2 优缺点

1.3 螺旋模型(了解)

1.3.1 特点

1.3.2 优缺点

二、测试过程模型

2.1 V模型(重点)

2.1.1 特点

2.1.2 优缺点

2.2 W模型

2.2.1 特点

2.2.2 优缺点


一、软件开发模型

1.1 瀑布模型

(1)需求分析:

  • 研发分析需求说明书
  • 判断需求的可实现性

(2)概要设计:

  • 用到具体的技术点
  • 大致模块划分

(3)详细设计:

  • 详细到可以为编码做支持
  • 类和类的关系,类的设计
  • 函数设计
  • 各个接口的细节
  • 数据库表的关系,字段关系

(4)编码:

  • 依托于详细设计进行编码操作

(5)测试

(6)维护:

  • 上线后也需要持续维护

1.1.1 特点

  1. 是一种线性模型。在所有模型中占有重要的地位,是所有模型的一个基础。
  2. 每个阶段执行一次,文档驱动,按线性顺序进行软件开发。

每个阶段之间有明确的输入和输出,各个阶段按顺序执行,前一阶段完成后才能进入下一阶段。这使得开发过程比较可控,适用于对需求比较稳定、具有明确规格的项目。

1.1.2 优缺点

优点:

  1. 结构清晰:明确的阶段和顺序,使开发过程结构化和可控。
  2. 文档化程度高:每个阶段都有相应的文档产出,有利于项目的管理。
  3. 易于管理和控制:依次进行阶段,有利于项目的管理和进度控制。

缺点:

  1. 不适应需求变化:对需求变化和调整较为困难,一旦进入下一个阶段,很难回头修改前面阶段的成果。
  2. 风险控制较晚:风险可能在后期才被发现,导致修复成本高。
  3. 缺乏灵活性:由于瀑布模型的开发过程是线性的,开发人员每个阶段的选择和决策都相对受限,缺乏灵活性和创新性。
  4. 可能导致较长的交付周期:由于每个阶段需要完成后才能进入下一个阶段,可能导致较长的交付周期。 

1.2 快速原型模型(了解)

在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。

1.2.1 特点

  1. 快速迭代:注重迅速创建和迭代原型。
  2. 用户参与:鼓励用户积极参与。
  3. 可视化交互:通常采用可视化和交互性的原型工具
  4. 风险降低:通过快速创建和验证原型,快速原型模型能够及早发现和解决问题,降低开发过程中的风险。
  5. 迭代改进:支持持续改进和迭代。
  6. 适应需求变化:具有一定的灵活性,可以更好地适应需求变化。

1.2.2 优缺点

优点:克服瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带来的形目开发风险

缺点:不太适合大型系统的开发(适合小型的、灵活性高的系统)

1.3 螺旋模型(了解)

 

1.3.1 特点

  1. 风险驱动:强调对项目风险的评估和管理。
  2. 迭代循环:采用迭代循环的方式进行软件开发。
  3. 阶段性输出:每个迭代循环的结束阶段,会产生一个阶段性的软件输出,可以是一个原型、一个部分的系统功能或一个可执行的软件版本。
  4. 用户参与:鼓励用户的积极参与。
  5. 遵循计划:注重项目计划和控制。
  6. 增量交付:通过每个迭代循环的输出,实现增量交付。
  7. 可调整性:允许根据项目的需要进行调整。

1.3.2 优缺点

优点:引进风险分析,有助于降低风险,并及时采取措施解决问题。

缺点:风险分析需要专业的知识和人员,需要有经验的项目团队来管理和执行。 

二、测试过程模型

2.1 V模型(重点)

V模型本身是软件开发模型瀑布模型的变种,反映了测试活动与分析和设计的关系。

V模型表明了测试过程本身存在不同的阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系。

2.1.1 特点

  1. 阶段性对应:将开发过程和测试过程相互对应,每个开发阶段都有与之对应的测试阶段。
  2. 明确的验证:强调在开发阶段都有相对应的验证,以确保开发过程的正确性和产品的质量。
  3. 逐步递进:采用逐步递进的方式进行开发和测试,每个阶段都构建在前一个阶段第基础上。
  4. 测试驱动:强调了测试的重要性,将测试的活动作为开发活动的驱动力,以确保软件的质量。

2.1.2 优缺点

优点:

  1. 提前测试:在早期开发阶段就注重测试,早期发现问题和解决问题,减少后期的成本和风险。
  2. 明确的验证:确保开发过程的正确性和产品的质量。
  3. 易于理解和实施:结构清晰,容易理解和实施,能够明确各个阶段的任务和目标。

缺点:

  1. 不适用于需求变更频繁的项目
  2. 对需求变更的适应性较低

2.2 W模型

测试伴随整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。

2.2.1 特点

  1. 强调测试活动:测试活动与开发活动相互对应,每个开发阶段都有与之对应的测试阶段,测试伴随整个软件开发周期。
  2. 并行测试:鼓励在每个开发阶段并行进行测试活动。

2.2.2 优缺点

 优点:

  1. 强调测试活动:明确了测试在软件开发过程中的重要性。
  2. 早期测试:在开发早期就开始测试,有助于及早发现和修复问题,减少后期成本和风险。
  3. 全面的测试覆盖:通过阶段性的测试活动,确保了从需求到维护的全面测试覆盖。

缺点:

  1.  不适用于需求变更频繁的项目。
  2. 对需求变更的适应性较低。
  3. 使用起来技术复杂度高,对于需求和设计的测试要求高,实践起来困难。

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

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

相关文章

LeetCode_29. 两数相除

目录 题目描述 思路分析 我的题解 题目描述 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断,也就是截去(truncate)其小数部分。例如&#xff…

8个免费的高质量UI图标大全网站

UI图标素材是设计师必不可少的设计元素。 高质量的UI图标会让设计师的设计效率事半功倍。 本文分享8个免费的高质量UI图标大全网站。 即时设计资源社区 即时设计资源广场中精选了多款专业免费的UI图标设计资源,无需下载即可一键保存源文件,同时还提供…

深入浅析Linux Perf 性能分析工具及火焰图

Perf Event 子系统 Perf 是内置于 Linux 内核源码树中的性能剖析(profiling)工具。它基于事件采样的原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。可用于性能瓶颈的查找与热点代码的定位…

Maven PKIX path building failed 错误提示

最近公司的项目突然出现了下面的提示。 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 2]问题和解决 出现上面的提示的问题是因为 SSL 签名的问题。 …

经典面试题:理解Cookie和Session之间的区别

文章目录 一、Cookie概念先知1、Cookie是什么?2、Cookie从哪里来?3、Cookie要存到哪里去?4、Cookie是存在哪里的?5、浏览器是如何通过Cookie来记录的?6、Cookie的过期时间有什么用? 二、见见Cookie三、会话…

软件设计师考试笔记,已通过

目录 系统可靠度 外部实体 内聚类型 编译过程 逆波兰式 前驱图 scrum框架模型 编译和解释 有限自动机 聚簇索引和非聚簇索引 二叉树的前序,中序,后序遍历 动态规划贪心算法 算法 01背包问题 系统可靠度 1. 串联部件可靠度 串联部件想要这条路走通,只有…

软件测试行业7年了,薪资从10k到了22k,感觉到头了?

蜕变之前 明天的希望,让我们忘了今天的痛苦。 怎样区别一个废柴和一个精英?看外貌,看气质,看谈吐,看消费… 有人忙着把人和人进行分类,有人忙着怎么从这一阶层过渡到上一阶层。当你很累的时候&#xff0c…

引入外部文件实现步骤

1.引入数据库相关依赖 2.创建外部属性文件&#xff0c;properties格式&#xff0c;定义数据信息&#xff1a;用户名 密码 地址等 3.创建spring配置文件&#xff0c;引入context命名空间&#xff0c;引入属性文件&#xff0c;使用表达式完成注入 <beans xmlns"http://w…

交友项目【集成环信Api】

目录 1&#xff1a;自动装配 2&#xff1a;查询用户环信账户 3&#xff1a;环信ID查询用户信息 1&#xff1a;自动装配 在项目中集成环信API&#xff0c;完成即时通信等 环信官方文档地址&#xff1a;Java Server SDK [IM 开发文档] 自动装配模块&#xff1a; pom文件相关…

2.数据结构期末复习之顺序表和链表

1.表是可以是线性结构 学号姓名19(数据项)jams(数据项)20(数据项)ming(数据项) 19 jams或 20 ming是数据元表单个的是数据项‘’线性结构可以表示为 19 jams->20 ming2.什么是逻辑结构?:具有相同类型的有限序列(元素排序的位置,排兵布阵操作的方法) a1 a2 a3 .... an (空…

jenkins流水线使用入门示例

之前采用Jenkins的自由风格构建的项目&#xff0c;每个步骤流程都要通过不同的方式设置&#xff0c;并且构建过程中整体流程是不可见的&#xff0c;无法确认每个流程花费的时间&#xff0c;并且问题不方便定位问题。 Jenkins的Pipeline可以让项目的发布整体流程可视化&#xf…

低代码开发大势所趋,这款无代码开发平台你值得拥有

文章目录 什么是低代码iVX和其它低代码的平台的区别没有创新的“拼凑”&#xff0c;没有好东西iVX在线编辑器体验 什么是低代码 低代码&#xff08;Low Code&#xff09;是一种可视化的应用开发方法&#xff0c;用较少的代码、以较快的速度来交付应用程序&#xff0c;将程序员…

ElasticSearch漫游 (1.安装ELK)

前期准备&#xff1a; 请搭建好linux环境 推荐使用centos7系统请关闭linux防火墙请安装好docker 安装ES 创建网络 我们需要部署kibana容器&#xff0c;因此需要让es和kibana互联&#xff0c;这里先创建一个网络。 docker network create es-net加载es镜像 运行docker命令 部…

智能无线温振传感器:提高锂电设备故障诊断精度的利器

当今锂电工厂对于设备可靠性和生产效率的要求越来越高&#xff0c;而设备故障诊断是其中非常重要的一环。针对锂电设备的振动和温度等健康状态的监测&#xff0c;智能无线温振传感器是一款非常有用的工具。 图.太阳能面板生产&#xff08;iStock&#xff09; 智能无线温振传感器…

和数组处理有关的一些OJ题(JAVA)(ArrayList)

1、给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须确保时间复杂度为O(N)&#xff0c;空间复杂度为O&#xff0c;并原地修改输入数组。元素的顺序可以改…

Android系统原理性问题分析 - Android Java框架层的结构

声明 在Android系统中经常会遇到一些系统原理性的问题&#xff0c;在此专栏中集中来讨论下。Android系统&#xff0c;为了能够更好的理解Android的Java世界的运行规律&#xff0c;此篇分析Android Java框架的结构。此篇参考一些博客和书籍&#xff0c;代码基于Android 7.1.1&a…

资产处置求变,京东拍卖如何做好“价值枢纽”?

近年来&#xff0c;随着资产处置市场规模快速成长以及互联网行业飞速发展&#xff0c;金融资产、司法拍卖、罚没物资等处置方式从最初单纯线下拍卖逐渐落地互联网&#xff0c;服务专业化程度也在不断提高。为更好适应市场变化&#xff0c;满足不断增长的市场需求&#xff0c;5月…

NISP二级证书含金量如何

国家信息安全水平考试&#xff08;National Information Security Test Program&#xff0c;简称NISP&#xff09;&#xff0c;是由中国信息安全测评中心实施培养国家网络空间安全人才的项目。 为培养更多优秀的实践型网络安全人才&#xff0c;中国信息安全测评中心推出了国家…

替代MySQL半同步复制,Meta技术团队推出MySQL Raft共识引擎

作者&#xff1a;Anirban Rahut、Abhinav Sharma、Yichen Shen、Ahsanul Haque 原文链接&#xff1a;https://engineering.fb.com/2023/05/16/data-infrastructure/mysql-raft-meta/ 译者&#xff1a;ChatGPT 责编&#xff1a;张红月 MySQL Raft是MySQL数据库中一种基于Raft协议…

探索LeetCode【0010】正则表达式匹配(已懂,未练习)

目录 0.1 题目0.2 补充示例1. 参考B站视频2. 官方答案的评论-可用3. chatGPT的思路和解法-可用 0.1 题目 题目链接&#xff1a;【0010】正则表达式匹配 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹…