常见BUG如何在测试过程中分析定位

前言

在测试的日常工作中,相信经常有测试的小伙伴遇到类似的情况:在项目上线时,只要出现问题(bug),就很容易成为“背锅侠”。

软件测试人员在工作中是无法避免的要和开发人员和产品经理打交道的,开发人员先将软件程序写出来,然后再由软件测试人员进行测试。一般在测试完成后,软件项目才能生产上线,然而在这个过程中,软件项目难免会出现一些问题(BUG),这个时候测试人员可能有听过类似的一些话:

“这么明显的问题(bug)都没有发现测试出来吗?”
“怎么这个产品的功能还没测试完就上线了?”
“前期研发时间不够,测试人员要尽量压缩一下测试时间”
“这个问题(bug)和开发没有关系,注意看看需求“
”测试人员一定要细心一点,不要把问题留给生产来发现” 

每每听到这些话,相信大家一定都是愤愤不平,感觉不知不觉就背了锅。

那么如何去避免这些问题呢?我想我们需要去提升自己的技能,能主动找到问题跟问题找上你是两回事,今天就给大家讲讲如何去分析定位常见的bug。

一、前置知识

1. 熟透系统业务、团队成员情况

2. 熟悉使用F12或抓包工具

3. 了解HTTP/HTTPS协议,能够区分请求URL、请求头、请求体、入参、响应数据、响应码

4. 具备操作常规Linux命令,能否登入服务器查看Log日志,例如Tomcat等应用,不排除一些公司有对应的查看日志平台,例如K8S、Xlog,总之会查看对应服务打印的日志就行,这里日志等级输出具体可以百度

5. 了解系统的架构,数据走向

6. 思维敏捷,懂得检索百度

二、定位技巧

1.首先当系统出现bug时,一定要将bug现象进行录制保留,保留现象时为了证明这个bug出现过,如果bug是必现还好说,如果该bug无法必现,那么保存的截图都是你直接证据,要养成良好的保存现场的习惯

2.提BUG这块,还是要体现出测试的专业性,标题简洁、问题环境标识清楚、问题详细描述清楚、系统错误表象贴图、接口传参返参贴图、必要时贴服务器日志,总结来说不该少的bug标签一个不要少 

一. 小型产品,前后端一人统筹

一些小型程序,例如前后端都用node、php语言开发的,整个系统前后端是同一个开发的时候,那么小编可以自信的给你说,系统出现问题时,bug大胆的提,往猝死的提,责任人错不了!

二. 常规系统,多人开发协同

前置:测试之前该测试人员对系统、业务、环境部署、开发人员等较为熟悉

在测试之前打开对应浏览器的F12直接开个新页签,或者使用抓包工具等,系统呈现出问题时,查看对应的请求、日志信息等我们才能去全面的定位是前端还是后端人员的问题,具体给大家介绍以下几个常用方法:

1. 分析问题场景进行预判

先查看页面表象,根据问题表像判断问题可能出现的原因,进行缩小范围,并且准备好录制工具,录制问题

系统页面无法正常访问的提示5开头的找后端,4开头的先检查请求地址或者对应的权限,进入系统页面正常打开,提示异常代码错误的直接找后端

进入系统页面展示异常图片视频相关提示Flash等相关信息进行安装Flash如若还不行找前端,界面UI展示兼容性错误找前端

如若系统访问正常,进入操作页面,功能性报错信息,就进入下面环节,抓包查看对应请求体,看日志等

2. 关注请求体的状态码

4**开头的状态码一般都是客户端(前端)的问题;例如常见的404确认下是否是请求的地址有错,403确认是否有权限访问,具体可百度

5**开头的状态码一般都是服务端(后端)问题,例如常见的500,则表示是服务器内部错误,503网络过载导致服务端延时,502服务器崩溃等,具体可百度

3.关注请求的入参与响应数据

通过访问报错的页面,加载错误请求时我们通过F12进行分析请求包,查看对应的入参以及响应数据

 例如:请求入参错误,那么该bug属于前端的错误;入参标准可以根据前端页面的输入的内容或者选择的内容,进行核验,入参格式以及是否必填等可以对应接口文档去进行分析或跟开发确认

例如:请求未响应或者响应数据错误,那么该bug就属于后端的错误;一般是数据库查看报错,例如删了某个表查询报错误空指针等

如果请求的入参或者响应数据都没问题,可以跟开发反馈是不是浏览器解析的问题,可以换个浏览器测试

4. 查看日志

针对服务端类型的报错,我们可以进行登录日志平台或者服务器对应Log目录下查看打印出的日志

常用查看日志命令tail ,/error进行快速检索关键词接口名等相关内容

拿到对应的日志,将日志文件贴进bug单,指派给后端,提高专业性,测试人员也要养成看日志的习惯,看着看着就懂了

5. 经验法则

在系统前端页面当碰见服务器配置相关报错的信息例如Nginx***或者代码以及SQL相关的提示报错信息直接找后端处理,例如JAVA**** 、.PHP、SQL等异常报错前端字符校验、格式校验、等,浏览器界面UI兼容性以及插件,或者APP、小程序类调用手机相关功能拍照、语音无法正常调用直接找前端

记住以上的一些方法以及技巧减少将BUG责任人提错的概率,在提单方面整洁完整一些,长久以来,体现出你的专业性,相信开发会对你竖起大拇指

做一个既能发现问题还能协助开发解决的问题的测试人员,那也是你从初级跨入中级测试的一个标准

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

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

相关文章

c++的chrono总结用法

C11引入了<chrono>头文件&#xff0c;提供了处理时间的功能。以下是<chrono>头文件中一些常用的类和函数的总结用法&#xff1a; std::chrono::duration&#xff1a; 用于表示时间段的类模板。可以指定不同的时间单位&#xff08;如秒、毫秒、微秒等&#xff09;。…

117.龙芯2k1000-pmon(16)- linux下升级pmon

pmon的升级总是有些不方便&#xff0c;至少是要借助串口和串口工具 如果现场不方便连接串口&#xff0c;是不是可以使用网线升级pmon呢&#xff1f; 答案当然是可行的。 环境&#xff1a;2k1000linux3.10麒麟的文件系统 如今我已经把这个工具开发出来了。 GitHub - zhaozhi…

网络工程师笔记10 ( RIP / OSPF协议 )

RIP 学习路由信息的时候需要配认证 RIP规定超过15跳认定网络不可达 链路状态路由协议-OSPF 1. 产生lsa 2. 生成LSDB数据库 3. 进行spf算法&#xff0c;生成最有最短路径 4. 得出路由表

【探索C++容器:set和map的使用】

[本节目标] 1. 关联式容器 2. 键值对 3. 树形结构的关联式容器 1. 关联式容器 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为…

Toyota Programming Contest 2024#3(AtCoder Beginner Contest 344)(A~C)

A - Spoiler 竖线里面的不要输出&#xff0c;竖线只有一对&#xff0c;且出现一次。 #include <bits/stdc.h> //#define int long long #define per(i,j,k) for(int (i)(j);(i)<(k);(i)) #define rep(i,j,k) for(int (i)(j);(i)>(k);--(i)) #define debug(a) cou…

设计模式 工厂模式

工厂模式&#xff0c;最重要的是反射。 反射&#xff1a;Class类 java的注释是这样写的&#xff1a; Class没有公共构造函数。相反&#xff0c;Class对象是在类加载时由Java虚拟机自动构造的&#xff0c;并通过调用类加载器中的defineClass方法来实现。

链表|面试题 02.07.链表相交

ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode *l NULL, *s NULL;int lenA 0, lenB 0, gap 0;// 求出两个链表的长度s headA;while (s) {lenA ;s s->next;}s headB;while (s) {lenB ;s s->next;}// 求出两个链表长度差if (lenA &…

LeetCode刷题笔记之动态规划(一)

一、动态规划的基础知识 动态规划&#xff08;Dynamic Programming&#xff0c;简称DP&#xff09;&#xff0c;动态规划问题的一般形式就是求最值&#xff0c;求解动态规划的核心问题是穷举&#xff0c;动态规划中每一个状态一定是由上一个状态推导出来的。解题步骤&#xff…

stm32学习笔记:SPI通信协议原理(未完)

一、SPI简介(serial Peripheral Interface&#xff08;串行 外设 接口&#xff09;) 1、电路模式&#xff08;采用一主多从的模式&#xff09;、同步&#xff0c;全双工 1 所有SPI设备的SCK、MOSI、MISO分别连在一起 2 主机另外引出多条SS控制线&#xff0c;分别接到各从机的S…

DetNet论文速读

paper&#xff1a;DetNet: A Backbone network for Object Detection 存在的问题 最近的目标检测模型通常依赖于在ImageNet分类数据集上预训练的骨干网络。由于ImageNet的分类任务不同于目标检测&#xff0c;后者不仅需要识别对象的类别&#xff0c;而且需要对边界框进行空间…

音视频开发_音频基础知识

如何采集声音——模数转换原理 声音模数转换是将声音信号从模拟形式转换为数字形式的过程。它是数字声音处理的基础&#xff0c;常用于语音识别、音频编码等应用中。 音视频通信流程 音视频采集&#xff1a;首先是从麦克风、摄像头等设备中采集音频和视频数据&#xff0c;将现…

编写Linux的SHELL脚本设置环境变量遇到的那些坑

1.背景 最近进行一个rocketmq的单机版安装&#xff0c;发现安装步骤很繁琐&#xff0c;想着写一个shell脚本&#xff0c;一键执行安装。 本文仅在于说明关于JDK的环境变量设置为示例 2.SHELL脚本设置环境变量 #!/bin/sh #定义变量 profile_file~/.bash_profile #1.安装JDK t…

SQL之常用字符串函数

1. LOWER( )&#xff1a;将字符串中的所有字符转换为小写。 select lower(Hello World); -- 输出&#xff1a;hello world 2. UPPER( )&#xff1a;将字符串中的所有字符转换为大写。 select upper(Hello World); -- 输出&#xff1a;HELLO WORLD 3. CONCAT( )&#xff…

【Windows】VMware虚拟机应用(一):下载安装 VMware Workstation

目录 一、下载 二、注意事项 三、安装 四、密钥激活 4.1 密钥 4.2 激活 一、下载 进入官网下载页 VMware Customer Connect | The All-In-One VMware Product Support Portal 先登录&#xff0c;下载时要求登录。 点【Downloads】 进入产品下载页面&#xff0c;切换到…

手写简易操作系统(三)--加载Loader

前情提要 上一节我们讲了如何启动计算机&#xff0c;这一节我们讲如何加载内核&#xff0c;内核是存在于硬盘上的一段程序&#xff0c;要加载这段程序&#xff0c;那么必然需要从硬盘上读取数据&#xff0c;这里我们就需要使用 ATA PIO 模式 根据ATA规范&#xff0c;所有符合A…

深度学习的一些工具函数

文章目录 简介数据集划分数据集 简介 记录深度学习编写程序过程中的一些工具函数 数据集 划分数据集 数据集划分思路&#xff1a; 若数据集很小&#xff0c;直接随机打乱 import random random.shuffle(data)若数据集很大&#xff0c;选择随机打乱下标&#xff0c;根据下…

docker部署springboot jar包项目

docker部署springboot jar包项目 前提&#xff0c;服务器环境是docker环境&#xff0c;如果服务器没有安装docker&#xff0c;可以先安装docker环境。 各个环境安装docker&#xff1a; Ubuntu上安装Docker&#xff1a; ubuntu离线安装docker: CentOS7离线安装Docker&#xff1…

算法-排序

0、复杂度及稳定性 时间复杂度空间复杂度 稳定性&#xff08;相等元素相对顺序不变&#xff09; 冒泡排序 时间复杂度为O(n^2) 最坏/平均&#xff1a;O(n^2) 最好&#xff1a;O(n)&#xff0c;序列有序 O(1)稳定插入排序 时间复杂度为O(n^2) 最坏/平均&#xff1a;O(n^2) 最好…

可视化场景(2):电商大屏-引爆业绩,直观呈现

hello&#xff0c;我是贝格前端工场&#xff0c;本期分享可视化大屏在电商领域的应用&#xff0c;如需要定制&#xff0c;可以与我们联络&#xff0c;开始了。 电商领域的可视化大屏可以提供实时的销售数据、用户行为分析、库存管理等信息&#xff0c;帮助企业实时监控经营状况…

java jdk17 HashMap解读

类描述 基于Hash表的Map接口实现。此实现提供了所有的可选的map操作&#xff0c;并且避免了null值和null键。&#xff08;HashMap类大体上等价于Hashtable,除了它是非同步的和禁止null&#xff09;。此类不保证map的顺序。特别是&#xff0c;不保证随着时间的变化顺序保持不变…