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测试环境——例如:什么系统,哪个版本等。兼容性问题、难以重现问题
附件——日志文件,文件测试数据。图片、崩溃日志文件等

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

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

相关文章

Orangepi Zero2 wiringPi外设库SDK安装

文章目录 1. sdk 下载2. sdk 使用 1. sdk 下载 1、使用git 下载 # apt-get update # apt-get install -y git # git clone https://github.com/orangepi-xunlong/wiringOP.git2、手动下载并上传 下载连接 https://github.com/orangepi-xunlong/wiringOP 选master分支 上传到…

【vue】跨组件通信--依赖注入

import { provide,inject } from vue provide&#xff1a;将父组件的数据传递给所有子组件&#xff08;子孙都有&#xff09;inject&#xff1a;接收provide 项目文件结构 App.vue是Header.vue的父组件&#xff0c;Header.vue是Nav.vue的父组件 传值过程 App.vue <tem…

Python学习笔记20 - 模块

什么叫模块 自定义模块 Python中的包 Python中常用的内置模块 第三方模块的安装与使用

计算机网络——DHCP协议

前言 本博客是博主用于复习计算机网络的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结&#xff0c;讲的非常好。 可以先去看一篇视频&#xff0c;再来参考这篇笔记&#xff08;或者说直接偷走&#xff09;。 …

funasr 麦克风实时流语音识别;模拟vad检测单独输出完整每句话

参考: https://github.com/alibaba-damo-academy/FunASR chunk_size 是用于流式传输延迟的配置。[0,10,5] 表示实时显示的粒度为 1060=600 毫秒,并且预测的向前信息为 560=300 毫秒。每个推理输入为 600 毫秒(采样点为 16000*0.6=960),输出为相应的文本。对于最后一个语音…

【学习】软件测试需求分析要从哪些方面入手

软件测试需求分析是软件测试过程中非常重要的一个环节&#xff0c;它是为了明确软件测试的目标、范围、资源和时间等要素&#xff0c;以确保软件测试的有效性和全面性。本文将从以下几个方面对软件测试需求分析进行详细的阐述&#xff1a; 一、软件测试目标 软件测试目标是指…

机器学习周记(第三十四周:文献阅读[GNet-LS])2024.4.8~2024.4.14

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文模型 1.3.1 数据处理 1.3.2 GNet-LS 2 相关代码 摘要 本周阅读了一篇时间序列预测论文。论文模型为GNet-LS&#xff0c;主要包含四个模块&#xff1a;粒度划分模块&#xff08;GD&#xff09;&…

RabbitMQ消息模型之Work消息模型

Work消息模型 * work模型&#xff1a; * 多个消费者消费同一个队列中的消息&#xff0c;每个消费者获取到的消息唯一&#xff0c;且只能消费一次 * 作用&#xff1a;提高消息的消费速度&#xff0c;避免消息的堆积 * 默认采用轮询的方式分发消息 * 如果某…

无人机/飞控--ArduPilot、PX4学习记录(5)

这几天看dronekit&#xff0c;做无人机失控保护。 PX4官网上的经典案例&#xff0c;我做了很多注解&#xff0c;把代码过了一遍。 无人机具体执行了&#xff1a; 先起飞&#xff0c;飞至正上空10m->向北移动10m->向东移动10m->向南移动10m->向西移动10m->回到初…

mysql题目5

tj11&#xff1a; select max(c.teacher_age) 最大的年龄 from tb_teacher c tj12: select a.class_name 班级名称,b.student_name 学生姓名,b.gender 学生性别 from tb_class a join tb_student b on a.class_idb.class_id join tb_teacher c on a.teacher_idc.teacher_id w…

kubekey 离线安装harbor、k8s、kubesphere

目录 参考文献 了解kubekey 英文和中文 前提条件 部署准备 下载kubukey 离线包配置和制作 配置离线包 制作离线包 离线安装集群 复制KubeKey 和制品 artifact到离线机器 创建初始换、安装配置文件 安装镜像仓库harbor 初始化harbor 项目 修改配置文件 安装k8s集…

实战--------部署搭建ELFK+zookeeper+kafka架构

目录 一、部署jdk环境 二、搭建Elasticsearch 三、搭建logstash 四、搭建kibana服务 五、搭建filebeat服务 六、搭建zookeeper与kafka服务 七、部署ELFKzookeeperkafka Filebeat/Fluentd&#xff1a;负责从各服务器节点上实时收集日志数据&#xff0c;Filebeat轻量级&am…

面试八股——Spring——AOP与事务

AOP的定义 事务的实现 事务的失效场景 异常捕获处理 下图中由于②导致异常&#xff1a; 原因&#xff1a; 解决办法&#xff1a;自己抛出一个非检查异常&#xff08;具体原因看“抛出检查异常”&#xff09;。 抛出检查异常 由于①出错&#xff0c;导致抛出了检查异常 原因&…

[通俗易懂:Linux标准输入/输出和重定向]Shell脚本之 > /dev/null 2>1命令详解

目录标题 一、> /dev/null 2>&1 命令解析二、/dev/null 文件浅显理解三、标准输入、标准输出、标准错误输出四、输入重定向、输出重定向五、命令作用与应用场景 如果想看命令意义&#xff0c;可以直接跳到第五部分 一、> /dev/null 2>&1 命令解析 我们在别…

计算机服务器中了360后缀勒索病毒怎么办?360后缀勒索病毒解密步骤

网络技术的不断应用与发展&#xff0c;为企业的生产运营提供了极大便利&#xff0c;利用网络可以开展各项工作业务&#xff0c;可以大大提高企业的生产效率&#xff0c;然而&#xff0c;网络是一把双刃剑&#xff0c;在为企业提供便利的同时&#xff0c;也为企业的数据安全带来…

常见的Linux命令

linux操作系统 ctrl鼠标滚动 放大缩小字体 cd /目录进入目录下 ls查看当前目录下的所有内容 tar -zxvf 压缩包名字 对压缩包进行解压 sync将数据由内存同步到硬盘上 shutdown关机指令 shutdown -h 10 /10 表示十分钟后关机 shutdown -h now 表示现在关机 shutdown -h…

英语新概念2-回译法-lesson6

我刚刚搬家去柏林大街的房子里。昨天一个流浪汉敲我的门,他想我寻求一顿饭和一杯啤酒。未拒绝了这个请求之后,这个流浪汉倒立着唱歌,我给他了一顿饭,他吃了食物并且喝了啤酒,然后他把一片奶酪放到他的口袋里然后走开了。过了一会儿,一个领居告诉我关于这个流浪汉的事情。…

Centos7 K8S 集群 - kubeadm搭建方式

机器准备 搭建环境是centos7, 四核心4G内存四台机器 一个master节点&#xff0c;一个etcd&#xff0c;两台node 机器名称IP 地址master192.168.1.127node1192.168.1.129node2192.168.1.130node3192.168.1.131 机器时间同步 各节点时间要求精确同步&#xff0c;可以直接联网…

算法设计与分析(超详解!) 第二节 递归与分治

1.递归定义 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。 由分治法产生的子问题往往是原问题的较小模式&#xff0c;这就为使用递归技术提供了方便。在这种情况下&#xff0c;反复应用分治手段&#xff0c;可以使子问题与原问题类型一致…

LeetCode-热题100:226. 翻转二叉树

题目描述 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a; root [4,2,7,1,3,6,9] 输出&#xff1a; [4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a; root [2,1,3] 输出&#xff1a; […