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

软件测试之基础概念学习篇(需求 + 测试用例 + 开发模型 + 测试模型 + BUG)

文章目录

  • 1. 什么是软件测试
  • 2. 软件测试和软件开发的区别
  • 3. 软件测试和软件调试的区别
  • 4. 什么是需求
    • 1)以需求为依据设计测试用例
  • 5. 测试用例是什么
  • 6. 什么是 BUG(软件错误)
  • 7. 五个开发模型
    • 1)瀑布模型
    • 2)螺旋模型
    • 3)迭代模型、增量模型
    • 4)敏捷开发模型
  • 8. 测试模型
    • 1)V 模型
    • 2)W 模型
  • 9. 软件测试的生命周期(软件测试的流程)
  • 10. 如何描述一个 BUG
  • 11. BUG 的级别
    • 1)崩溃
    • 2)严重
    • 3)一般
    • 4)建议(次要)
  • 12. BUG 的状态转移图

1. 什么是软件测试

软件测试就是验证软件功能是否满足用户需求

在具体业务中表现为,最终交付的产品是否和用户的需求一致,如果不一致,则需要找出不一致的点

2. 软件测试和软件开发的区别

  • 难易程度方面

    开发对于知识的广度小,专业度高,测试的广度大,专业度低

  • 技能要求方面

    测试比开发要求更广泛,测试人员需要具备一定的业务能力、沟通能力、对测试工具的收敛使用,是需要有一定的编程能力

3. 软件测试和软件调试的区别

  • 目的

    软件测试的目的是验证软件是否满足用户的需求

    软件调试的目的是验证软件是否实现了开发人员想让它实现的功能

  • 角色

    软件测试是由开发人员和测试人员共同完成的

    软件调试是由开发人员完成的

  • 阶段

    软件测试贯穿了整个软件开发的生命周期

    软件调试只是在开发阶段

软件开发的生命周期

需求分析 -> 计划 -> 设计 -> 开发 -> 测试 -> 运维

4. 什么是需求

需求就是实现用户的期望或者满足文档(合同、标准、规范)所需要的条件或者权限

需求包括软件需求和用户需求

用户需求就是用户想要软件实现的功能,用户需求比较粗略直接实现比较困难

软件需求是从用户需求转化而来的,是对用户需求的细化和具体实现

软件需求是测试人员进行测试工作的基本依据

1)以需求为依据设计测试用例

首先验证需求,保证需求正确可实现,然后细化需求,从需求中提炼出一个个测试项

以 “ 用户登录 ” 为例,具体过程如下:

请添加图片描述

5. 测试用例是什么

测试用例是为了实施测试向被测试系统提供的一组集合,包含:测试环境、测试步骤、测试数据、预期结果等因素

测试用例告诉我们该测什么,怎么测

设计一条网易邮箱登录的测试用例:

请添加图片描述

测试环境: Chrome PC端 Windows操作系统

测试数据: 用户名:123456 密码:h123456789

测试步骤:

  1. 在 Chrome 浏览器打开网易邮箱 URL
  2. 输入用户名和密码
  3. 点击登录

预期结果: (操作完测试步骤后的结果)登陆成功

6. 什么是 BUG(软件错误)

  • 当且仅当规格说明书(软件需求)存在且合理,程序和软件需求之间不匹配的情况就是 BUG
  • 当软件需求不存在,用户需求存在且合理,软件功能和用户需求不符合,就说明是软件错误

软件测试在需求分析阶段时需要验证需求的合理性和正确性

7. 五个开发模型

软件开发的生命周期

需求分析 -> 计划 -> 设计 -> 开发 -> 测试 -> 运维

1)瀑布模型

瀑布模型是严格按照软件开发的生命周期进行的分阶段的开发模型

请添加图片描述

优点: 强调开发的阶段性,强调早期的需求分析和后期的测试

缺点: 测试在编码后才开始介入,导致前期的问题后期才发现,可能会失去错误补救的机会

2)螺旋模型

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模型,螺旋模型就是典型的 渐进式开发模型,螺旋模型适用于 规模庞大复杂度高风险大 的项目

请添加图片描述

优点: 强调严格的风险管理,强调各开发阶段的质量

缺点: 引入严格的风险管理,需要更多人员、时间和金钱的投入

3)迭代模型、增量模型

将一个系统分为四个模块,A、B、C、D,在两周内将四个模块开发完成

迭代模型:

第一周先开发 A、B、C、D四个模块的基础功能

第二周再在第一周的基础之上完成其他的功能

增量模型:

第一周开发 A、B 两个模块的功能

第二周开发 C、D 两个模块的功能

增量模型和迭代模型抗风险能力都很强,迭代模型相比较增量模型还要更强些

4)敏捷开发模型

敏捷开发是一种可以应对快速变化的用户需求的一种软件开发模式

特点:

轻文档、轻流程、重目标、重产出

拥抱变化,客户可以在整个流程中对需求进行更改

周期短,团队人员少但精干

敏捷宣言:

个体与交互重于过程和工具

可用的软件重于完备的文档

客户协作重于合同谈判

响应变化重于遵循计划

Scrum 中的角色

  • PO(product owner)产品经理,负责整理用户需求,形成 userstory
  • SM(scrum master)项目经理,管理整个团队,负责敏捷流程的顺利实施,以及各种会议的顺利召开
  • ST(scrum team)研发团队,负责整个项目的研发,由各种技能的工程师组成

Scrum 流程

请添加图片描述

  • 发布计划会议: 产品经理收集需求相乘 userstory,讲解 userstory,决定本次迭代需要开发的 userstory 形成 sprint backlog
  • 迭代计划会议: 分析 userstory,把 userstory 分解成一个个的任务,分配给开发人员,制定开发计划
  • 每日会议: 讲解昨天干了什么,遇到的问题、今天的计划
  • 产品演示会议: 给客户演示研发的成果,产品经理整理和手机演示后客户的意见形成新的 userstory,放到下一次迭代中
  • 回顾计划会议: 回顾整个迭代过程,把不足的地方找出,在下一次迭代过程中改进,优化迭代流程

8. 测试模型

1)V 模型

特点: 明确标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程各阶段的对应关系

缺点: 测试在编码之后才被引入,会失去对错误及时纠正的机会

请添加图片描述

2)W 模型

特点:

  • 测试贯穿整个软件开发的生命周期,对需求、代码等都会进行测试测试
  • 测试更早的介入,可以尽早发现错误并解决
  • 测试与开发独立并行

缺点:

  • 测试和开发保持一种线性的前后关系,上一阶段完全结束才可开始下一阶段工作
  • 无法支持敏捷开发模型

请添加图片描述

9. 软件测试的生命周期(软件测试的流程)

生命周期: 需求分析 -> 测试计划 -> 测试设计、测试开发 -> 测试执行 -> 测试报告

  1. 需求分析

    测试人员对需求进行分析,验证需求的合理性和正确性,细化需求,根据需求提炼测试点

  2. 测试计划

    确定测试的范围、目的、人员名单、测试工具以及测试环境

  3. 测试设计、测试开发

    测试人员根据提炼的测试点编写测试用例

  4. 测试执行

    在开发人员提交代码之后,测试人员根据测试用例和计划执行测试,记录测试过程中发现的 BUG 并提交

  5. 测试报告

    对本次测试进行分析和总结,记录在本次测试中使用了哪些测试用例,发现了哪些 BUG,修改了多少,剩余的 BUG 有哪些比较好的解决方案

10. 如何描述一个 BUG

一个合格的 BUG 描述包括以下几部分:

  1. 发现 BUG 的版本

    开发人员提交代码时代码的版本号

  2. 测试环境

    在不同的测试环境下问题出现的情况可能不一样

  3. 测试步骤

    告诉开发人员测试数据和执行测试时的具体步骤,以便于开发人员复现 BUG

  4. 实际结果

  5. 预期结果

  6. BUG 产生时的日志、错误截图等

11. BUG 的级别

1)崩溃

系统崩溃、死机、死循环,黑屏、闪退等导致系统不能运行的问题

如果系统已经发布,用户在使用过程中出现崩溃级别 BUG 怎么办?

  • 可以采用停服维修的方式来对 BUG 进行维护,但是这样会影响用户的体验和产品的利润
  • 最高效且损失最低的方法是,回到上一个稳定可用的历史版本

2)严重

系统可以用,但是不稳定,继续使用会产生严重的错误,如数据库插入用户数据时出错,用户数据的安全性问题等

3)一般

系统可以正常使用,但是一些次要的功能没有实现,如系统的提示语不完善,删除时没有确认弹窗等

4)建议(次要)

一些建议性的问题或者可以对系统进一步优化的方案,比如界面排版不符合用户习惯等

12. BUG 的状态转移图

请添加图片描述

相关文章:

软件测试之基础概念学习篇(需求 + 测试用例 + 开发模型 + 测试模型 + BUG)

文章目录 1. 什么是软件测试2. 软件测试和软件开发的区别3. 软件测试和软件调试的区别4. 什么是需求1)以需求为依据设计测试用例 5. 测试用例是什么6. 什么是 BUG(软件错误)7. 五个开发模型1)瀑布模型2)螺旋模型3&…...

Windows下版本控制器(SVN) - 1、开发中的实际问题+2、版本控制简介

文章目录 基础知识-Windows下版本控制器(SVN)1、开发中的实际问题2、版本控制简介2.1 版本控制[Revision control]2.2 Subversion2.3 Subversion 的优良特性2.4 SVN 的工作原理:2.5 SVN 基本操作 本人其他相关文章链接 基础知识-Windows下版本控制器(SVN) 1、开发中…...

Learning Dynamic Facial Radiance Fields for Few-Shot Talking Head Synthesis 笔记

Learning Dynamic Facial Radiance Fields for Few-Shot Talking Head Synthesis 笔记 摘要 Talking head synthesis is an emerging technology with wide applications in film dubbing, virtual avatars and online education. Recent NeRF-based methods generate more n…...

SpringBoot 项目整合 Redis 教程详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

3ASC25H214 DATX130以力控制为基础的装配应用方面已经形成了一个解决方案

​ 3ASC25H214 DATX130以力控制为基础的装配应用方面已经形成了一个解决方案 ABB的机器人解决方案最终选择了IRB6400机器人 ABB的解决方案 ABB一直都在不断地研究和开发机器人应用的新技术,有一部分研究活动是与大学进行合作的,其中一项是ABB的科学家和…...

Java的位运算

目录 1 Java中支持的位运算 2 位运算规则 3 逻辑运算 3.1 与运算&#xff08;&&#xff09; 3.2 或运算&#xff08;|&#xff09; 3.3 异或运算&#xff08;^&#xff09; 3.3 取反运算&#xff08;~&#xff09; 4 位移操作 4.1 左移&#xff08;<<&#…...

FastDFS分布式文件存储

FastDFS文件上传 简介&#xff1a; 主要解决&#xff1a;大容量的文件存储和高并发访问的问题 论坛&#xff1a;https://bbs.chinaunix.net 下载网站&#xff1a;https://sourceforge.net/projects/fastdfs/files/ 安装参考&#xff1a;https://www.cnblogs.com/cxygg/p/1…...

Android的AAC架构

AAC Android Architecture Components的简称&#xff0c;是一套用来搭建具有生命周期感知架构的系列组件&#xff0c;在2017年 GoogleI/O大会上发布。 dependencies {def lifecycle_version "2.2.0"implementation "androidx.lifecycle:lifecycle-livedata-ktx…...

高功率激光切割中不良现象的排除技巧

高功率切割市场现状 随着激光行业的发展和下游产业需求的变化&#xff0c;高功率的激光切割设备已逐渐成为市场关注的热点。高功率激光切割凭着速度和厚度上无可比拟的优势&#xff0c;目前已获得了市场的广泛认可。 但由于高功率激光切割技术尚处于普及的初级阶段&#xff0c;…...

MySQL-----复合查询

文章目录 前言一、基本查询回顾二、 多表查询解决多表查询的思路 三、自连接四、子查询1. 单行子查询2. 多行子查询3. 多列子查询4. 在from子句中使用子查询5. 合并查询5.1 union5.2 unoin all 总结 前言 前面的学习中,对于mysql表的查询都是对一张表进行查询,在实际开发中这远…...

10.Yarn概述

如果说HDFS是存储&#xff0c;则Yarn就是cpu和内存&#xff0c;mapreduce就是程序。 1.基础架构 复习&#xff1a; 1.Container就是一个容器&#xff0c;其中封装了需要使用的内存与cpu 2.每当提交一个job,就会产生一个appMaster(总指挥),app Master负责其他container里面的…...

MFC实现背景透明,控件不透明的对话框,且点击图片有事件响应

最终成果&#xff1a;背景半透明、但是控件不透明的对话框。 对话框上用图片代表功能&#xff0c;当点击图片时&#xff0c;响应点击事件&#xff0c;弹出相对应的对话框。 对话框固定大小&#xff0c;不可放大缩小&#xff0c;以免影响图片的显示数量。 步骤一&#xff1a;背景…...

案例01-tlias智能学习辅助系统01-增删改查+参数传递

目录 1、需求说明&#xff1a;实现对部门表和员工表的增删改查 2、环境搭建 3、部门管理 3.1 查询部门 3.2 前后端联调 3.3 删除部门 3.4 新增部门 3.5 根据ID查询数据 3.5 修改部门 总结&#xff08;Controller层参数接收&#xff09;&#xff1a; 4、员工管理 4.…...

Spring之Bean的配置与实例

Spring之Bean的配置与实例 一、Bean的基础配置1. Bean基础配置【重点】配置说明代码演示运行结果 2. Bean别名配置配置说明代码演示打印结果 3. Bean作用范围配置【重点】配置说明代码演示打印结果 二、Bean的实例化1. Bean是如何创建的2. 实例化Bean的三种方式2.1 构造方法方式…...

“不保留活动”打开,导致app返回前台崩溃问题解决

问题描述 不保留活动开关打开&#xff0c;把app切入后台&#xff0c;会导致当前展示的Activity被回收&#xff0c;切到前台后重建。 我们有个业务场景是&#xff0c;Activity里面有个ViewPager2&#xff0c;VP里面放Fragment&#xff0c;Fragment的展示需要在Activity中做一些…...

解读vue3源码(3)——watch

Vue3的watch底层源码主要是通过使用Proxy对象来实现的。在Vue3中&#xff0c;每个组件实例都会有一个watcher实例&#xff0c;用于监听组件数据的变化。当组件数据发生变化时&#xff0c;watcher实例会触发回调函数&#xff0c;从而更新组件的视图。 Vue3的watch底层源码主要涉…...

优秀简历的HR视角:怎样打造一份称心如意的简历?

简历的排版应该简洁工整&#xff0c;注重细节。需要注意对齐和标点符号的使用&#xff0c;因为在排版上的细节需要下很大功夫。除此之外&#xff0c;下面重点讲述几点简历内容需要注意的地方。 要点1&#xff1a;不相关的不要写。 尤其是与应聘岗位毫不相关的实习经历&#x…...

系统集成项目管理工程师——考试重点(三)项目管理一般知识

1.项目定义&#xff1a; 为达到特定的目的&#xff0c;使用一定资源&#xff0c;在确定的期间内&#xff0c;为特定发起人提供独特的产品、服务或成果而进行的一系列相互关联的活动的集合。 2.项目目标&#xff1a; 成果性目标&#xff1a;项目产品本身 约束性目标&…...

为什么医疗保健需要MFT来帮助保护EHR文件传输

毫无疑问&#xff0c;医疗保健行业需要EHR技术来处理患者&#xff0c;设施&#xff0c;提供者等之间的敏感患者信息。但是&#xff0c;如果没有安全的MFT解决方案&#xff0c;您将无法安全地传输患者文件&#xff0c;从而使您的运营面临遭受数据泄露&#xff0c;尴尬&#xff0…...

对项目总体把控不足,项目经理应该怎么办?

公司现状&#xff1a;项目人员紧缺&#xff0c;只有两人了解此项目技术细节&#xff0c;其中一个不常驻现场&#xff0c;另一个是执行项目经理李伟。 项目经理王博是公司元老&#xff0c;同时负责多个项目&#xff0c;工作比较忙&#xff0c;不常驻现场&#xff0c;没有参加过…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...

Easy Excel

Easy Excel 一、依赖引入二、基本使用1. 定义实体类&#xff08;导入/导出共用&#xff09;2. 写 Excel3. 读 Excel 三、常用注解说明&#xff08;完整列表&#xff09;四、进阶&#xff1a;自定义转换器&#xff08;Converter&#xff09; 其它自定义转换器没生效 Easy Excel在…...

AWS vs 阿里云:功能、服务与性能对比指南

在云计算领域&#xff0c;Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商&#xff0c;各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5]&#xff0c;我将从功能、服务和性能三个方面进行结构化对比分析&#…...

【Vue】scoped+组件通信+props校验

【scoped作用及原理】 【作用】 默认写在组件中style的样式会全局生效, 因此很容易造成多个组件之间的样式冲突问题 故而可以给组件加上scoped 属性&#xff0c; 令样式只作用于当前组件的标签 作用&#xff1a;防止不同vue组件样式污染 【原理】 给组件加上scoped 属性后…...

C/Python/Go示例 | Socket Programing与RPC

Socket Programming介绍 Computer networking这个领域围绕着两台电脑或者同一台电脑内的不同进程之间的数据传输和信息交流&#xff0c;会涉及到许多有意思的话题&#xff0c;诸如怎么确保对方能收到信息&#xff0c;怎么应对数据丢失、被污染或者顺序混乱&#xff0c;怎么提高…...

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈

【导读】 本文针对无人机&#xff08;UAV&#xff09;视频中目标尺寸小、运动快导致的多目标跟踪难题&#xff0c;提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪&#xff08;贴合无人机场景特性&#xff09;&#xff0c;并改进传统外观匹配算法以关联此类检测…...