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

文章目录
- 一、软件(开发)的生命周期
- 什么是生命周期
- 软件(开发)的生命周期
- 需求分析
- 计划
- 设计
- 编码
- 测试
- 运行维护
- 二、常见的开发模型
- 瀑布模型
- 流程
- 优点
- 缺点
- 适应的场景
- 螺旋模型
- 流程
- 优点
- 缺点
- 适应的场景
- 增量模型和迭代模型
- 流程
- 适应的场景
- 敏捷模型
- 流程
- 优点
- 适应的场景
- 三、软件测试的生命周期
- 定义
- 各个阶段具体内容
- 四、常见的测试模型
- 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
相关文章:
软件测试的基础入门(二)
文章目录 一、软件(开发)的生命周期什么是生命周期软件(开发)的生命周期需求分析计划设计编码测试运行维护 二、常见的开发模型瀑布模型流程优点缺点适应的场景 螺旋模型流程优点缺点适应的场景 增量模型和迭代模型流程适应的场景…...
Springboot + minio
参考: SpringBoot整合Minio_springboot minio-CSDN博客 <!--minio 依赖--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.11</version></dependency> applicaio…...
地下变电站如何实现安全智能运营-以110kV站为例看环境监测与设备联控
1、地下变电站简介 在经济发达的地区,由于城市中心土地资源紧张、征地拆迁费用昂贵,因此采用地下变电站来解决这些问题不失为一个好的途径和思路。地下变电站一般采用室内全封闭式组合电气设备,220&#x…...
windows无界面后台定时任务 (重启自启动,ODBS为例)
一、前言 mdb(Microsoft Database)是Microsoft Access中使用的一种数据存储格式,可以通过ODBC驱动程序进行访问和操作,在Python中也可以安装相应模块打开。 这是我在项目中更新bs数据的一个实践记录,结合windows定时一起记录一下,方便以后照搬~ 二、安装 Python安装库…...
FPGA 实验报告:四位全加器与三八译码器仿真实现
目录 安装Quartus软件 四位全加器 全加器、半加器 半加器: 全加器: 四位全加器电路图 创建项目 半加器 全加器 四位全加器 代码实现 半加器 全加器 四位全加器 三八译码器 创建项目 代码展示 modelsim仿真波形图 四位全加器 三八译码…...
win11 Visual Studio 17 2022源码编译 opencv4.11.0 + cuda12.6.3 启用GPU加速
win11 Visual Studio 17 2022 源码编译 opencv4.11.0 cuda12.6.3 启用GPU加速 配置: 生成 opencv 生成 opencv-python 1 下载源码和安装软件 win11 x64 系统 安装Visual Studio 17 2022 下载opencv4.11.0 源码 https://github.com/opencv/opencv/releases/tag/4.11.0 下载…...
Ribbon实现原理
文章目录 概要什么是Ribbon客户端负载均衡 RestTemplate核心方法GET 请求getForEntitygetForObject POST 请求postForEntitypostForObjectpostForLocation PUT请求DELETE请求 源码分析类图关系 与Eureka结合重试机制 概要 什么是Ribbon Spring Cloud Ribbon是一个基于HTTP和T…...
MuMu-LLaMA:通过大型语言模型进行多模态音乐理解和生成(Python代码实现+论文)
MuMu-LLaMA 模型是一种音乐理解和生成模型,能够进行音乐问答以及从文本、图像、视频和音频生成音乐,以及音乐编辑。该模型利用了用于音乐理解的 MERT、用于图像理解的 ViT 和用于视频理解的 ViViT 等编码器,以及作为音乐生成模型(…...
高效Android MQTT封装工具:简化物联网开发,提升性能与稳定性
在Android开发中,封装MQTT工具可以帮助简化与MQTT服务器的通信。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,常用于物联网(IoT)设备之间的通信。 以下是一个简单的MQ…...
数据库原理7
1.“数据库系统运行与维护工具”的研究属于数据库管理系统软件 2.1970年IBM公司的高级研究员E.F.Codd提出了关系数据模型 3.每个属性的属性值是不可分解的,即关系的每个分量必须是一个不可分的数据项。属性值的取值应满足域完整性约束。 4.视图作用:简…...
2025最新比较使用的ai工具都有哪些,分别主要用于哪些方面?
文章目录 一、AI对话与交互工具二、AI写作与内容生成工具三、AI绘画与设计工具四、AI视频生成工具五、办公与效率工具六、其他实用工具选择建议 根据2025年最新行业动态和用户反馈,以下AI工具在多个领域表现突出,覆盖对话、写作、设计、视频生成等场景&a…...
什么是 MyBatis? 它的优点和缺点是什么?
一、 什么是 MyBatis? 定义: MyBatis 是一款优秀的持久层框架,用于简化 Java 应用程序与数据库之间的交互。MyBatis 通过 XML 或注解 的方式,将 SQL 语句与 Java 代码分离,提供了一种灵活的、易于维护的数据访问解决方…...
在ArcMap中通过Python编写自定义工具(Python Toolbox)实现点转线工具
文章目录 一、需求二、实现过程2.1、创建Python工具箱(.pyt)2.2、使用catalog测试代码2.3、在ArcMap中使用工具 三、测试 一、需求 通过插件的形式将点转线功能嵌入ArcMap界面,如何从零开始创建一个插件,包括按钮的添加、工具的实…...
Array and string offset access syntax with curly braces is deprecated
警告信息 “Array and string offset access syntax with curly braces is deprecated” 是 PHP 中的一个弃用警告(Deprecation Notice),表明在 PHP 中使用花括号 {} 来访问数组或字符串的偏移量已经被标记为过时。 背景 在 PHP 的早期版本…...
moodle 开源的在线学习管理系统(LMS)部署
一、Moodle 简介 Moodle(Modular Object-Oriented Dynamic Learning Environment)是一个开源的在线学习管理系统(LMS),广泛应用于教育机构和企业培训。其核心功能包括课程管理、作业提交、在线测试、论坛互动和成绩跟…...
后智能体时代的LLM和Agent
文章目录 1. 关于AI重塑的哲学体系2. 关于AI大模型体系的认知3. 关于AI大模型体系的畅想4. 关于人和AI大模型体系的共处5. 写在最后 随着OpenAI、Deepseek、Manus等等智能体的爆火,人们茶前饭后、插科打诨的话题都离不开这些智能体,现状也正如《人民日报…...
Day6 DFS
一、跳台阶 一个楼梯共有 nn 级台阶,每次可以走一级或者两级,问从第 00 级台阶走到第 nn 级台阶一共有多少种方案。 输入格式 共一行,包含一个整数 nn。 输出格式 共一行,包含一个整数,表示方案数。 数据范围 1…...
Releases(发布) 和 版本管理 是两个紧密相关的概念
在软件开发和维护中,Releases(发布) 和 版本管理 是两个紧密相关的概念,特别是在开源项目或企业软件开发中。 1. Releases(发布) Release 是指软件的一个正式发布版本,通常经过开发、测试、修复 Bug,并被认为是足够稳定和可用于生产环境的版本。 主要特点 里程碑:通…...
模型微调——模型性能提升方法及注意事项(自用)
名词补充 人为为训练数据标注的标签称为黄金标准或真实值,这个过程一定程度上保证训练的准确性,但是其人工标注的成本和时间很高,并且标注的标签受人的主观因素影响。 导致模型性能不佳的因素和解决办法 ①不同类别的数据不平衡:统…...
景联文科技:以精准数据标注赋能AI进化,构筑智能时代数据基石
在人工智能技术席卷全球的浪潮中,高质量数据已成为驱动AI模型进化的核心燃料。作为全球领先的AI数据服务解决方案提供商,景联文科技深耕数据标注领域多年,以技术为基、以专业为本,致力于为全球客户提供全场景、高精度、多模态的数…...
嵌入式L6计算机网络
Telnet不加密 socket是应用层和下面的内核...
华为鸿蒙系统全景解读:从内核设计到生态落地的技术革命
华为鸿蒙系统全景解读:从内核设计到生态落地的技术革命 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 华为鸿蒙系统全景解读&#x…...
2025最新软件测试面试八股文(含答案+文档)
1、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 参考答案: 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程…...
微前端框架 Qiankun 的应用及问题分析
一、Qiankun 的核心应用场景与优势 多技术栈共存与灵活集成 Qiankun 支持主应用与子应用使用不同技术栈(如 Vue、React、Angular 等),通过 HTML Entry 方式接入子应用,无需深度改造子应用即可实现集成,降低了技术迁移成…...
八卡5090服务器首发亮相!
AI 人工智能领域热度居高不下。OpenAI 的 GPT - 4 凭强悍语言处理能力,在内容创作、智能客服等领域广泛应用。清华大学团队的 DeepSeek 大模型在深度学习训练优势突出,正促使各行业应用端算力需求向推理主导转变,呈爆发式增长 。 随着 DeepS…...
C#类型转换基本概念
一、基本定义 C# 类型转换是将数据从一种类型转换为另一种类型的过程,分为 隐式转换 和 显式转换 两类。 强类型语言特性:C# 要求变量类型在编译时确定,类型转换需满足兼容性或显式规则。目的:处理不同数据类…...
基于SSM+Vue+uniapp的驾校预约管理小程序+LW示例
系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…...
关于C++数据类型char的类型是整数的思考
学习数据类型时,整数类型中有一个特殊的类型char,可以使用字符来为其赋,也可以用整数来为其赋值,这是怎么一回事?其实任何类型,在计算机的内存中,在最小的存储单元比特中,内部只有0或…...
在Spring Boot项目中分层架构
常见的分层架构包括以下几层: 1. Domain 层(领域层) 作用:领域层是业务逻辑的核心,包含与业务相关的实体类、枚举、值对象等。它是对业务领域的抽象,通常与数据库表结构直接映射。 主要组件: 实体类(Entity):与数据库表对应的Java类,通常使用JPA或MyBatis等ORM框架…...
《用Python+PyGame开发双人生存游戏!源码解析+完整开发思路分享》
导语 "你是否想过用Python开发一款可玩性高的双人合作游戏?本文将分享如何从零开始实现一款类《吸血鬼幸存者》的生存射击游戏!包含完整源码解析、角色系统设计、敌人AI逻辑等核心技术点,文末提供完整代码包下载!" 哈…...
