遇到bug如何定位,如何区分前端/后端bug

为什么定位问题如此重要?

  • 可以明确一个问题是不是真的“bug”

    很多时候,我们找到了问题的原因,结果发现这根本不是bug。原因明确,误报就会降低

  • 多个系统交互,可以明确指出是哪个系统的缺陷,防止“踢皮球”,提高问题解决的效率

  • 增强开发对测试的信任度,沟通更有效,配合的更好,开发修改bug时效增强

  • 更有效的了解系统的内部逻辑、数据流处理流程,更能提高测试人员的水平,缺陷修复后,影响的测试范围评估更精准,复测更准确

  • 可以降低缺陷率

    这个可以说是最重要的。在bug系统中,会要求开发人员记录bug产生的原因。只有我们自己对bug有一个较全面的认识,才会判别出开发写的是不是真正的原因,也才能有助于我们后续对bug进行分析归类,根据bug分析,有针对性地未雨绸缪,进而提升产品质量,降低缺陷

01 定位原因之前

遇到问题时,先别急着去定位原因。

1、保存bug产生的记录:

首要做的是保存bug产生的记录,保证可以复现。

为什么要保存记录?因为如果以后不能复现,那就不能证明bug的存在。

2、排除低级问题:

然后是排除QA的低级问题,常见的低级问题:

  • 【hosts不对】

    hosts文件主要是加快某个域名或者网站的解析速度,从而达到快速访问的作用,也可以屏蔽网站。

    hosts异常可能会导致部分网页无法访问,能够加载,但是网页无法正常显示。

  • 【网络不通】:抓包、ping

  • 工具的影响导致的,例如fiddler

  • 以及操作姿势不正确等。

3、排除数据问题(脏数据):

有时候会遇到服务端报500错误,查看日志后,报空指针,那么很有可能就是数据库中关联表的数据被人为删掉导致的。

  • 脏数据:从目标中取出的数据已经过期、错误或者没有意义,这种数据就叫做脏数据

  • 脏读:读取出来脏数据就叫脏读

02 定位问题的思路

排查顺序:

用户环境层面 -> 展示层面 -> 逻辑控制层面 -> 服务层面 -> 数据库层面

1、用户环境层面

主要是指基础环境是否可以使用。比如:

  • 网络是否ping通

  • ip和端口配置是否正确

  • jdk版本是否符合标准

    有可能是由于jdk版本不兼容导致系统运行异常,这种问题根据实际情况来决定要不要兼容。

  • 网络设了代理

  • 弱网(如js/css未加载完全、请求超时)

  • 浏览器不支持

  • 系统版本不支持

  • 数据库被删除

  • 测试环境脏数据

  • 项目配置开关

  • 测试环境切了分支等

检查完成后,可以转到第二步

2、用户展示层

用户在使用过程中,通过查看等操作发现的一些问题:

  • 页面样式(css样式问题)

  • 交互过程中js的提示(js交互问题)

  • 终端控制的提示信息

  • 文本的展示(html文本问题)

3、逻辑控制层

用户操作过程中,业务的处理逻辑有没有按照前期的设计实施。或者中间环节出现异常,比如缓存服务器(如redis)、消息中间件(如rabbitMQ)、数据存取中间件等。

4、服务层

服务层往往检查服务器的配置,如可能是tomcat配置、nginx配置、jdbc配置等的问题。测试人员最好能够了解下它们的各项配置。

5、数据库层

可能出现测试环境和正式环境数据库版本不同,前后端数据格式、长度限制不同。用户操作完成后,交易流程非常顺畅,这样也不代表整个交易没有问题,还需要测试人员检查数据库登记的表和字段是否正确

  • 如果发现登记的字段与预期的结果不一致,则可以查看日志,检查请求报文送的字段是否正确,是否与前台填写的一致

  • 有的一个操作会登记多张表,所以要检查多张表登记或者更新的是否正确,测试人员也需要对被测系统的数据表结构熟悉

6、经验法则

有经验的测试人员对于有部分bug已经见过多次,能够很快找到根源,直奔主题,迅速报告或者解决bug

7、其他

常见的bug可能还有构建方面的原因

  • 比如代码本身没错,但是合并代码到主干后出现了问题

  • 比如代码存在冲突时手动解决的情况

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

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

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

相关文章

为什么会出现 Service Mesh:从 Spring Cloud 到 Sidecar 的演进逻辑

文章目录一、为什么需要 Service Mesh?Spring Cloud 的三大瓶颈❌ 瓶颈 1:**治理逻辑侵入业务代码**❌ 瓶颈 2:**升级成本高,难以统一治理**❌ 瓶颈 3:**多语言生态割裂**二、Sidecar 模式:无侵入治理的实现…

Kubernetes五大核心控制器深度解析:从原理到实践

引言:什么是Kubernetes控制器? 在Kubernetes生态系统中,控制器扮演着"智能大脑"的角色。它们持续监控集群状态,确保实际状态与期望状态保持一致。控制器模式是Kubernetes实现声明式API和自愈能力的关键机制。 控制器模…

收藏!什么是 AI Agent?与大模型的核心区别,程序员必看一文搞懂

做 AI 开发、学习大模型的程序员或小白,是不是常遇到这种卡点:明明能用大模型写接口、解算法题,可一旦碰到 “批量爬取竞品数据并生成分析报告”“自动化完成接口测试并输出测试用例” 这类实战任务,就瞬间卡壳?翻遍资…

基于python和flask框架的社区残障人士服务平台的设计与实现_e1m86k0r

目录摘要关键词关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 该平台基于Python和Flask框架开发,旨在为残障人士提供便捷的社区服务支持。系统采用B/S架构&#x…

http协议下JAVA分块上传跨平台兼容性探讨

来自一名"预算紧张"程序员的求助信 各位大神们好啊!(拱手) 我是一名浙江的Java程序员,最近接了个"惊天地泣鬼神"的大项目——20G文件上传下载系统!客户要求还挺多,但最让我感动的是预算:整整100…

Jmeter SQLite保存本地-功能/性能使用

1、功能测试可用方法 ①SQLite保存本地后,先连接SQLite,再读取SQLite数据,保存为变量 ②变量再引用到接口中 2、属性的使用-${__counter(,)} ${__V(smb_${__counter(,)},)} 设置属性:${__setProperty(promb_${__counter(,)},${_…

【干货收藏】AI抢走程序员一半饭碗?别怕,看完你就知道如何成为抢回饭碗的那一半

今天刷到一个扎心的问题,在程序员圈子里被189万人热议:“AI已经能编出很完美的程序,程序员这个行业以后是不是会消失?”翻完上千条回答,再结合最新行业数据,我得出一个既残酷又现实的结论:AI确实…

基于python和flask框架的经园小区物业信息管理系统的设计与实现_427840c8

目录摘要内容技术特点应用价值关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要内容 该研究基于Python和Flask框架设计并实现了一个针对经园小区的物业信息管理系统。系统采用B/…

Istio 架构全景解析:控制面 vs 数据面、核心组件与流量路径深度拆解

文章目录一、控制面 vs 数据面:Istio 的核心架构范式✅ 核心思想:**“智能控制,哑数据”**🔑 关键优势二、核心组件演进:从分散到统一(Istiod)❌ 早期架构(Istio 1.4 前)…

Python接口自动化浅析pymysql数据库操作流程

本文主要介绍pymysql安装、操作流程、语法基础及封装操作数据库类,需要的朋友可以参考下,希望能对大家有所帮助,每日提升一点点,欢迎大家多多交流讨论 在自动化过程中,我们需要查询数据库,校验结果是否正确&#xff…

基于python和flask框架的避暑山庄数字博物馆_5rb4d40z

目录避暑山庄数字博物馆系统概述核心功能模块技术实现特点创新与扩展性关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!避暑山庄数字博物馆系统概述 该系统基于Python和Flask框架开…

AI智能体(Agent)全解析:从技术原理到实战应用,程序员必学收藏的下一代生产力革命

AI智能体(AI Agent)是融合感知-决策-行动循环的AI系统,正引领工作方式变革。以LLM为"大脑"的AI Agent能自主完成复杂任务,从规划旅行到分析财报。技术虽面临幻觉、算力消耗等挑战,但市场增速迅猛,预计2030年达471亿美元…

Flutter 与原生通信机制全解析:MethodChannel / EventChannel / BasicMessageChannel,一篇讲透(工程级)

在 Flutter 项目中,只要涉及 系统能力、硬件设备、第三方 SDK、音视频、蓝牙、串口、机器人控制,就绕不开一个核心问题: 👉 Flutter 如何与 Android / iOS 原生通信?Flutter 官方提供了三种 Platform Channel&#xff…

Jmeter SQLite-DDT数据驱动/保存响应

1、下载数据驱动 SQLite的jar包,放到Jmeter的lib文件夹,重启Jmeter 2、创建连接 pool:-线程池必填 url: jdbc:sqlite:自定义一个dbfile文件名.db class: org.sqlite.JDBC user\password:不需要填写 附上MySQL的: 3、创建SQLi…

Flutter 逆向想学却无从下手?

2026 我和 Lane 联合出品硬核课程来了!Flutter 运行原理与Blutter项目解析各种python脚本以及实现原理分享内存 Dump 大量实战 Hook丰富案例 flutter-reverse项目实战不止 Flutter,后续还会分享更多案例demo全是真刀真枪的干货!私信主页 V …

基于python和flask加油站管理系统的设计与实现_33mc5571

目录加油站管理系统设计背景系统架构与技术栈核心功能模块关键技术实现系统测试与效果关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!加油站管理系统设计背景 随着燃油需求的增长和…

太流批了,有用的办公神器

今天给大家介绍一个非常好用的excel表格拆分和合并软件,这款软件可以将两个excel表格合并成一个,或者将一个excel表格拆分成多个。有需要的小伙伴可以下载收藏。 excel合并拆分工具 无限使用 软件无需安装,下载后解压即可,直接双…

牛批了,视频转换神器,办公必备

今天给大家介绍一款不错的视频转GIF动图的软件,软件功能非常强大,完全免费,有需要的小伙伴可以下载收藏。 V2GIF 视频转GIF工具 这款软件是绿色版,下载后解压双击打开就能直接使用了。 软件的主要特点: 1、不卡顿&a…

基于python和flask框架的医疗问诊拿药系统_01f8d3kp

目录 基于Python和Flask框架的医疗问诊拿药系统 关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 基于Python和Flask框架的医疗问诊拿药系统 该系统采用Python语言与Flask轻量级框架…

基于SpringBoot的智能旅游行程规划系统的设计与实现

背景分析随着旅游业的快速发展和个性化需求的增长,传统旅游行程规划方式存在信息碎片化、效率低下等问题。游客需要手动整合交通、住宿、景点等数据,耗时且难以优化。SpringBoot作为轻量级Java框架,具备快速开发、微服务支持等优势&#xff0…