首页 > 其他分享 >软件测试/测试开发|如何定位bug,一篇文章告诉你

软件测试/测试开发|如何定位bug,一篇文章告诉你

时间:2023-12-28 16:11:26浏览次数:37  
标签:实战 一篇 开发 报错 测试 页面 bug 软件测试

简介

在我们对软件进行测试时,遇见bug是无法避免的,但是我们如何对出现的bug进行定位呢?bug究竟是哪个原因引起的就是我们解决bug的关键所在了,本文就来介绍一下如何定位bug。

定位问题的重要性

很多测试人员可能会说,测试的职责就是找到bug,至于找原因并修复,那是开发的事情,关我什么事?

好,我的回答是,如果只想做一个测试人员最基本最本分的事情,那么可以这么想。但是,如果想要在测试甚至开发的道路上长足发展,就要知其所以然。

bug定位的重要性

  • 可以明确一个问题是不是真的“bug”。很多时候,我们找到了问题的原因,也许发现这根本不是bug。原因明确,误报就会降低
  • 找到bug原因后,可以明确地指给某个开发,防止他们打太极推来推去,提高缺陷的修复速度。
  • 让开发人员能够佩服你,提升开发对测试的信任度,提升测试话语权
  • 自己在这个过程中能学到很多东西,有助于理解产品内部逻辑,对架构的理解,以及数据流是怎样的走向。随着对业务架构逻辑的理解,反过来又会促进对问题的定位。
  • 可以降低缺陷率。这个可以说是最重要的。在bug系统中,我们会要求开发人员记录bug产生的原因。只有我们自己对bug有一个较全面的认识,才会判别出开发写的是不是真正的原因,也才能有助于我们后续对bug进行分析归类,根据bug分析,有针对性地未雨绸缪,进而提升产品质量,降低缺陷。

bug定位技巧

首先,定位问题有一个总的思路,而这个思路是和数据的走向一致的。大致是这样:

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

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

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

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

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

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

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

2. 关注请求体的状态码

在发起请求后,我们可以借助浏览器的开发者工具来查看请求的状态码,如下图:

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

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

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

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

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

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

4. 查看日志

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

常用查看日志命令tail ,/error进行快速检索关键词接口名等相关内容,将找到的内容贴在bug单中。

5. 经验法则

在系统前端页面当碰见服务器配置相关报错的信息例如Nginx或者代码以及SQL相关的提示报错信息直接找后端处理,例如JAVA* 、.PHP、SQL等异常报错。

前端字符校验、格式校验、等,浏览器界面UI兼容性以及插件,或者APP、小程序类调用手机相关功能拍照、语音无法正常调用直接找前端。

总结

本文主要介绍了定位bug的三板斧,在bug定位中,我们一定要保持细心和耐心,灵活运用我们的技巧,这样才能快速精准定位到bug。希望本文能够帮到大家!

获取更多技术资料,请点击!

推荐

Python全栈开发与自动化测试开发班
由浅入深实战进阶,从小白到高手

以Python全栈开发为基础,深入教授自动化测试技能,为学员打造全面的技术能力。通过系统学习和实际项目实战,学员将具备在职场中脱颖而出的竞争力。不仅能够灵活运用Python进行开发,还能够保障项目质量通过自动化测试手段。这是一个全面提升职业竞争力的机会。

课程详情
Python开发必备基础技能与项目实战
Pvthon 编程语言/算法和数据结构/面向对象编程Web后端开发/前端开发/测试管理平台项目实战

人工智能ChatGPT实战
人工智能辅助学习各种开发和测试技能/Pytorch深度学框架/平台开发实战

数据分析与自动化办公
数据采集/Pandas与数据处理技术/ECharts与数据可视化技术/爬虫实战/自动化办公/批量文件处理

UI自动化测试与高级项目实战
Web自动化测试/App自动化测试/ PageObject设计模式

接口自动化测试
接口协议分析/Mock实战/服务端接口测试

性能测试
性能测试流程与方法/JMeter 脚本参数化/Grafana监控系统搭建

简历指导与模拟面试
1V1简历指导/模拟真实面试/测试开发岗面试全攻略名企私教服务
名企专家1v1辅导/行业专家技术指导/针对性解决工作难题/绩效提升辅导与晋升复盘

课程亮点
名企私教服务 先学习后付费 高额奖学金
专属社群+晚自习在线答疑
5V1全方位辅导作业+考试强化学习效果
简历修改 模拟面试 就业内推 面试复盘

标签:实战,一篇,开发,报错,测试,页面,bug,软件测试
From: https://www.cnblogs.com/hogwarts/p/17932923.html

相关文章

  • 软件测试的需求有哪些
    在软件开发过程中,有多种类型的需求,其中:(1)用户需求用于描述用户使用产品必须要完成的任务,是软件开发活动中最基本的需求。(2)系统需求用于描述软件设计和编程人员必须完成的任务,系统分析员通过分析用户需求,才能将用户需求转变成开发设计人员看得懂的系统需求。(3)测试需求用于描述软件测......
  • 软件测试/测试开发|你不知道的Windows神操作
    简介Windows操作系统是由微软公司开发的操作系统系列,是全球最广泛使用的操作系统之一。首次发布于1985年,经历了多个版本和更新,如Windows95、WindowsXP、Windows7、Windows10等。目前发行到了Windows11版本,本文将为大家介绍Windows11版本的操作。Windows基础命令##windows......
  • 软件测试/测试开发|如何使用场景法设计测试用例?
    简介我们之前介绍过了等价类和边界值来设计我们的测试用例,等价类和边界值是我们最常用的测试用例设计方法之一,本文我们将向大家介绍场景法。场景法定义场景法是一种通过用户使用“场景”对软件系统的功能点或业务流程进行描述,即针对需求模拟出不同的场景进行所有功能点及业务......
  • 软件测试/测试开发|如何使用因果图法设计测试用例?
    前言我们之前介绍了等价类边界值场景法来设计测试用例,本篇文章我们来介绍一下使用因果图来设计测试用例。因果图法因果图(Cuase-effectGraph)是一种描述输入条件的组合以及每种组合对应的输出的图形化工具。为什么使用因果图法?我们之前介绍的等价类和边界值都是着重考虑输入......
  • 软件测试/测试开发|web基础知识介绍
    简介web(WorldWideWeb)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信......
  • 软件测试/测试开发|关于bug,你需要了解的,全在这里了
    简介作为软件测试,bug是我们的老朋友了,我们的工作就是找到并且协助解决它,因此定义bug,发现bug,提交bug等就需要我们按照一套标准来建立一个标准化的流程,本文就给大家介绍一下对于测试,应该了解的关于bug的处理。BugBug的定义bug就是一个电脑程序里的错误,而现在更是将其诞生为漏洞,或者一......
  • 软件测试/测试开发|Linux三剑客之——awk命令详解
    简介如果你是一位新手Linux用户,可能已经听说过Awk这个神奇的命令。Awk是一种强大的文本处理工具,它可以在命令行中用于处理和分析文本数据。无论是数据提取、格式化、计算还是报告生成,Awk都是个不可多得的工具。什么是awk?Awk是一种面向文本处理的编程语言,最初由AlfredAho、......
  • 软件测试/测试开发|一篇文章带你入门HTML
    前言上一篇文章我们提到了web的三大主要资源,HTML,CSS以及JS,HTML是提供web页面内容的资源,本文我们就来介绍一下HTML。HTMLHTML(HyperTextMarkupLanguage)是web的核心组成部分之一,是构建网页的基础语言。HTML使用标记来描述文档的结构,并定义了网页上的内容,包括文本、图像、链接等。HTM......
  • React的各种bug及分析
    Parsingerror:Usingtheexportkeywordbetweenadecoratorandaclassisnotallowed.Pleaseuse`export@decclass`instead.脚手架修饰器的问题:我一般碰到这个问题,就直接把导出代码写到外面。@connect(state=>({isloading:state.error.isloading,}))classTri......
  • debug跳转至 var4.getTargetException()
    今天敲了一个插入表的业务逻辑,发现控制台没有报错,但方法却没有执行完毕,debug后发现程序跳转到了该异常。经过上网搜索后有所了解,出现该异常的根本原因是当使用反射调用方法时,如果被调用的方法抛出了异常,而调用的方法却没有捕捉处理,那么该异常会被封装在一个`InvocationTargetEx......