测开基础概念

小王学习录

  • 前言
  • 测试
    • 1. 什么是测试
    • 2. 测试和调试的区别
    • 3. 优秀测试人员应该具备的素质
  • 需求
    • 1. 需求的定义
    • 2. 测试人员眼里的需求
  • 测试用例
    • 1. 什么是测试用例(case)
    • 2. 什么是Bug
  • 开发测试模型
    • 1. 软件的生命周期
    • 2. 瀑布模型
    • 3. 螺旋模型
    • 3. 增量和迭代
    • 4. 敏捷开发
    • 5. scrum
    • 6. 瀑布模型, 螺旋模型和敏捷开发的关系
    • 7. 软件测试V模型
    • 8. 软件测试W模型(双V模型)

前言

本文介绍测试相关基础概念, 常见开发模型和测试模型.

测试

1. 什么是测试

所谓软件测试, 就是验证软件产品特性是否满足用户的需求. 根据需求定义的预期结果, 验证软件功能执行的正确性, 保障软件的质量.

2. 测试和调试的区别

测试和调试有以下几个区别:

  1. 对象:

调试是由开发人员进行
测试由开发人员和测试人员共同进行. 测试人员进行黑盒测试, 开发人员会进行部分的白盒测试和系统测试.

  1. 阶段:

调试的阶段在开发阶段
测试的阶段伴随整个软件开发生命周期, 测试要早于调试.

  1. 目的

开发人员进行调试的目的是要发现并解决问题.
测试人员进行测试的目的是要发现问题, 给出解决方案, 由开发人员解决.

  1. 手段

调试可以使用编译器的debug模式, 分析代码逻辑.
测试针对白盒测试和黑盒测试有不同的手段, 针对黑盒测试有等价类划分法, 边界值法等.

3. 优秀测试人员应该具备的素质

  1. 技术能力
  1. 设计测试用例(如设计自动化测试用例)
  2. 编程能力(如编写测试工具)
  3. 快速学习的能力.(学习技术和业务)
  1. 非技术能力
  1. 良好的沟通合作能力
  2. 良好的文字表达能力, 编写测试用例和测试文档
  3. 良好的抗压能力
  4. 有一定的责任意识

需求

1. 需求的定义

需求分为用户需求和软件需求(功能需求)

  1. 用户需求: 用户需求是终端用户在使用产品时必须要实现的任务, 或是甲方提出的需求.
  2. 软件需求: 在软件需求中会详细描述开发人员必须完成的软件功能

可以理解为用户需求就是一句话, 而软件需求是一个文档, 用来详细描述用户需求应该如何实现.

在软件开发时, 会把用户需求转换成软件需求. 软件需求是开发和测试人员工作时的直接依据.

2. 测试人员眼里的需求

上面说到需求是测试工程师开展测试工作的依据, 在设计测试用例时, 要先根据业务需求提取出软件功能需求点, 然后再根据每个软件功能需求点分析出多个软件测试点, 最后根据测试点设计测试用例. 流程如下图:
在这里插入图片描述从软件功能需求出发, 无遗漏的识别出软件测试点是至关重要的, 这关乎到测试用例的测试覆盖率

为了更好的理解和掌握软件原始的业务需求, 软件工程师应在软件需求分析设计的时候就介入.

测试用例

1. 什么是测试用例(case)

测试用例是为了完成测试向被测试系统提供的一组集合, 测试用例包含了以下几个重要要素: 测试环境, 操作步骤, 测试数据, 预期结果, 序号, 级别, 标题.

测试环境: windows系统, chrome浏览器, 本地
操作步骤: 描述操作步骤
标题: 对测试用例进行简要描述, 明确测试的目的和功能。

2. 什么是Bug

当且仅当规格说明书(功能需求文档)存在, 而运行结果与说明书中描述不符合时, 即为Bug.

开发测试模型

1. 软件的生命周期

软件的生命周期有以下几个阶段:
需求分析, 规划, 设计, 编码, 测试, 运行维护.

  1. 需求分析: 分析需求的可行性, 完整性等, 测试人员参与需求分析, 了解原始业务需求, 便于提出测试关注点
  2. 规划: 规划开发测试人员, 开发测试周期, 上线时间等.
  3. 设计: 基于需求规格说明书, 进行系统设计和详细设计. 包括架构, 模块设计, 数据库设计等
  4. 编码: 开发人员编码完成功能
  5. 测试: 测试人员进行测试, 并编写测试报告.
  6. 运行维护: 产品上线出现问题后, 开发人员和测试人员一起定位问题, 解决问题.

2. 瀑布模型

在这里插入图片描述

  1. 瀑布模型是其它模型的基础, 每个阶段只进行一次, 是线性顺序的开发模式
  2. 优点:
    每个阶段分工明确, 产出清晰.
  3. 缺点:
    (1) 只依赖刚开始的一次需求调查, 无法及时适应需求的变更.
    (2) 风险只有在后期的测试阶段才会凸显出来, 无法在早期被发现并作出相应措施.
  4. 适用于小的, 开发周期短的项目.

3. 螺旋模型

在这里插入图片描述

  1. 在开发初期需求不明确时, 可以使用渐进式的开发模式, 螺旋模型是渐进式开发模式的典型代表.
  2. 这种开发模式适用于规模庞大, 风险大的项目. 螺旋模型不允许测试拥有独立的测试时间和阶段, 要求测试随着开发的迭代而迭代.
  3. 优点:
    (1) 严格的风险分析, 强调了每个开发阶段的质量
    (2) 提供了机会检讨项目是否有必要继续下去, 可以尽早发现风险并使用补正措施.
  4. 缺点:
    严格的风险预估, 风险分析和控制.要求数据分析师拥有一定的技术能力, 需要提供大量的人力和财力.

3. 增量和迭代

增量开发: 所谓增量开发是对一个项目中的功能, 完成一个之后再完成另一个功能.
迭代开发: 迭代开发是对一个项目中的功能, 在完成其中一个功能的一部分(未完全完成), 开始另一个功能的开发.

4. 敏捷开发

说起敏捷开发, 就需提到敏捷宣言.

个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在每对比对中, 后者并非全无价值, 但我们更看重前者.

5. scrum

敏捷开发是一种思想, 敏捷开发有很多种方式, 最流行的是scrum
scrum中有三个角色, 分别是产品经理, 项目经理, 开发团队.

  1. 产品经理: 收集用户需求, 定义商业价值, 制定发布计划, 对产品服务
  2. 项目经理: 开各种会议, 为用户需求定义优先级, 制定规划, 即由谁开发, 由谁测试, 开发测试周期多长等.
  3. 开发团队: 负责项目的具体开发和测试.

scrum流程:

  1. 产品挤压(product backlog): 由产品经理负责维护的产品需求列表. 包含了待发开功能, 用户故事和缺陷修复等
  2. Sprint计划会议: 在每次迭代前进行的会议, 会议上确定迭代的目标和要完成的工作. 由项目经理确定用户需求优先级, 分配开发测试任务.
  3. Sprint: Sprint是一个固定的时间框架, 通常是2到4周, 我的理解是本次迭代. 在Sprint期间, 开发团队完成计划中的工作.
  4. 每日例会: 每天项目经理召集站立会议, 团队成员描述昨天的工作和今天的计划以及遇到的问题.
  5. 演示会议: 本次迭代任务完成后, 召开演示会议, 团队演示完成的工作. 记录反馈, 反馈由产品经理整理后, 形成新的需求, 在下一轮迭代中完成.
  6. 回顾会议: 项目团队对本次迭代进行总结, 发现不足并制定修改计划, 开始下一轮迭代.

6. 瀑布模型, 螺旋模型和敏捷开发的关系

瀑布模型和螺旋模型更注重计划、控制和文档, 适用于相对稳定的需求和风险可预测的项目.
敏捷开发更注重灵活性、快速交付和响应变化, 适用于需求变化频繁、风险不确定或需要快速上线的项目.
螺旋模型和敏捷开发都强调迭代和循环,但敏捷更强调团队协作和持续交付, 而螺旋模型更强调风险管理和适应性.

7. 软件测试V模型

在这里插入图片描述
用户需求: 产品经理收集用户需求形成软件需求
需求分析与系统设计: 验证需求是否正确, 确定系统编程语言和框架.
概要设计: 项目结构
详细设计: 每个接口, 设计哪些库表, 设计哪些任务.
单元测试: 测试每一个方法.
集成测试: 将一个功能中的多个方法集成起来进行测试.
系统测试: 测试整个系统中的所有功能, 测试功能之间是否会互相影响. 并对系统的性能进行测试. 是否达到系统要求的指标
验收测试: 产品经理进行验证. 查看系统是否符合用户需求.

特点: 左边是开发, 右边是测试, 类似于瀑布模型, 从编码开始分隔
优点: 测试被划分成多个类型.
缺点: 测试介入太晚, 发现错误的时机太晚

8. 软件测试W模型(双V模型)

为了弥补V模型的不足, 出现了双V模型

加粗样式实施: 部署运行项目.
交付: 将项目交付给用户.
验收测试设计: 测试人员在用户需求时就介入, 编写相应文档为验收测试做准备.
确认与系统测试设计: 为系统测试做准备.
集成测试设计: 为集成测试做准备
单元测试设计: 为单元测试做准备.

  1. 特点: W模型由两个V组成, 分别代表开发与测试. 在双V模型中, 更加注重验证和确认活动, 测试的对象不只是程序, 还有需求和设计. 测试与开发并行.
  2. 优点: 测试更早的介入, 有利于尽早发现并解决问题
  3. 缺点: 测试和开发还保持着先后关系, 开发完成之后测试工作才可以正式开始执行, 开发和测试在一定程度上还是串行的, 不能拥抱需求的变化, 不能适用于敏捷开发.

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

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

相关文章

chromium通信系统-ipcz系统(九)-ipcz系统代码实现-跨Node通信-代理和代理消除

chromium通信系统-ipcz系统(六)-ipcz系统代码实现-跨Node通信-基础通信 一文我们分析了跨Node的基础通信过程。 a进程和b进程通信的过程。 但在程序中a进程将自己打开的一对portal中的一个portal传递给了b进程。由于篇幅问题这个过程我们并没有分析,这篇文章我们就来…

如何使用甘特图进行项目管理?

或许你在工作中或项目启动会议上听说过“甘特图”一词,但对此了解不多。虽然这些图表可能变得相当复杂,但基础知识并不难掌握。通过本文,你将清楚地了解什么是甘特图、何时使用甘特图、创建甘特图的技巧等等。 什么是甘特图? 甘特…

第二十三章 反射(reflection)

一、反射机制(重点)(P711) 1. Java Reflection (1)反射机制允许程序在执行期借助 Reflection API 取得任何类的内部信息(比如成员变量、构造器、成员方法等等),并能操作…

虚幻UE 材质-边界混合之PDO像素深度偏移量

2024年的第一天!!!大家新年快乐!!! 可能是长大了才知道 当你过得一般 你的亲朋好友对你真正态度只可能是没有表露出来的冷嘲热讽了 希望大家新的一年平安、幸福、 永远活力满满地追求自己所想做的、爱做的&…

HAL——点灯

学习目标 掌握hal库开发流程掌握STMCubeMX配置过程掌握API查询和使用方式 学习内容 需求 点灯PE3。 开发流程 新建项目芯片配置编写代码测试调试 项目创建 新建项目 选择芯片。输入自己使用的芯片。 选择芯片版本。 芯片配置 功能配置 这里需求是点灯,配置…

构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践

作者:柳下 概述 随着企业规模和数据量的增长,数据的价值越来越受到重视。数据的变化和更新变得更加频繁和复杂,因此及时捕获和处理这些变化变得至关重要。为了满足这一需求,数据库 CDC(Change Data Capture&#xff…

@EnableXXX注解+@Import轻松实现SpringBoot的模块装配

文章目录 前言原生手动装配模块装配概述模块装配的四种方式准备工作声明自定义注解 导入普通类导入配置类导入ImportSelector导入ImportBeanDefinitionRegistrar 总结TODO后续--条件装配 前言 最早我们开始学习或接触过 SSH 或者 SSM 的框架整合,大家应该还记得那些…

Redis 与 Spring: 解决序列化异常的探索之旅

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

YOLOv8改进 | 注意力篇 | ACmix自注意力与卷积混合模型(提高FPS+检测效率)

一、本文介绍 本文给大家带来的改进机制是ACmix自注意力机制的改进版本,它的核心思想是,传统卷积操作和自注意力模块的大部分计算都可以通过1x1的卷积来实现。ACmix首先使用1x1卷积对输入特征图进行投影,生成一组中间特征,然后根…

ant-design-vue的form表单全局禁用不生效

文章目录 一、问题二、解决2.1、4.0之前的版本2.2、4.0开始的版本 三、最后 一、问题 ​ 实际使用ant-design-vue在开发表单的时候或许会遇到编辑与查看的需求,但是查看的时候表单不允许编辑,ant-design-vue的官方是没有像element一样提供全局disabled属…

Tomcat 安装和运行教程

文章目录 一、Tomcat 安装1.1 选择合适的 Tomcat 版本1.2 下载 Tomcat1.3 配置环境变量 二、 运行 Tomcat2.1 启动 Tomcat2.2 关闭 Tomcat 参考资料 一、Tomcat 安装 1.1 选择合适的 Tomcat 版本 Apache Tomcat 是 Jakarta EE(正式JavaEE)技术子集的开…

Java经典框架之SpringBoot

SpringBoot Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. SpringBoot基础 2. Spring…

第7课 利用FFmpeg将摄像头画面与麦克风数据合成后推送到rtmp服务器

上节课我们已经拿到了摄像头数据和麦克风数据,这节课我们来看一下如何将二者合并起来推送到rtmp服务器。推送音视频合成流到rtmp服务器地址的流程如下: 1.创建输出流 //初始化输出流上下文 avformat_alloc_output_context2(&outFormatCtx, NULL, &…

杜笙MB-115up抛光树脂(出水18兆欧)

TULSIONMB-115UP是一种高阶核子级抛光树脂,由核子级强酸型阳离子TulsimerMB115和强碱阴离子交换树脂A33按一定比例混合而成。这种树脂具有独特的结构和性能,能够有效地去除材料表面的污渍和杂质,提高材料的表面质量和光泽度。 首先&#xff0…

【Spring实战】15 Logback

文章目录 1. 依赖2. 配置3. 打印日志4. 启动程序5. 验证6. 调整日志级别7. 代码详细总结 Spring 作为一个现代化的 Java 开发框架,提供了很多便利的功能,其中包括灵活而强大的日志记录。本文将介绍如何结合 Spring 和 Logback 配置和使用日志&#xff0c…

基于mediapipe的人体姿态估计模型——没有GPU依然速度飞起

关于人体姿态检测模型,我们前期也介绍过了很多相关的模型,比如基于Yolo-NAS的姿态检测以及基于YOLOv8的人体姿态检测,而人体姿态估计一直是计算机视觉任务中比较重要的一个模型。但是基于YOLO系列的人体姿态检测模型需要较大的算力,且很难在CPU模型上快速的运行。 基于medi…

HTML5 和 CSS3 新特性(常用)

HTML5 的新特性 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这 些新特性。 HTML…

【二叉树的顺序结构及实现一-堆】

文章目录 一、二叉树的顺序结构二、堆的概念及结构三、堆的实现(以小堆为例)1、堆的结构体2、堆的初始化->void HeapInit(HP* hp);3、堆的销毁->void HeapDestroy(HP* hp);4、堆的判空->bool HeapEmpty(HP* hp);5、取堆顶的数据->HPDataType HeapTop(HP* hp);6、堆…

抖店新手该如何运营?

我是电商珠珠 在抖店开好之后,大部分新手都不知道怎么去运营,今天,我就来给大家详细的讲一下。 第一步,店铺基础设置 我一直跟我的学生讲,一定要懂基本流程,只有前期将流程跑通了后期才可以毫无压力。 …

Java基础综合练习(飞机票,打印素数,验证码,复制数组,评委打分,数字加密,数字解密,抽奖,双色球)

练习一:飞机票 需求: ​ 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 ​ 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来…