Bug的定义生命周期

1、bug的定义

你们觉得bug是什么?
软件的Bug狭义概含是指软件程序的漏洞或缺陷
广义概念除此之外还包括测试工程师用户所发现和提出的软件可改进的细节(增强性,建议性)、或 与需求文档存在差异的功能实现等。

我们的职责就是,发现这些Bug,并提交给开发,让开发去修改。

2、bug的类型–了解

要确定一个bug的类型。 需要对项目(或产品) 有比较深的理解。这个划分对于开发定位问题影响很小。但对于问题类型的克计就比较重要了。— 测试报告

常见的bug类型划分(样道系统为例,可自定义) :

代码(功能)错误:–最常见–优先级偏高
界面优化— UI测试:优先级偏低
设计缺陷-- 优化建议:需求上就是不合理–优先级偏低–慎重一点(跟产品确定好)
按照公司具体的规定来分类!!!

3、bug的等级 --优先级(会影响开发的处理)

要bug等级,这个划分有分三级或四级,也有分五级的。如果是等级越高(严重),那么可能被修复的等级也会高一些, 然后有些公司还会根据你提的bug数量和bug等级来考察你的绩效。很多情况下,我们提交bug大致的等级差不多即可,没有严格区分。

如何来判断bug的等级(严重程度), -般可以参照下面的判断条件。

(1)致命错误: — blocker
1、常规操作引起的系统崩溃、死机、死循环、闪退 --P1
2、造成数据泄漏的安全性问题,比如恶意攻击造成的账户私密信息泄露
3、涉及金钱计算–公司巨大损失,业务
4、阻断性测试,所有测试工作进行不下去(冒烟测试) --登录
5、权限问题-爱奇艺资源会员? ?

(2)严重错误:一critical
1、重要功能不能实现:
2、错误的波及面广,影响到其它重要功能正常实现; --12306购票系统<–咨询
3、非常规操作(负面异常的操作)导致的程序崩溃、死机、死循环、闪退 —连续10次点击登录按钮
4、外观(界面)难以接受的缺陷;
5、密码明文显示: 前端处理bug后端-服务器(数据库验证) --安全
用抓包工具抓包发送到服务器,在抓包工具看到密码明文,也算bug (抓包抓得是交互数据)

前端:用户直接操作的界面 (用户名+密码)
|||
传递数据(截取数据 – 用户名,密码)
|||
后端:账号数据发送后端(数据库)进行匹配 --是,登陆成功;–否,登录失败

6、偶现的致命性bug

(3)一般错误: --major ==遇到最多
不影响产品的运行、不会成为故障起因,但对产品外观和下道工序影响较大的缺陷
1、次要功能不能正常实现:
2、操作界面错误(包括数据窗口内列名定义、含义不一致) ;
3、查询错误,数据错误显示;
4、简单的输入限制未放在前端进行控制;
5、删除操作未给出提示; --友好型
6、偶现的严重性bug

(4)细微错误: - minor
程序在,些显示上不美观,不符合用户习惯,或者是一些文字的错误 --用户体验
1、界面不规范:
2、辅助说明描述不清楚;
3、提示窗口文字未采用行业术语:
4、界面存在文字错误:

(5)改进建议–enhancement: -新需求下一一个版本
可以提高产品质量的建议,包括新需求和对需求的改进。

4、bug的生命周期(管理流程) --重点! ! !

这个是面试/笔试过程中经常会被问道的问题。bug的生命周期,就是一个bug被发现到这个bug被关闭的过程。_你们觉得这个过程有哪些步骤?

生命周期中一般缺陷状态:发现–新建(提bug) ->指派-> 已解决->待验->关闭。–正常

如果待验的bug在验证时没有解决好,我们需要重新打开(激活) -指派->已解决->待验,循环这个过程。中间其他状态:拒绝、延期等

我们来看一个bug的处理流程图(生命周期图),让大家更深刻地理解周期中bug的状态及相应处理。

5、bug的跟踪管理流程

1、发现bug:—确认:防止环境问题,操作问题等外因—被开发认为无效bug 专业性
2、New(新建)–>(提bug本人、测试老大)指派–>开发、开发老大 : 跟进(3天没人管,push(推进)开发修改)
3、重复bug (duplicated):别人开过了–>要求开发备注一下重复bug编号(ID)–>测试确认–是重复的–>加备注–>关闭,–不是重复的–>重新激活–>指派给开发
4、不是缺陷(invalid):by-design(设计如此)、
有可能是因为操作问题,环境问题,对产品理解错误
一定要避免的!【==充分理解产品|确认并复现-- 不是bug – 备注关闭;依然是一个bug–加备注,重新激活–>开发修复;

“开发认为不是bug,你该怎么办?”
争论:1、分析需求。列举需求文档里的证据
2、从用户角度出发找到证据 --> 尝试说服开发;
3、产品(项目经理)–>拍板–>是bug–>开发修复;不是bug–>不要纠结,留好证据(邮件截图,聊天记录,备注bug)
5、无法复现(un-reproduced):
1、开发无法复现:确认一下测试环境能不能复现出来== 可以–>帮助开发复现,测试环境调试定位
2、测试和开发环境都无法复现:尝试跟踪3-5个版本(每个版本10+)–>加备注(复现次数,跟踪版本数)–>关闭 =记录下来,研究
3、偶现bug == 偶现率(3/10)–影响到开发修复bug的优先级
6、不予解决(wontfix):1 .bug级别低(UI、minor、enhancement),处理方式:1、从用户角度出发找到证据->尝试说服开发; 2、产品(项目经理)->拍板–>是bug–>开发修复;不是bug-> 不要纠结,留好证据(邮件抠图,备注bug)
7、延期(dalayed):建议性(feature/enhancement)–作为下一个版本需求;1、马上上线,时间不够2、bug修复影响比较大,回归成本太高 | 1、确认bug的严重级别,会不会影响达到用户使用->一定要修复,版本延后发布,加班修复;2、如果不是特别影响用户,真的修复成本、风险太高–可以不修 === 找产品、项目经理最后确认 --风险+情况说明
不修复,备注(留证据)=不关闭,挂起
8、已修复(resolved-fixed):再次进行测试验证(bug步骤重新作一遍、结果再检查一遍)
=
1、拿到正确的版本验证bug(包含了开发修复代码的版本)2、确认bug跟你之前开的bug步骤一致–验证关闭;–扩展有了新的问题–开成给一个新的bug 回归测试
9、没有修好
同样的步骤,还存在==重新激活–reopened 影响开发绩效
10、修复好了-- verified(验证完毕)
= closed
在这里插入图片描述

6、bug的跟踪管理-状态处理

1.已经指派的bug—已经指派给开发的,请大家注意自己bug的走向,随时关注并进行跟踪!如果一直未修复,提醒开发修改,以免开发忘记:如果已经修复等待测试环境更新后进行验证。催着改bug

2.已解决的bug—等待测试环境更新后进行验证,验证通过则关闭:验证不通过则重新打开指派给开发

3.重复bug–先去查看下是否跟开发指定的bug重复?如果确定是重复则关闭;如果不重复,说明原因,重新打开指派给开发,

4.不是缺陷–再次依据需求确认,是否是bug,如果依然觉得是缺陷跟开发沟通,列举出来觉得是bug的点,沟通未达一致找产品确认,确认是bug注明情况并再次指派给开发,产品确认不是bug,就不纠结,直接关闭bug,但是,会拿小本本把这个bug记录下来,等到测试任务结束后,再来研究研究。

5.无法重现----确认开发环境是否跟测试环境一致? 包括操作步骤、浏览器、环境、特定账号、输入数据等,如果多个版本验证之后,如开发所说重现不了,依据bug的严重程度跟产品、开发一起确认关闭;如果找到重现原因, 注明清楚并再次指派给开发

6.不予解决—找产品经理进行确认。确认不予解决进行关闭;确认需要解决请备注原因并打开指派给开发

7.设计如此—找产品经理进行确认。确认设计如此进行关闭;确认是问题,备注原因重新指派给开发

8.延期修改—请看下bug严重程度,是否影响当前版本发布?与产品经理进行确认。不予延期请根据情况进行激活与情况说明;确认延期则做好记录,后续版本进行关注一不关闭

7、bug的跟踪管理缺陷管理工具

常见的缺陷管理平台:(标红的是常用的)
禅道(zentao) ,我们现在做项目用的就是这个
bugilla, jira: 都还不错,也比较强大。但是搭建起来很困难
bugfree:
Readmine

easybug:免费开源,在线网站类型的
Mantis:这个还可以用
QC(QualityCenter). TD

不管是开源还是商业的缺陷管理工具,它们本质都是一样的,用来管理bug的生命周期。掌握其中-款工具,自然就会用其他的,稍微有-点点区别的,别人加以指点,就可以明白了.

8、bug的跟踪管理-如何提交bug

发现bug后,接下来你提交到bug管理平台,提交一个bug包含哪些内容?

bug标题——标题要清晰简洁,写明bug描述;如果没有选择功能模块,最好在标题中标注功能模块。让查看bug的人员清楚知道你所表达的意思。bug的功能模块+bug的操作+bug的结果
重现步骤——详细写下发现bug的测试过程。能指导开发重现这个bug。附上测试数据
实际结果——出现bug的结果,粘贴bug截图、日志截图–文字+截图 == 1、直观2、无图无真相
预期结果——记得写清楚预期 == 测试用例预期结果 – 修复bug的依据
bug类型和严重程度——便于后续测试结果分析,bug的统计
bug测试环境——例如:什么系统,哪个版本等。兼容性问题、难以重现问题
附件——日志文件,文件测试数据。图片、崩溃日志文件等

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式 速成

正则表达式的作用 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字…

轻量级 S3 协议存储客户端

目前大家一般不会把二进制文件直接放在应用服务器上&#xff0c;而是存在“对象存储”的方案中&#xff0c;例如亚马逊的 AWS&#xff0c;阿里云的 OSS、Cloudflare R2 等。AWS 为最早的始作俑者&#xff0c;因此其 S3 协议也近乎标准化&#xff0c;各大厂商的对象存储方案都实…

【C++类和对象】构造函数与析构函数

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

【grpc】grpc进阶二,grpc认证方式

本章把之前的工程结构改了一下&#xff0c;创建了 server 和 client 两个目录&#xff0c;分别把 server.go&#xff0c;client.go 移动过去。 接下来会介绍 grpc 的 TLS 认证和 Oauth2 一、TLS认证 在进行功能验证是需要使用 openssl 创建自有证书&#xff0c;下面是创建步骤…

Paddle实现人脸对比(二)

我之前发过一篇基于孪生网络的人脸对比的文章&#xff0c;这篇文章也到了百度的推荐位置&#xff1a; 但是&#xff0c;效果并不是很好。经过大量的搜索&#xff0c;我发现了一种新的方法&#xff0c;可以非常好的实现人脸对比。 原理分析 我们先训练一个普通的人脸分类模型&…

关于机器学习/深度学习的一些事-答知乎问(二)

进化算法与深度强化学习算法结合如何进行改进&#xff1f; &#xff08;1&#xff09;进化算法普遍存在着样本效率低下的问题&#xff0c;虽然其探索度较高&#xff0c;但其本质为全局随机性搜索&#xff0c;需要在整个回合结束后才能更新其种群&#xff0c;而深度强化学习在每…

深入理解计算机网络分层结构

一、 为什么要分层&#xff1f; 计算机网络分层的主要目的是将复杂的网络通信过程分解为多个相互独立的层次&#xff0c;每个层次负责特定的功能。这样做有以下几个好处&#xff1a; 模块化设计&#xff1a;每个层次都有清晰定义的功能和接口&#xff0c;使得网络系统更易于设…

023——搭建图形化客户端(基于pySimpleGUI)

目录 一、pysimplegui 1.1 安装 1.2 测试 二、 pysimplegui学习 2.1 学习地址 2.2 人类早期驯服pysimplegui珍贵流水账 三、 实现项目专属的界面 一、pySimpleGUI 1.1 安装 pip install pysimplegui -i https://pypi.tuna.tsinghua.edu.cn/simple Command pip not fo…

GAN:对抗生成网络【通俗易懂】

一、概述 对抗生成网络&#xff08;GAN&#xff09;是一种深度学习模型&#xff0c;由两个神经网络组成&#xff1a;生成器G和判别器D。这两个网络被训练来协同工作&#xff0c;以生成接近真实数据的新样本。 生成器的任务是接收一个随机噪声向量&#xff0c;并将其转换为与真…

【Web】DASCTF X GFCTF 2022十月挑战赛题解

目录 EasyPOP hade_waibo EasyLove BlogSystem EasyPOP 先读hint.php sorry.__destruct -> secret_code::secret() exp: $anew sorry(); $bnew secret_code(); $a->password"suibian"; $a->name"jay"; echo serialize($a); 真暗号啊&…

基于Java停车场管理系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

即插即用模块之DO-Conv(深度过度参数化卷积层)详解

目录 一、摘要 二、核心创新点 三、代码详解 四、实验结果 4.1Image Classification 4.2Semantic Segmentation 4.3Object Detection 五、总结 论文&#xff1a;DOConv论文 代码&#xff1a;DOConv代码 一、摘要 卷积层是卷积神经网络(cnn)的核心组成部分。在本文中…

【Java虚拟机】简单易懂的ZGC原理分析

简单易懂的ZGC原理分析 GC垃圾收集器ZGC的特点ZGC相关技术Region染色指针 & 转发表 & 读屏障染色指针转发表读屏障 内存多重映射 ZGC流程详解ZGC与其他垃圾搜集器比较与CMS比较与G1比较 GC垃圾收集器 GC垃圾收集器的作用就是帮我们清理堆内存里面的垃圾&#xff0c;无…

第1章、react基础知识;

一、react学习前期准备&#xff1b; 1、基本概念&#xff1b; 前期的知识准备&#xff1a; 1.javascript、html、css&#xff1b; 2.构建工具&#xff1a;Webpack&#xff1a;https://yunp.top/init/p/v/1 3.安装node&#xff1a;npm&#xff1a;https://yunp.top/init/p/v/1 …

cmake制作并链接动静态库

cmake制作并链接动静态库 制作静态库add_library(库名称 STATIC 源文件1 [源文件2] ...)LIBRARY_OUTPUT_PATH指定库的生成路径 制作动态库add_library(库名称 SHARED 源文件1 [源文件2] ...) 连接动静态库link_libraries连接静态库link_directories到哪个路径去找库target_link…

UnityShader学习计划

1.安装ShaderlabVS,vs的语法提示 2. 常规颜色是fixed 3.FrameDebugger调试查看draw的某一帧的全部信息&#xff0c;能看到变量参数的值

雅马哈电钢琴YDP145

数据线&#xff1a;MIDI 琴可以通过MIDI、线直接连接手机&#xff0c;播放声音 琴通过线连接电脑&#xff0c;不能直接播放声音 https://www.bilibili.com/video/BV1ws4y1M7yw 操作&#xff1a; https://usa.yamaha.com/support/updates/yamaha_steinberg_usb_driver_for_win…

王道汽车4S企业管理系统 SQL注入漏洞复现

0x01 产品简介 王道汽车4S企业管理系统(以下简称“王道4S系统”)是一套专门为汽车销售和维修服务企业开发的管理软件。该系统是博士德软件公司集10余年汽车行业管理软件研发经验之大成,精心打造的最新一代汽车4S企业管理解决方案。 0x02 漏洞概述 王道汽车4S企业管理系统…

完美照片由构图决定,摄影构图基础到进阶

一、资料描述 本套摄影构图资料&#xff0c;大小1.04G&#xff0c;共有51个文件。 二、资料目录 新手必备-摄影构图技巧.doc 无忌版的《摄影构图学》.pdf 完美照片的十大经典拍摄技法.pdf 数码摄影曝光手边书.pdf 数码摄影不求人.30天学会数码摄影构图.pdf 数码单反摄影…