测出Bug就完了?从4个方面教你Bug根因分析

news2024/11/26 5:34:39

01 现状及场景

🎯 1.缺失bug根因分析环节

工作10年,虽然不是一线城市,也经历过几家公司,规模大的、规模小的都有,针对于测试行业很少有Bug根因环节,主流程基本上都是测试提交bug-开发修改-测试验证-发送报告,测试环节结束。

往往有下面几个原因:

时间压力: 在项目开发周期紧张的情况下,测试团队可能会因时间压力而忽略深入的BUG根源分析。解决方案:合理规划测试时间,将足够的时间用于分析和解决问题。

技能和经验不足: 一些测试人员可能缺乏足够的技能和经验来进行深入的BUG根源分析。解决方案:提供培训和指导,提升团队成员的技能水平。

沟通不畅: 缺乏与开发团队和其他相关团队的有效沟通,可能导致问题的根本原因难以获得。解决方案:加强跨团队沟通,确保问题描述准确传达。

工具和资源不足:没有合适的工具和资源来支持深入的BUG根源分析。解决方案:投入适当的工具和资源,提升分析效率。

重视程度不足: 一些团队可能在BUG根源分析环节没有足够的重视,将其视为次要环节。解决方案:强调BUG根源分析的重要性,确保每个问题都得到适当的分析。

缺乏流程和规范:缺乏明确的BUG根源分析流程和规范,可能导致分析过程不一致或混乱。解决方案:建立明确的分析流程和规范,确保每个团队成员都按照标准进行分析。

缺乏反馈机制:没有及时的反馈机制,测试人员可能难以得知他们提出的问题的分析结果和解决方案。解决方案:建立反馈机制,确保分析结果被及时传达给相关人员。

忽视根本原因:有时测试团队可能只关注问题的表面症状,而忽视了问题的根本原因。解决方案:鼓励团队进行深入分析,追溯问题的根本原因。

🎯 2.适用场景

本篇内容针对系统上线后对所有相关系统进行的数据流业务测试发现的bug;

针对这些线上bug进行分析汇总,大概50个左右,找到一些底层的原因及规律。

02 Bug 分析四步走

BUG 根因分析的核心思路是要从中发现测试策略问题并及时改正,避免下次再犯同样的问题。

下面是我如何针对这50个bug进行分析的过程:

记录-》缺陷原因分析-》角色归因-》提升方案

🎯 1.记录环节

记录环节也就是测试过程中发现的bug进行记录整理到buglist中,以excel 表格形式呈现,如下图

在这里插入图片描述

🎯2.标记缺陷原因分析

增加一列:缺陷原因分析

针对每一个bug,分析根本原因,有一些自己测试过程中就已经了解了可以写上,不了解的或者记不起的内容可以统一咨询相关开发人员,他们是最了解问题的第一人。

🎯3.针对角色归因

查了一些分析方法,其中有鱼骨图法、Whys(5个为什么) 这两个分析方法还可,但感觉都不太适用我们公司,初步阶段不需要弄的那么复杂,所以采用最简单的方式 主要责任人就两类:开发和测试,所以以此为基准展开如下几大类:

开发人员:

缺少自测

自测不足

系统间联调不充分

测试人员:

漏测

测试人员业务理解不足

具体包括:

1、公共方法名称重复,忘记删除

2、生产文件不是最新

3、通过接口调,未走实际流程

4、代码逻辑错误

5、用例不详细

6、开发、测试业务理解不透

图片

🎯4.可提升方案

针对测试方面想到几点可提升点如下:

4.1用例详细:

4.1.1增加工作台列表校验

4.1.2测试结果 现象需描述清晰

4.1.3功能与功能之间页面名称需要统一

4.2测试流程
4.2.1原理–维护功能梳理表格

从需求阶段到测试整个过程中一直维护这个表格,对所有疑难点梳理清晰

4.2.2跑主流程使用全新的基础数据环境

这次发现的一部分问题之前没发现的原因也是我们实际测试过程中,环境都在已搭建基础上开始,或者经过很多次测试,所以像这种联调测试在测试环境尽量保证数据的

4.2.3增加源数据修改流程

有几个重要问题都是修改源文件导致其他功能不好用

所以在写用例时需要考虑修改数据后,接下来流程的正确性

4.2.4redmine 添加bug原因(必填项)

这个主要目的应用于平时项目中,每一个bug流程开发修改完成后点击已修改前,添加bug根因,目的其一可以对bug产生原因有跟踪,方便测试后续统计,其二开发对自己本身技能提升也有帮助。

03 总结

在写文档前,我也犹豫了一下要不要具体分析?万一分析完成后全是测试漏测怎么办,大多数都是测试原因呢?分析的不专业怎么办?事开头难,奔着提升的心态,发现一个问题解决一个问题,我们才能够成长,只要迈出这一步,重复的进行慢慢的就有了经验。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

Spring学习(二)

图解: 2.核心容器总结 2.2.1 容器相关 BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载 ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载 ApplicationContext接口提供基础的be…

为什么科拓停车选择OceanBase来构建智慧停车SaaS应用

本文来自OceanBase的客户——拓客停车的实践分享 科拓停车简介与业务背景 作为智慧停车行业的佼佼者,科拓停车致力于提供全方位的智慧停车解决方案。服务涵盖车场运营管理、互联网智慧停车平台以及停车场增值服务等。通过不断研发创新,打造出了多样化的…

C++命名空间在内部声明函数,在外部定义函数

C命名空间在内部声明函数&#xff0c;在外部定义函数 #include <iostream> namespace A {int a;void func(); } void A::func() {std::cout << "Hello World!" << std::endl; } void main() {A::func(); }实际运行的代码和结果图如下&#xff1a;…

十大排序——10.基数排序

下面我们来看一下基数排序 目录 1.介绍 2.代码实现 3.总结与思考 1.介绍 基数排序&#xff08;Radix sort&#xff09;是一种非比较型整数排序算法 基本思想&#xff1a; 它的原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。基数排序的方式可以…

「51媒体」如何有效进行媒体邀约,提升宣传传播效果?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 进行有效的媒体邀约&#xff0c;提升宣传传播效果的关键在于策略性和专业性。以下是具体的做法&#xff1a; 明确目标&#xff1a;要确立清晰的品牌推广目标和策略&#xff0c;包括确定目…

DBUtils工具类的使用

1、DBUtils是什么 为了更加简单地使用JDBC&#xff0c;Apache组织提供了一个DBUtils工具&#xff0c;它是操作数据库的一个组件&#xff0c;实现了对JDBC的简单封装&#xff0c;可以在不影响数据库访问性能的情况下简化JDBC的编码工作量。DBUtils工具要有2个作用。 写数据&am…

【Linux】服务器硬件及RAID配置实战

目录 一、服务器 1.服务器 2.查看服务器信息 二、RAID 磁盘阵列 三、软RAID的创建和使用 1.添加硬盘&#xff0c;fdisk分区&#xff0c;分区类型ID设置为 fd 2.使用mdadm创建软raid 3.格式化 4.挂载使用 5.mdadm 一、服务器 1.服务器 分类机架式居多 塔…

Yolo-world+Python-OpenCV之摄像头视频实时目标检测

上一次介绍了如何使用最基本的 Yolo-word来做检测&#xff0c;现在我们在加opencv来做个实时检测的例子 基本思路 1、读取离线视频流 2、将视频帧给yolo识别 3、根据识别结果 对视频进行绘制边框、加文字之类的 完整代码如下&#xff1a; import datetimefrom ultralytics …

Lagent AgentLego 智能体介绍

本文主要介绍智能体相关基础知识&#xff0c;主流的智能体开源项目&#xff0c;重点介绍Lagent智能体和AgentLego框架。 一. 为什么要有智能体 目前的大预言模型有一些局限性&#xff0c;包括有时候会生成虚假信息&#xff0c;也就是我们说的“大模型胡言乱语”&#xff0c;还…

多线程意义

直接上代码 我们来看两个程序 由一个线程和两个线程运行的区别&#xff1a; 单线程&#xff08;main&#xff09;&#xff1a; public static void test(){long a 0;long b 0;for(long i 0; i < 10000000000l; i){a;}for(long i 0; i < 10000000000l; i){b;}} 多…

外包干了1年....字节跳动面试高频考点,懒加载

一、文章内容 什么是懒加载懒加载的优点什么时候使用懒加载学习懒加载前置内容实战懒加载图片 二、什么是懒加载? 从语法角度分析懒加载,懒是adj形容词,加载是名词;或者懒看为副词,加载作为动词,这样就能理解懒加载了就是懒懒的/地加载,更通俗的讲就是通过一种手段来加载.就…

docker 环境变量设置实现方式

1、前言 docker在当前运用的越来广泛&#xff0c;很多应用或者很多中间软件都有很多docker镜像资源&#xff0c;运行docker run 启动镜像资源即可应用。但是很多应用或者中间件有很多配置参数。这些参数在运用过程怎么设置给docker 容器呢&#xff1f;下面介绍几种方式 2 、do…

软件测试---性能测试

1.常见的性能问题有哪些 如图所示 系统内部以及软件的代码实现 1&#xff0c;资源泄漏&#xff0c;包括内存泄漏。 2&#xff0c;CPU使用率达到100%&#xff0c;系统被锁定等。 3&#xff0c;线程死锁&#xff0c;阻塞等造成系统越来越慢。 4&#xff0c;查询速度慢&#xff0c…

MySQL死锁与死锁检测

一、什么是MySQL死锁 MySQL中死锁是指两个或多个事务在互相等待对方释放资源&#xff0c;导致无法继续执行的情况。 MySQL系统中当两个或多个事务在并发执行时&#xff0c;就可能会遇到每项事务都持有某些资源同时又请求其他事务持有的资源&#xff0c;从而形成事务之间循环等…

【QT教程】QT6 Web性能优化

QT6 Web性能优化 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…

我的思考工作流(2024年版)

去年底&#xff0c;我对自己的思考工作流程又做了一些优化和改进&#xff0c;把它变得更为简洁、清晰。 因此&#xff0c;今天我想把它分享给大家&#xff0c;希望能给你一些启发。 我的核心方法论依然是我自己提出的「INKP知识管理法」&#xff08;参见《打开心智》第五章&…

【CAN】采样点介绍及测试方法

文章目录 1 什么是采样点2 为什么需要采样点3 采样点的计算公式4 VH6501测试原理和方法4.1 VH6501测试采样点原理4.2 VH6501测试方法 >>返回总目录<< 1 什么是采样点 采样点是节点判断信号逻辑电平的位置&#xff0c;是CAN控制器读取总线电平&#xff0c;并解释各…

【多线程】阻塞队列 | put()方法 | take()方法 | 生产者-消费者模式 |实现阻塞队列

文章目录 阻塞队列1.生产者-消费者模式生产者消费者模型的意义&#xff1a;1.解耦合2.削峰填谷&#xff1a; 2.阻塞队列的使用BlockingQueue 3.实现阻塞队列唤醒&#xff1a;使用阻塞队列实现生产者消费者模型 阻塞队列 阻塞队列是一种特殊的队列&#xff1a; 1.是线程安全的。…

【光伏企业】光伏项目怎么做才能提高效率?

一、精细化项目管理 项目规划&#xff1a;在项目启动前&#xff0c;进行充分的调研和规划&#xff0c;明确项目的目标、规模、预算和时间表&#xff0c;确保各项资源得到合理分配。 团队建设&#xff1a;组建一支高效、专业的项目团队&#xff0c;确保团队成员具备光伏领域的…

day02|最小花费爬梯子

最小花费爬梯子 比如 有一个数组 【2 5 20】我们直接选择从1号梯子&#xff08;从零编号&#xff09;跳两格就出去了。 算法原理 我们可以得出楼顶其实是数组的最后一个元素的下一个位置。对于最值问题我们可以尝试使用dpdp我们首先应该定义状态方差的含义&#xff0c;一般以…