【测试开发】基础篇 · 专业术语 · 软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执
【测试开发】基础篇
文章目录
- 【测试开发】基础篇
- 1. 软件测试生命周期
- 1.1 软件生命周期
- 1.2 软件测试生命周期
- 2. 描述bug
- 3. 如何定义bug的级别
- 3.1 为什么要对bug进行级别划分
- 3.2 bug的一些常见级别
- 4. bug的生命周期
- 5. 产生争执这么怎么办(处理人际关系)
- 6. 如何开始第一次测试
- 7. 测试的执行和bug管理
- 8. 如何发现更多bug
【测试开发】基础篇
1. 软件测试生命周期
1.1 软件生命周期
- 需求分析
- 计划
- 设计
- 编码
- 测试
- 运行维护
- 停服
博文链接:【测试开发】概念篇 · 测试相关基础概念 · 常见开发模型 · 常见测试模型_s:103的博客-CSDN博客
1.2 软件测试生命周期
-
需求分析
- 需求是否完整,需求是否正确
-
测试计划
- 确定软件由谁测试,什么时候测试,什么时候结束测试,测试哪些模块
-
测试设计、测试开发
- 写测试用例(手工测试用例,自动化测试用例),编写测试工具
-
测试执行
- 执行测试用例
-
测试评估
- 测试人员产生一个测试报告
测试报告:
没有这个报告,项目是不能上线的,如果上线出了问题,一定是上线的那个人背锅!
2. 描述bug
博文链接:【测试开发】概念篇 · 测试相关基础概念 · 常见开发模型 · 常见测试模型_s:103的博客-CSDN博客
bug的描述是很重要的,如果你只是指出开发人员的代码的一个bug,让他现在就改,他不得骂死你,所以你应该描述清清楚楚这个bug
具体描述bug:
- 在哪个版本下发现问题
- 开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障
- 并且版本的表示也有利于统计和分析每个版本的质量
- 在哪个环境下发现问题
- 博客系统 => 127.0.0.1访问,但是别人访问不了,我们要部署到服务器上,这样别人就访问到了,这就是两个不同的环境
-
重现故障
- 要求测试人员描述好,bug的出现流程,否则开发可能会找不到bug,说你乱提bug
- 描述问题重现的最短、最清楚的步骤
例如以下bug描述:
- 在短信列表中,选择短信,进行删除,删除失败了!
- 在短信列表中,选择一条短信,进行查看,在查看页面,进行删除,删除失败 √
显然,后者的描述更加精准,因为列表页和详情页删除是不一样的地点!
我们要准确描述bug如何出现的!
-
预期行为的描述
- 要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需求提出的故障,能写明需求的来源是最好的
- 要相信:测试人员是最懂需求的。
-
错误行为的描述
- 描述错误的现象。crash等可以上传log,UI问题可以有截图。
-
其他
- 某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等
- bug复现的前置条件、bug给谁…
- 有些有==优先级的分类==,严重影响测试需要开发人员优先修改的,可以设置优先级为高
-
不要把多个bug放到一起
- 在无法确认是同一段代码造成的故障时,不要将bug放在一起提交
3. 如何定义bug的级别
不同公司可能不一致~
3.1 为什么要对bug进行级别划分
现在有一个项目要在9点上线
此时还有三个bug,但是来不及了,三个bug不能都修复好,所以我们需要给bug进行级别划分,影响更严重的我们要优先处理~
3.2 bug的一些常见级别
-
Blocker(崩溃)
- 阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题
- 如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。
-
Critical(严重)
- 系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试
- 功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等
- 如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。
-
Major(一般/主要)
- 功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性
- 如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最多)
-
Minor(次要)
- 界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等
- 如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理)
强调:
- 如果发现崩溃级别的bug,那么此时我们就需要停止测试,测试打回,测试打回特别恶劣!
- 写一个报告,打回给开发,开发就需要进行修复,修复完之后自己得仔细地测试一下,不然想着再次被打回吗
4. bug的生命周期
bug状态转换图:
- 缺陷状态变更流程每个项目团队的实际做法可能不大一样
- 并且需要结合实际的开发流程和协作流程来使用
5. 产生争执这么怎么办(处理人际关系)
背景:某一天萌新测试人员(QA-- 测试(QUALITY ASSURANC)发现一个bug,提交给老油条开发人员(RD),但是开发脸皮很厚,一直没处理
前提:一定不能吵架
- 先从自身出发,测试人员要保证自己操作没有问题,确保自己对需求理解的没有问题
- 沟通层面,好好说话,高情商礼貌去交流
- 站在用户角度考虑问题
- 应该让开发人员了解到Bug对用户可能造成的困扰,这样才能促使开发人员 更加积极地、高质量地修Bug。在争执时,可以问一句:如果你是用户,你可以接受么?
- 例如,删除某一篇文章,但是却把所有的文章都删了,用户直接炸毛了呀!
- 不光要发现问题,提出解决问题的方案
如果你都做到这份上了,开发人员还是不好好处理,就可以这样:
- 拉上相关人(那个开发和他的领导、我的领导、产品经理PM…)开一个第三方会议
- 开会之前:但是我(测试)一定要明确问题产生原因,问题是什么,解决方案是什么
- 开会之后:问题要不要解决,如果要解决,何时解决,谁去解决,知道这些才能散会
- 有时确实不得不开,否则自己的领导就要追责你了~
6. 如何开始第一次测试
能自己解决就尽量自己解决!
- 充分理解需求
- 文档(产品文档+ 技术文档)
- 项目功能问题可以去问产品,模块底层如何实现问开发
- 尽可能多地参加各种项目会议
- 阅读已有地测试方案和测试案例
- 熟悉项目所使用的测试管理工具、配置管理工具、获取对应的地址和登录方式
- 阅读旧有的bug库,了解系统功能,尤其是团队保持一致的bug优先级规定
- 了解公司的规范要求,特别是用例编写,用例执行规范…
- 确定测试计划
- 执行测试
- bug开发修复了之后一定要验收!
- 项目上线+ 维护
7. 测试的执行和bug管理
8. 如何发现更多bug
- 软件测试同样存在二八原则,80%的故障集中于20%的模块
- 如果某部分问题较多,加强测试广度和深度!
- 开发人员也存在二八原则,80%的故障集中于20%的开发人员
- 如果某些开发人员的bug较多,加强他开发模块的测试广度和深度!
- 多进行逆向思维和发散性的思维
- 依赖测试人员的经验,多去写测试用例,多看优秀的人写的测试用例
- 不要局限于用例和需求文档
- 尽早介入项目, 不要等到开发的差不多了再介入项目
- 尽早介入需求,就会尽早理解需求
和深度!
- 多进行逆向思维和发散性的思维
- 依赖测试人员的经验,多去写测试用例,多看优秀的人写的测试用例
- 不要局限于用例和需求文档
- 尽早介入项目, 不要等到开发的差不多了再介入项目
- 尽早介入需求,就会尽早理解需求
文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆!
重点:软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执
相关文章:

【测试开发】基础篇 · 专业术语 · 软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执
【测试开发】基础篇 文章目录 【测试开发】基础篇1. 软件测试生命周期1.1 软件生命周期1.2 软件测试生命周期 2. 描述bug3. 如何定义bug的级别3.1 为什么要对bug进行级别划分3.2 bug的一些常见级别 4. bug的生命周期5. 产生争执这么怎么办(处理人际关系)…...

bing许少辉乡村振兴战略下传统村落文化旅游设计images
bing许少辉乡村振兴战略下传统村落文化旅游设计images...
第三十一章 Classes - 继承规则
第三十一章 Classes - 继承规则 继承规则 与其他基于类的语言一样,可以通过继承组合多个类定义。 类定义可以扩展(或继承)多个其他类。这些类又可以扩展其他类。 请注意,类不能继承 Python 中定义的类(即 .py 文件中…...

华为云HECS安装docker并安装mysql
1、运行安装指令 yum install docker都选择y,直到安装成功 2、查看是否安装成功 运行版本查看指令,显示docker版本,证明安装成功 docker --version 3、启用并运行docker 3.1启用docker指令 systemctl enable docker 3.2 运行docker指令…...
MQ - 04 基础篇_存储_消息数据和元数据的存储设计
文章目录 导图概述元数据信息的存储消息数据的存储数据存储结构设计思路一 (Kafka的方案)思路二 (RocketMQ、RabbitMQ 和 Pulsar 的底层存储 BookKeeper 采用的方案)消息数据的分段实现根据偏移量定位根据索引定位 (RabbitMQ 和 RocketMQ的思路)使用场景消息数据存储格式…...
JavaScript:隐式转换、显示转换、隐式操作、显示操作
一、理解js隐式转换 JavaScript 中的隐式转换是指不需要显式地调用转换函数,而是在执行期间自动发生的数据类型的转换。即在使用不同类型的值进行操作时,JavaScript会自动进行类型转换。这种转换通常发生在不同数据类型之间进行运算或比较时。 序号分类…...

2023全新TwoNav开源网址导航系统源码 | 去授权版
2023全新TwoNav开源网址导航系统源码 已过授权 所有功能可用 测试环境:NginxPHP7.4MySQL5.6 一款开源的书签导航管理程序,界面简洁,安装简单,使用方便,基础功能免费。 TwoNav可帮助你将浏览器书签集中式管理&#…...

Android 12 源码分析 —— 应用层 六(StatusBar的UI创建和初始化)
Android 12 源码分析 —— 应用层 六(StatusBar的UI创建和初始化) 在前面的文章中,我们分别介绍了Layout整体布局,以及StatusBar类的初始化.前者介绍了整体上面的布局,后者介绍了三大窗口的创建的入口处,以及需要做的准备工作.现在我们分别来细化三大窗口的UI创建和…...

华为云ROMA Connect亮相Gartner®全球应用创新及商业解决方案峰会,助力企业应用集成和数字化转型
9月13日-9月14日 Gartner全球应用创新及商业解决方案峰会在伦敦举行 本届峰会以“重塑软件交付,驱动业务价值”为主题,全球1000多位业内专家交流最新的企业应用、软件工程、解决方案架构、集成与自动化、API等企业IT战略和新兴技术热门话题。 9月13日…...

虚拟线上发布会带来颠覆性新体验,3D虚拟场景直播迸发品牌新动能
虚拟线上发布会是近年来在数字化营销领域备受关注的形式,而随着虚拟现实技术的不断进步,3D虚拟场景直播更成为了品牌宣传、推广的新选择。可以说,虚拟线上发布会正在以其颠覆性的新体验,为品牌带来全新的活力。 1.突破时空限制&am…...
Linux arm64 pte相关宏
文章目录 一、pte 和 pfn1.1 pte_pfn1.2 pfn_pte 二、其他宏参考资料 一、pte 和 pfn // linux-5.4.18/arch/arm64/include/asm/pgtable.h#define pte_pfn(pte) (__pte_to_phys(pte) >> PAGE_SHIFT) #define pfn_pte(pfn,prot) \__pte(__phys_to_pte_val((phys_addr_t)…...
MVCC:多版本并发控制案例分析(一)
(笔记总结自b站马士兵教育课程) 一、简介 MVCC:全称multi-version Concurency control,多版本并发控制,是为了解决并发读写问题存在的。MVCC的实现原理由三部分组成:隐藏字段、undolog、readview。 二、概…...

以数据为中心的安全市场快速增长
根据Adroit Market Research的数据,2021年全球以数据为中心的安全市场规模估计为27.6亿美元,预计到2030年将增长至393.48亿美元,2021年至2030年的复合年增长率为30.9%。 研究人员表示,以数据为中心的安全强调保护数据本身&#x…...
AUTOSAR汽车电子嵌入式编程精讲300篇-经典 AUTOSAR 安全防御能力的分析及改善(下)
目录 4.4.2 Security 攻击 4.4.3 Security 要求 4.4.4 SDSA 有效性验证 经典 AUTOSAR 安全防御能力分析...

AI绘图提示词Stable Diffusion Prompt 笔记
基础 提示词分为正向提示词(positive prompt)和反向提示词(negative prompt),用来告诉AI哪些需要,哪些不需要词缀的权重默认值都是1,从左到右依次减弱,权重会影响画面生成结果。AI …...
xml元素值需要保留space
XmlReaderSettings.IgnoreWhitespace 属性 如果忽略空白,则为 true;否则为 false。 默认值为 false。 示例 下面创建一个设置对象,该对象可用于构造一个读取器,该读取器去除处理指令、注释和微不足道的空白。 StreamReader tex…...

Eclipse开源代码下载
当前插件开发,需要修改eclipse源码,如需要修改remote相关的代码,所以需要下载相关源码。网上大多资料都说的不清不楚的,也可能我太小白,不明白,反正就是折腾了一两天才感觉有点思路,改如何找源码…...
python多线程、进程
1、 并行和并发 (1)并发:一定周期内,多个任务来回切换执行,宏观上形成“该周期内有多个任务在同时进行”;但同一时间点,只有一个任务在执行。 举例: 你想在2小时内同时完成做饭、扫…...

Vue基础之模板语法介绍
前言 上篇我分享了关于Vue的入门,简单的入了个门。本篇文章将要分享的内容为Vue的模板语法。 一、插值 1.1、文本 1.2、html 1.3、属性 1.4、class、style绑定 1.5、表达式 在Vue的模板语法中,插值是一种常用的方式来动态地将数据渲染到视图中。Vue使用双…...
【SLAM】 前端-视觉里程计之特征点
前端-视觉里程计之特征点 参考资料: 以不变应万变:前端-视觉里程计之特征点 视觉SLAM——特征点法 task05 本次了解了特征点是由关键子和描述子组成,并且对比了SIFT、SURF等七种获取特征点的方法,同时对比了SIFT、SURF和ORB方法…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...

jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...

Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...

2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...