软件测试公式之如何高质量的做BUG分析?

news2024/11/24 9:12:56

对于BUG分析,测试人员再熟悉不过了。但如果是面对大量的BUG,要如何有效的分析呢?有什么好的方案和行动项?今天聊聊这个话题。

01

BUG分析简单可以分为两类:宏观BUG分析 和 微观BUG分析

宏观BUG分析在某个迭代或者版本的周期内(或者更长时间),对BUG产生的原因、修复周期、累积趋势进行分析。总结分析bug和测试过程问题,形成的质量报告不仅能准确评估过去产品质量,还能为未来产品提出改进建议,持续推进产品质量的不断提高和完善。

微观BUG分析:指深入分析某个bug产生的根因、探讨后续如何避免。

如何高质量的做BUG分析?

02

众所周知,早期发现并修复bug所需的资源更少。因此,我们应该尽早预防和发现bug,而不仅仅是修复它们。适当借鉴过去的经验是一种较好的预防bug方法。通过分析现有的bug,找到引起它们的根本原因和流程中的缺陷,并思考如何从各个方面进行优化改进,可以有效地预防bug,降低质量风险,提高产品质量。

这,是我们进行BUG分析的原始动力,也是让我们不迷失在茫茫BUG之海中的锚点。

03

常见的BUG分析有以下几种方法:

分类法:对所有的BUG进行分类,识别出共性的问题。根据分析的角度不同,也会有不同的分类方法,下面是笔者常用的分类方法,仅供参考:

发生阶段:冒烟测试、迭代测试、SIT测试、UAT测试、生产;根据BUG的发生阶段,我们可以观察BUG是否收敛,如果整体趋势是收敛的,那么分析的重点就可以放到UAT和生产的具体BUG上。如果发现BUG没有收敛,或者趋势不明显,那就要优先分析流程和测试策略,这时候去分析某个BUG的根因意义就不大了。

产生原因:这个就有很多维度,比如需求问题、设计问题、编码问题、接口问题、数据问题等等;根据产生的原因,我们可以观察BUG集中发生在哪个阶段,大概的原因是什么。有助于研发去规范和改进研发过程,毕竟这是BUG产生的直接原因。

分类法适用于宏观BUG分析,有助于我们从整体审视BUG的生命周期,发现流程性的问题,而不是只关注某个BUG。

根因法:针对某类或者某个具体的BUG,进行刨根问底,找到BUG的根源。常用的方法有5Y法和5M1E法。

5Y法:是一种问题解决技术,旨在找出一个问题的根本原因。它通过连续追问"为什么"来深入挖掘问题的本质,直到找到最终的根本原因。让问题不浮于表面。(较常见,就不举例了哈)

5M1E法:是一种用于问题解决和过程改进的工具,它通过分类和归类来识别和分离影响某个过程的因素。5M1E代表的是材料、方法、人力、机器、测量/环境和效应,其中效应是该模型中最重要的一个部分。(文末有个具体的案例)

对于根因分析法,分析到什么程度才是“根因”呢:最直接的指标就是产生的结果是否是“可行动的”。如果一个结果是不可行动的,往往意味着深度或者抽象不够。

04

在实践过程中,我们经常会发现,虽然我们经常进行根因分析和复盘,但问题往往总是在重复,每次分析到最后,原因总是那几个,然后就逐步放弃这件事。笔者认为,最核心的问题在于我们缺少对PDCA中A(Act 行动)的确认,分析只留在当时,而没有持续跟踪改进。

经过分析或者复盘后,我们的流程是否发生了变化?研发过程是否发生了变化?哪些检查项被集成到流程中?有什么好的研发方法被推广了?还是什么都没发生。

当下次进行BUG分析前,是否确认之前的行动项已经被落地,同类型的BUG是否得到了收敛?如果没有,请不要再投入精力去做分析。请把上一次的行动项做好。

05

附:关于5M1E分析法的一个案例,假设一款软件出现了一个常见的问题:某个功能无法正常使用。

明确问题:某个功能无法正常工作。

识别过程:确定该功能所在的开发流程和测试流程。

分类:将过程中的所有因素按照5M1E分类,如下所示:

材料 (Material): 程序代码、测试数据等

方法 (Method): 开发和测试方法、流程等

人力 (Manpower): 开发和测试人员的技能水平、经验等

机器 (Machinery): 开发和测试设备、硬件环境、软件环境等

测量/环境 (Measurement/Environment): 测试工具、开发环境、测试环境等

效应 (Effect): 缺陷或错误的产生会影响什么

分析:分析每个因素如何影响该问题,并确定其中的关键因素,如下所示:

材料: 程序代码可能存在缺陷或bug,导致程序不能正常工作。

方法: 可能没有足够的测试覆盖率或测试用例来检测程序的缺陷或bug。

人力: 测试人员可能没有足够的经验或技能来检测程序的缺陷或bug。

机器: 测试环境可能与实际环境不匹配,导致未发现问题。

测量/环境: 可能使用的测试工具或开发环境存在问题,无法正确检测问题。

效应: 该缺陷或错误导致了产品质量问题,影响了客户满意度和公司品牌形象。

5M1E法给出了更聚焦的分析方向,可以多尝试使用,分析时,原因可能是5M中的一个或者多个,需要根据实际情况来确认。

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

自动化测试视频教程、学习笔记领取传送门!!!

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

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

相关文章

六、线程池的编写与解析 —— TinyWebServer

六、线程池的编写与解析 —— TinyWebServer 一、前言 经过上次数据库连接池的书写,大家也应该明白池的编写。 这里说一下不同点,和一些要注意的点。 为什么使用模板?为什么不用单例模式了?这里的线程池扮演的角色是什么&#x…

【PowerQuery】PowerBI 手动刷新数据内容

PowerBI的手动刷新方式和Excel基本一样,我们通过刷新数据源来实现数据的手动刷新,当然PowerBI 和Excel一样存在着单数据源刷新和全局数据源刷新两个操作。如果希望刷新单个数据源,我们可以在数据字段进行数据的刷新,具体的操作步骤…

阈值回归模型(Threshold Regression Model)及R实现

阈值回归模型是一类回归模型,其中预测变量与结果以阈值依赖的方式相关联。通过引入一个阈值参数(也称为转折点),阈值回归模型提供了一种简单而优雅、可解释的方法来建立结果和预测变量之间某些非线性关系的模型。在生物医学领域中…

Pyramid Scene Parsing Network–CVPR,2017论文解读及其pytorch代码

文章目录 Pyramid Scene Parsing Network--CVPR,2017一、背景介绍二、网络结构和优化方法三、实验结果 Pyramid Scene Parsing Network–CVPR,2017 Github代码链接 一、背景介绍 现阶段随着数据集制作精细化、标签种类变多、具有语义相似标签等导致出…

继承的笔记

继承 对象代表什么, 就得封装对应的数据, 并提供数据对应的行为 对于两种不同的类, 但是具有很多共同的属性的时候我们就想着用继承, 我们可以将共同的属性放置在一个类中, 然后, 只需要新建两个类, 继承共有的类, 然后单独写自己的属性特点 继承类 Java 中提供了一个关键字…

Hadoop-Hbase

1. Hbase安装 1.1 安装zookeeper、 hbase 解压至/opt/soft,并分别改名 配置环境变量并source生效 #ZK export ZOOKEEPER_HOME/opt/soft/zk345 export PATH$ZOOKEEPER_HOME/bin:$PATH #HBASE_HOME export HBASE_HOME/opt/soft/hbase235 export PATH$HBASE_HOME/b…

【OS】操作系统课程笔记 第三章 进程管理

3.1 多道程序设计 吞吐率:衡量一个系统效率的一个指标 采用多道程序设计可以显著提高吞吐率: 但是,并不是内存程序数量越多越好,下面有三点否定: 内存的容量限制了系统可同时处理程序的数目设备数量有限程序道数过多…

✔ ★ 算法基础笔记(Acwing)(三)—— 搜索与图论(17道题)【java版本】

搜索与图论 1. DFS1. 排列数字(3分钟)2. n-皇后问题 2. BFS&#xff08;队列&#xff09;1. 走迷宫二刷总结&#xff08;队列存储一个节点pair<int,int>&#xff09;三刷总结 走过的点标记上距离(既可以记录距离&#xff0c;也可以判断是否走过) ★ ★ 例题2. 八数码二刷…

离线安装PX4日志分析工具Flight Review

使用Flight Review在线分析日志&#xff0c;有时会因为网络原因无法使用 使用离线安装的方式使用Flight Review&#xff0c;可以在无需网络的情况下使用Flight Review sudo apt-get install sqlite3 fftw3 libfftw3-devsudo apt-get install libatlas3-basegit clone --recur…

【Linux核心宝典】Linux 系统目录结构详解 - 01

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

Linux基础入门

一、操作系统安装方法 1、使用u盘安装 工具&#xff08;前提条件&#xff09;&#xff1a; <1>u盘 <2>镜像文件iso/msdn.itellyou.cn <3>把u盘做成PE&#xff1a;大白菜/老毛桃/winPE/软碟通/ultralSO 设置BIOS&#xff1a;通过u盘启动 安装系统&…

Vue项目中实现拖拽排序效果-demo

在Vue3中实现拖拽排序&#xff0c;可以借助一些浏览器自带的API&#xff0c;以及一些Vue3的特性&#xff1a; 使用<template>标签中的v-for指令渲染出一个列表&#xff0c;每个列表项绑定一个draggable属性&#xff0c;使其能够被拖拽。 <template><ul><…

一次I/O操作的过程

什么是IO呢&#xff1f; IO&#xff0c;英文全称是Input/Output&#xff0c;翻译过来就是输入/输出。平时我们听得挺多&#xff0c;就是什么磁盘IO&#xff0c;网络IO。那IO到底是什么呢&#xff1f;是不是有种懵懵懂懂的感觉呀&#xff0c;好像大概知道它是什么&#xff0c;又…

ARIMA模型

1、简介 ARIMA模型(Autoregressive Integrated Moving Average model)&#xff0c;差分整合移动平均自回归模型&#xff0c;又称整合移动平均自回归模型&#xff0c;时间序列预测分析方法之一。ARIMA(p,d,q)中&#xff0c;AR是"自回归"&#xff0c;p为自回归项数;MA…

二叉树题目:最大层内元素和

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;最大层内元素和 出处&#xff1a;1161. 最大层内元素和 难度 4 级 题目描述 要求 给定一个二叉树的根结点 ro…

zookeeper可视化工具ZooInspector用法

最近在做银行的项目&#xff0c;用到了thrift&#xff0c;rpc和zookeeper&#xff0c;所有应用都是注册到zookeeper上的&#xff0c;想知道哪些应用注册上了&#xff0c;就用到ZooInspector这个可视化的工具。 1&#xff0c;下载 链接&#xff1a;https://issues.apache.org/…

flex弹性盒模型与阿里图标的使用

华子目录 flex布局flex布局原理flex使用三要素 阿里图标&#xff08;字体&#xff09; flex布局 相关学习网站&#xff1a;http://c.biancheng.net/css3/flex.html 1.flex是当前最主流的布局方式&#xff1a;用它布局起来更方便&#xff0c;取代了浮动的作用。 2.浮动布局有缺…

BUG:阿里巴巴图标库引入链接后,icon有时候会不显示的话svg下载到本地使用

忽然icon图标就不显示&#xff0c;但是代码、icon链接地址都没有发生变化 解决办法&#xff1a;将icon图标下载到本地&#xff0c;记住前后引用本地的名字要保持一致

学习jQuery库的第一天

简介 什么是 jQuery &#xff1f; jQuery 是一个广泛使用的 JavaScript 库。它简化了网页开发中常见的许多任务&#xff0c;例如 HTML 文档遍历、操作 HTML 元素、处理事件、动画效果、Ajax 网络请求等。通过使用 jQuery&#xff0c;开发人员可以更加高效地编写跨浏览器兼容的…

如何制作一个成功的超市购物小程序

随着互联网的普及和移动支付的便捷性&#xff0c;越来越多的消费者选择在网上购物&#xff0c;这也促使越来越多的商家开始搭建自己的小程序商城。对于超市便利店来说&#xff0c;拥有一个便捷、易用的小程序商城能够吸引更多的消费者&#xff0c;提高销售效率。那么如何快速搭…