【软件测试】需求的概念和常见模型(瀑布、螺旋、增量、迭代)

1. 什么是需求

在企业中,经常会听到:用户需求软件需求

  • 用户需求:没用经过合理的评估,通常就是一句话(开发一个五彩斑斓的黑)
  • 软件需求:开发人员和测试人员执行工作的依据

1.2 软件需求

在工作中实际见到的软件需求的文档类似于下面的表示:

image.png

注意:用户的需求不能直接作为开发和测试的依据。针对用户的需求,产品经理需要进行需求分析(技术可行性、市场可行性、成本投入和收益占比等)后续才可转变为软件需求

2. 开发模型

规范的流程是在时代的演变下逐渐成型的,并不是一开始就是规范的流程。

软件的生命周期

什么是生命周期?

  • 生命周期指的是从生命开始到生命结束的一段时间。以人为例,人类的生命周期是从生命孕育开始,中间会经历幼年、童年、少年、青年、老年,最终直至死亡

  • 而软件/产品的生命周期也是如此,需求的开始是软件生命的起点,中间会经历需求的计划、设计、程序开发、程序设计等阶段,直至软件不再进行维护便到了生命的终点

步骤总结映射软件流程
为什么要建房子?商品房还是普通住宅?建造 100 层技术上是否可行?明确合理的建房目标需求分析
什么时候开发建房子?计划竣工时间?多久可以交房?计划好时间计划
建房前明确流程:先打地基,做基础框架,砌墙、粉刷、水电工程…设计好具体的建房流程设计
按照前面的流程和时间实施建房中…施工中编码
房屋建造完成,开发商验收成果、买家验收房子品质(房子是否牢固,是否漏水及其他偷工减料的地方,是否按照
规定来建造的)
检查房屋建造结果测试
检查结束开始逐步入住,使用中出现了各种情况如房屋漏水、墙面掉皮、下水道堵塞等问题,一边使用一边找物业
修理
使用并及时维护运行维护
  • 设计阶段
    • 开发:设计开发文档(用什么技术、用什么框架等待)
    • 测试:明确需求,设计测试用例、测试计划(明确本次测试设计到的工具、设计到的测试类型等等)

因此,我们就得到了软件(开发)的生命周期:
需求分析——计划——设计——编码——测试——运行维护

对于软件的生命周期中,每个阶段都在做什么呢?

阶段具体内容产出
需求分析分析用户需求是否合理,分别从市场需求、技术等方面进行分析。该阶段会输出需求等文档。
计划对成立的需求执行需求执行计划,多长时间内完成该需
求,每段时间具体完成哪些功能。
该阶段会输出计划等文档。
设计将需求细化成⼀个个任务,团队成员各司其职领取任务
并进行技术设计(如何进行架构设计,设计哪些接口、
采用什么技术)
该阶段会输出技术等文档。
编码开发人员参考需求文档、设计文档、交互图等等文件进
行代码的编写。
代码文件等文档。
测试测试人员需要介入到软件的测试中来,参考测试用例对
软件进行测试。
测试用例、测试设计与计
划、测试报告等文档
运行维护项目测试结束之后,项目需要进行上线,并对产品进行
线上的维护。线上的维护主要分为三个方面。分别为修
复性维护、完善性维护和预防性维护。
  • 维护分为:
    1. 修复性维护:对项目中未发现的问题进行修复
    2. 完善性维护:对功能进行完善
    3. 预防性维护:居安思危,为了避免产品在线上出现一些不可预料的问题,进行一些防护的手段。正常使用没问题,但在一些极端的情况下会出现问题(性能问题),淘宝双十一并发太大、微博热搜
  • 产品经历:定需求,明确需求是否正常执行
  • 为整个项目负责,人员调配等工作
  • 交互:设计交互图
  • 前端:设计前端内容(框架、技术、工具)
  • 后端:设计后端内容(框架、技术、工具)
  • 测试:测试用例、测试计划(测试类型、测试工具等)

常见开发模型

软件开发流程(软件生命周期)

瀑布模型

与软件的生命周期基础流程大差不差
image.png

特点

  • 每个流程只执行一次
  • 线性的开发流程

瀑布模型最大的一个缺陷在于,可以运行的产品很迟才能被看到

  • 意味着没有收益/收益非常低
优点/特点缺点
强调开发的阶段性测试后置,前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修复的机会
线性结构,每个阶段只执行一次测试后置,必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴漏给用户(产品质量差)
是其他模型的基础框架周期太长,产品很迟才能被看到和使用,可能会导致需求/功能过时
  • 瀑布模型的适用场景:需求固定的小项目

螺旋模型

当企业中存在趣多规模庞大、复杂度高、风险大的项目,这种情况下就适合用螺旋模型image.png|480

  • 螺旋模型中,各个阶段都引入了风险分析和模型 image.png
  • 目的是减少各阶段遗留的风险问题,避免把问题留到后面的阶段
优点缺点
强调严格的全过程风险管理项目中可能存在的风险性与风险管理人员的技能水平有直接关系
强调各开发阶段的质量需求人员、资金、时间的增加和投入,可能会导致项目的成本太高
增加风险分析和原型

增量模型、迭代模型

既然需求有大有小,小需求我们可以直接用瀑布模型开发出来,复杂的需求我们就将其分解为很多小的需求。而这些被分解出的小需求就称为——增量1、增量2、增量3…

image.png

  • 将大需求拆分成小需求,每个小需求独立开发上线,这就是增量模型

有一个大需求,先上面基础版本,再上线优化版本1、优化版本2、优化版本3…

  • 基础版本:看商品下单
  • 优化版本1:购物车,丰富详情页信息
  • 优化版本2:丰富下单的付款方式

  • 这就是迭代模型

image.png

  • 增量是逐块建造的概念
  • 迭代是反复求精的概念
  • 适用于大型项目,需求不明确

迭代模型和增量模型现在已经不会单独去使用了,而是配合着去使用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

食品配送管理系统(源码+文档+部署+讲解)

食品配送管理系统是成品商业化项目,系统可基于源码二开。 系统概述 餐饮食品配送,包含配送人APP、下单APP、管理端等,实现订餐、配餐,用于食品店、中央厨房等订餐、团餐业务 本项目名称为食品配送系统,是针对食品配…

./bin/mindieservice_daemon启动成功

接MindIE大模型测试及报错Fatal Python error: PyThreadState_Get: the function must be called with the GIL held,-CSDN博客经过调整如下红色部分参数,昇腾310P3跑起来了7b模型: rootdev-8242526b-01f2-4a54-b89d-f6d9c57c692d-qjhpf:/home/apulis-de…

我谈维纳(Wiener)复原滤波器

Rafael Gonzalez的《数字图像处理》中,图像复原这章内容几乎全错。上篇谈了图像去噪,这篇谈图像复原。 图像复原也称为盲解卷积,不处理点扩散函数(光学传递函数)的都不是图像复原。几何校正不属于图像复原&#xff0c…

精选 Top10 开源调度工具,解锁高效工作负裁自动化

在大数据和现代 IT 环境中,任务调度与工作负载自动化(WLA)工具是优化资源利用、提升生产效率的核心驱动力。随着企业对数据分析、实时处理和多地域任务调度需求的增加,这些工具成为关键技术。 本文将介绍当前技术发展背景下的Top …

高效视觉方案:AR1335与i.MX8MP的完美结合

方案采用NXP i.MX8MP处理器和onsemi AR1335图像传感器,i.MX8MP集成四核Cortex-A53、NPU及双ISP技术。AR1335是一颗分辨率为13M的CMOS传感器。它使用了先进的BSI技术,提供了超高的分辨率和出色的低光性能,非常适合于需要高质量图像的应用。此外…

Ubuntu+ROS 机械臂拾取和放置

官方链接:https://github.com/skumra/baxter-pnp 1.下载并安装 SDK 依赖项 sudo apt-get install python-wstool python-rosdep 2.创建新的 catkin 工作区 mkdir -p ~/ros_ws/src cd ~/ros_ws/src 3.使用 wstool 下载 rosinstall 文件并将其复制到 Catkin 工作区…

论文阅读《Structure-from-Motion Revisited》

摘要 增量式地运动结构恢复是从无序图像集合中进行三维重建的一个普遍策略。虽然增量式地重建系统在各个方面上都取得了巨大的进步,但鲁棒性、准确性、完整度和尺度仍然是构建真正通用管道的关键问题。我们提出了一种新的运动结构恢复技术,它改进了目前…

基于Spring Boot的船运物流管理系统的设计与实现,LW+源码+讲解

摘要 近年来,信息化管理行业的不断兴起,使得人们的日常生活越来越离不开计算机和互联网技术。首先,根据收集到的用户需求分析,对设计系统有一个初步的认识与了解,确定船运物流管理系统的总体功能模块。然后&#xff0…

威联通Docker Compose搭建NAS媒体库资源工具NAS Tools

文章目录 一、环境配置1-1 需要的配件1-2 环境安装及配置注意:获取PUID/PGID1-3 目录位置准备总结,这里我们要做5件事备注:Docker无法下载解决办法二、登录配件,进行配件连接和配置2-1 jackett设置2-2 qBittorrent设置!!!设置文件下载地址2-3 jellyfin设置2-4 NASTools设…

Spring Boot - 扩展点 EnvironmentPostProcessor源码分析及真实案例

文章目录 概述EnvironmentPostProcessor 作用EnvironmentPostProcessor 实现和注册创建类并实现接口注册到 Spring Boot常见应用场景 源码分析1. EnvironmentPostProcessor 接口定义2. 扩展点加载流程3. 加载 EnvironmentPostProcessor 实现类4. EnvironmentPostProcessor 执行…

【eNSP】企业网络架构链路聚合、数据抓包、远程连接访问实验(二)

一、实验目的 网络分段与VLAN划分: 通过实验了解如何将一个大网络划分为多个小的子网(VLAN),以提高网络性能和安全性。 VLAN间路由: 学习如何配置VLAN间的路由,使不同VLAN之间能够通信。 网络设备配置&am…

Python 智取京东商品详情:代码秘籍大公开

介绍使用 Python 获取京东商品详情的背景和意义,强调其在数据收集和分析中的重要性。 (一)数据收集的需求 在当今数字化的商业环境中,对京东商品详情数据的需求日益增长。市场调研人员需要这些数据来了解不同产品的市场份额、价格…

[C++]——位图与布隆过滤器

目录 一、前言 二、正文 1.位图 1.1 位图概念 1.2 位图的实现 1.2.1 Set 1.2.2 ReSet 1.2.3 Text 1.3 位图的应用 2.布隆过滤器 2.1布隆过滤器的提出 2.2 布隆过滤器概念 2.3 布隆过滤器的实现 2.3.1布隆过滤器的插入 2.3.2 布隆过滤器的查找 2.3.3 布隆过滤器…

工具收集 - java-decompiler / jd-gui

工具收集 - java-decompiler / jd-gui 参考资料 用法:拖进来就行了 参考资料 https://github.com/java-decompiler/jd-gui 脚本之家:java反编译工具jd-gui使用详解

Spark的容错机制:persist持久化机制checkpoint检查点机制区别

persist持久化机制: 作用:将RDD的数据缓存到内存或磁盘中,以便在后续操作中重复使用,减少计算开销。特点: 灵活性高:可以指定不同的存储级别(如仅内存、内存和磁盘、仅磁盘等)。 数…

Elasticsearch集群和Kibana部署流程

搭建Elasticsearch集群 1. 进入Elasticsearch官网下载页面,下载Elasticsearch 在如下页面选择Elasticsearch版本,点击download按钮,进入下载页面 右键选择自己操作系统对应的版本,复制下载链接 然后通过wget命令下载Elastics…

Flink API 的层次结构

Apache Flink 提供了多层 API,每层 API 针对不同的抽象层次和用途,使得开发者可以根据具体需求选择合适的 API 层次。以下是 Flink API 的层次结构及其简要说明:

案例精选 | 河北省某检察院安全运营中异构日志数据融合的实践探索

河北省某检察院是当地重要的法律监督机构,肩负着维护法律尊严和社会公平正义的重要职责。该机构依法独立行使检察权,负责对犯罪行为提起公诉,并监督整个诉讼过程,同时积极参与社会治理,保护公民权益,推动法…

SpringCloud框架学习(第二部分:Consul、LoadBalancer和openFeign)

目录 六、Consul服务注册和发现 1.基本介绍 2.下载运行 3.服务注册与发现 (1)支付服务provider8001注册进consul (2)修改订单服务cloud-consumer-order80 4.CAP (1)CAP理论 (2&#x…

成都睿明智科技有限公司解锁抖音电商新玩法

在这个短视频风起云涌的时代,抖音电商以其独特的魅力迅速崛起,成为众多商家争夺的流量高地。而在这片充满机遇与挑战的蓝海中,成都睿明智科技有限公司犹如一颗璀璨的新星,以其专业的抖音电商服务,助力无数品牌实现从零…