当前位置: 首页 > news >正文

软件测试的基础入门(二)

文章目录

  • 一、软件(开发)的生命周期
    • 什么是生命周期
    • 软件(开发)的生命周期
      • 需求分析
      • 计划
      • 设计
      • 编码
      • 测试
      • 运行维护
  • 二、常见的开发模型
    • 瀑布模型
      • 流程
      • 优点
      • 缺点
      • 适应的场景
    • 螺旋模型
      • 流程
      • 优点
      • 缺点
      • 适应的场景
    • 增量模型和迭代模型
      • 流程
      • 适应的场景
    • 敏捷模型
      • 流程
      • 优点
      • 适应的场景
  • 三、软件测试的生命周期
    • 定义
    • 各个阶段具体内容
  • 四、常见的测试模型
    • V模型
      • 定义
      • 优点
      • 缺点
    • W模型(双V模型)
      • 定义
      • 优点
      • 缺点
  • END


一、软件(开发)的生命周期

什么是生命周期

生命周期指的是从生命的开始到生命结束的一段时间。

软件(开发)的生命周期

需求分析——计划——设计——编码——测试——运行维护。

需求分析

具体内容产出
分析用户的需求是否合理,分别从市场需求、技术等方面进行分析。输出需求等文档。

计划

具体内容产出
对成立的需求执行计划。输出计划等文档。

设计

具体内容产出
将需求细化成一个一个的任务,团队的成员按照自己的岗位职责,进行技术的设计(如:进行架构设计、设计哪些接口、采用什么技术等)。输出技术等文档。

编码

具体内容产出
开发人员参考需求文档等有关文档,进行代码的编写。输出代码文件等文档。

测试

具体内容产出
测试人员根据需求文档,设计出测试用例,对软件进行测试。输出测试设计、测试计划、测试报告等文档。

运行维护

具体内容产出
有三个方面的维护:(1)修复性维护;(2)完善性维护;(3)预防性维护;~

(1)修复性维护:对项目中发现的问题进行修复;
(2)完善性维护:对功能进行完善;
(3)预防性维护:为避免产品出现不可预测的问题,采取一些预防的措施。

二、常见的开发模型

瀑布模型

流程

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

优点

  • 1、线性结构,每个阶段只执行一次;
  • 2、是其他开发模型的基础框架。

缺点

  • 1、周期太长,产品需要较长的时间才能看到和使用,可能会导致需求和功能过时;
  • 2、测试后置:
    (1)前期各个阶段存在的风险要到测试阶段才能被发现,出现项目大面积的返工;
    (2)留给测试阶段的时间可能不充分,软件可能存在缺陷。

基于上面的分析,瀑布模型 存在严重的项目风险。

适应的场景

需求固定的小项目


螺旋模型

流程

见下图:

优点

  • 1、引入了风险分析和原型;
  • 2、强调全过程的风险管控;
  • 3、重视各个开发阶段的质量。

缺点

  • 1、需要投入更多的人力、资金和时间,从而提高项目的成本;
  • 2、风险分析师的能力对项目中存在的风险有直接的影响。

适应的场景

规模庞大、复杂度高、风险大的项目。


增量模型和迭代模型

流程

增量是逐块建造的概念,迭代是反复求精的概念

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

适应的场景

大型项目,需求不明确。


敏捷模型

流程

需求分析——计划——设计——编码——测试。
需求被分解成许多可以增量开发的小部分,采用迭代开发。

优点

  • 1、轻文档;
  • 2、轻流程;
  • 3、重目标;
  • 4、重产出。

适应的场景

处理来自客户的变更请求以及合并这些变更所需的高成本和时间。
促进项目的快速完成。

三、软件测试的生命周期

定义

软件测试的生命周期是测试的流程,贯穿于软件的整个生命周期;
需求分析——测试计划——测试设计和测试开发——测试执行——测试评估——项目上线——运行维护。

各个阶段具体内容

软件测试的各个阶段具体工作内容
需求分析进行用户、技术和测试角度的分析。
测试计划制定测试计划,确定测试所花的时间。
测试设计和测试开发编写测试用例,写测试文档,明确测试方法、测试工具和测试流程等。
测试执行根据测试用例,使用测试工具对项目进行尽可能全面的测试覆盖。
测试评估根据测试中存在的BUG,输出一个测试报告。
项目上线将项目发布上线,根据需求进行跟踪软件的运行情况。
运行维护参加培训,收集问题进行反馈。

四、常见的测试模型

V模型

定义

如下图:

优点

  • 1、 改进了软件开发的效率和成果。
  • 2、明确的标注了测试过程中存在的不同类型的测试。
    如:
    单元和集成测试应检测程序的执行是否满足软件设计的要求;
    系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;
    验收测试确定软件的实现是否满足用户需要或合同的要求。

缺点

测试阶段还是放在编码的最后一个阶段,缺点同开发模型中的瀑布模型。

W模型(双V模型)

定义

如下图:

优点

  • 1、增加了软件各开发阶段中应同步进行的验证和确认活动,即体现了测试与开发的并行关系;
  • 2、有利于尽早地全面地发现问题。

缺点

  • 测试和开发阶段是线性的前后关系,存在连贯性,上一阶段完全结束,才能开启下一阶段;
  • 流程是连续的,重视流程,无法支持开发模型中的敏捷模型。

END

每天都在学习的路上!
On The Way Of Learning

相关文章:

软件测试的基础入门(二)

文章目录 一、软件(开发)的生命周期什么是生命周期软件(开发)的生命周期需求分析计划设计编码测试运行维护 二、常见的开发模型瀑布模型流程优点缺点适应的场景 螺旋模型流程优点缺点适应的场景 增量模型和迭代模型流程适应的场景…...

【SpringMVC】深入解析@ RequestMapping 注解的概念及使用和 MVC 介绍

Spring Web MVC入门 1. Spring Web MVC 什么是 Spring Web MVC? MVC官方文档介绍 Spring Web MVC是Spring框架中的一个用来做网站开发的部分,它是基于Servlet技术的。 虽然它的正式名字叫“Spring Web MVC”,但大家一般都简称它“SpringMVC”…...

YOLOv8 自定义目标检测

一、引言 YOLOv8 不仅支持预训练模型的推理,还允许用户将其应用于自定义对象检测。本文将详细介绍如何使用 YOLOv8 训练一个新的模型,并在自定义数据集上进行对象检测。 二、数据集准备 1. 数据集格式 YOLOv8 支持多种数据集格式,包括 CO…...

抓包分析工具介绍

什么是抓包分析工具? 抓包分析工具,也称为网络数据包嗅探器或协议分析器,用于捕获和检查网络上传输的数据包。这些数据包包含了网络通信的详细信息,例如请求的资源、服务器的响应、HTTP 头信息、传输的数据内容等等。通过分析这些…...

计算机毕业设计SpringBoot+Vue.js爱心捐赠项目推荐系统 慈善大数据(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

Python----数据分析(Matplotlib四:Figure的用法,创建Figure对象,常用的Figure对象的方法)

一、Figure的用法 在 Matplotlib 中, Figure对象是整个绘图的顶级容器,它是所有绘图元素的基础, 提供了一个用于绘制图形的画布空间。 在 Matplotlib 中, Axes对象是进行数据绘制和设置坐标轴等操作的核心区域,它与 Fi…...

CameraX学习2-关于录像、慢动作录像

CameraX实现录像 首先在起预览时就要配置录像usecase,对于cameraX来说就是绑定录像usecase到lifecycle。如下。 1,创建Recorder对象,是与 VideoCapture 紧密耦合的 VideoOutput 实现。Recorder可以用来配置录像的分辨率、比例等,还…...

Java链接redis

一、准备工作就像谈恋爱 首先咱们得来点仪式感是不是&#xff1f;打开你的Maven&#xff08;Gradle玩家别打我&#xff09;&#xff0c;把这两个宝贝依赖给我焊死在pom.xml里&#xff1a; <!-- 经典永不过时的Jedis --> <dependency> <groupId>redis.cli…...

2025最新群智能优化算法:基于RRT的优化器(RRT-based Optimizer,RRTO)求解23个经典函数测试集,MATLAB

一、基于RRT的优化器 基于RRT的优化器&#xff08;RRT-based Optimizer&#xff0c;RRTO&#xff09;是2025年提出的一种新型元启发式算法。其受常用于机器人路径规划的快速探索随机树&#xff08;RRT&#xff09;算法的搜索机制启发&#xff0c;首次将RRT算法的概念与元启发式…...

VBA 数据库同一表的当前行与其他行的主键重复判断实现方案

目的&#xff0c;判断是否主键重复&#xff0c;不重复则登录新数据&#xff0c;重复则不登录。 定义类型&#xff1a; DataRecord   tableName 表名   rowNumber 行号   columnName 列名   data 数据 想要实现的代码逻辑如下&#xff1a; 模拟数据库的登录过程。假设…...

DeepSeek开启AI办公新模式,WPS/Office集成DeepSeek-R1本地大模型!

从央视到地方媒体&#xff0c;已有多家媒体机构推出AI主播&#xff0c;最近杭州文化广播电视集团的《杭州新闻联播》节目&#xff0c;使用AI主持人进行新闻播报&#xff0c;且做到了0失误率&#xff0c;可见AI正在逐渐取代部分行业和一些重复性的工作&#xff0c;这一现象引发很…...

android为第三方提供部分系统接口

文章目录 Settings - 亮灭屏Settings - 恢复出厂设置Settings - 数字锁屏/解锁Settings - 设置系统时间PackageInstaller - 安装/卸载第三方应用摘要:本文对系统模块进行改造,提供广播等形式的接口对外提供无法直接调用的系统级别接口,实现部分功能的集合。如果是广播形式,…...

Android 自定义View 加 lifecycle 简单使用

前言 本文是自定义view中最简单的使用方法&#xff0c;分别进行 ‘onMeasure’、‘onDraw’、‘自定义样式’、‘lifecycle’的简单使用&#xff0c;了解自定义view的使用。 通过lifecycle来控制 动画的状态 一、onMeasure做了什么&#xff1f; 在onMeasure中获取view 的宽和…...

在K8S中,svc底层是如何实现的?

在Kubernetes中&#xff0c;Service是集群内部的一个抽象层&#xff0c;用于定义一组Pod的逻辑分组&#xff0c;并提供统一的访问入口点&#xff0c;同时还可以对这些Pod提供负载均衡和网络代理功能。Service底层的实现主要包括以下几个关键组件和技术&#xff1a; 标签选择器…...

Python pyqt小技巧:默认打开某文件(即自动加载某文件)

文章目录 前言 前言 有的时候需要界面自动加载某文件。不需要人为在打开选择。 import os #自带 import sys # 获取该程序当前文件目录dir_name os.path.dirname(os.path.realpath(sys.argv[0])) f1 os.path.join(dir_name, 题目调度规程.xls) # 拼接路径 文件必须和程序在…...

vue2实现组件库的自动按需引入,unplugin-auto-import,unplugin-vue-components

1.使用ant-design-vue或者element-ui时&#xff0c;如何每个组件都去import导入组件&#xff0c;大大降低了开发效率&#xff0c;如果全局一次性注册会增加项目体积&#xff0c;那么如何实现既不局部引入&#xff0c;也不全局注册&#xff1f; 2.在element-plus官网看到有说明…...

C++第十节:map和set的介绍与使用

【本节要点】 1.关联式容器2.键值对3.map介绍与使用4.set介绍与使用5.multimap与multisedd的介绍与使用 一、关联式容器&#xff1a;数据管理的核心利器 关联式容器是STL中用于高效存储和检索键值对&#xff08;key-value pair&#xff09;的数据结构&#xff0c;其底层基于红黑…...

线性代数笔记28--奇异值分解(SVD)

1. 奇异值分解 假设矩阵 A A A有 m m m行 n n n列 奇异值分解就是在 A A A的行向量上选取若干对标准正交基&#xff0c;对它作 A A A矩阵变化并投射到了 A A A的列空间上的正交基的若干倍数。 A v → u → σ u → ∈ R m v → ∈ R n A\overrightarrow{v}\overrightarrow{u…...

【从零开始学习计算机科学】硬件设计与FPGA原理

硬件设计 硬件设计流程 在设计硬件电路之前,首先要把大的框架和架构要搞清楚,这要求我们搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。如果你找到了的参考设计,最好还是…...

项目中同时使用Redis(lettuce)和Redisson的报错

温馨提示&#xff1a;图片有点小&#xff0c;可以放大页面进行查看... 问题1&#xff1a;版本冲突 直接上图&#xff0c;这个错表示依赖版本不匹配问题&#xff0c;我本地SpringBoot用的是2.7&#xff0c;但是Redisson版本用的3.32.5。 我们通过点击 artifactId跟进去 发现它…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...