软件测试如何定位分析bug? 您所在的位置:网站首页 抓包f12怎么看前端还是后端bug 软件测试如何定位分析bug?

软件测试如何定位分析bug?

2023-09-04 10:58| 来源: 网络整理| 查看: 265

你好,我是小牛。

软件测试日常工作中,每天可能都会遇到不同的问题和bug,有些刚入行的测试喜欢不加分析就直接甩给开发去解决。开发比较闲还好,如果手头工作比较多,就容易烦。甚至有可能是后端的问题,但是你却把问题丢给了前端……

这种事情发生的次数多了,就比较容易暴露水平,那么正确的操作姿势是什么呢?首先遇到一个问题应该尝试自己独立去定位分析,自己去查找问题出现的原因,去定位是前端导致的bug还是后端原因导致的。分析好原因之后,带上问题和截图找到指定开发去解决问题。

不同技术水平的测试人员,bug分析定位能力也有高低。这个除了需要不断总结之外,能决定你水平高低的原因其实就是工作经验。测试的项目多了,遇到的bug,踩的坑多了,自然水平就上去了。

关于如何定位分析bug,大的方面就两种方式:一是抓包接口定位分析,二是看系统日志。首先说抓包接口,如果你是web项目的话,一般工作中使用方式比较多的是使用浏览器自带的F12抓包看接口请求。如果是app客户端之类的,一般采用fiddler等工具进行抓包接口。不管哪种方式,目的都是一样的,就是通过查看接口,从而去定位分析属于前端问题还是后端问题。

下面以一道经典的面试题来讲解分析下:比如你在淘宝上边购买了一件商品,并且成功支付,但是在我的订单里面却没有记录,你应该如何去分析定位这个问题?

首先需要搞明白的是这个场景的数据流调用的逻辑关系,不过这个问题比较简单。整体来说就是前端购买商品,支付成功,会把这条数据的商品信息加支付信息都落入数据库中。然后点击我的订单,会调后端接口,后端从数据库取相关信息,然后前端渲染展示商品和支付信息。搞明白这个场景的数据流转就很容易定位分析这个bug了,可以使用抓包工具抓包这个我的订单调后端的接口。

如果抓不到这个接口,就是前端没有发出请求,显然是前端问题。如果有请求并且响应了,就查看这个接口响应信息,如果返回报错了,则需要具体分析报错内容。这个时候既有可能是前端入参传的不对,导致后端报错。也有可能是前端传对了,后端处理错误,需要具体分析是前端问题还是后端问题。如果后端成功响应了且返回信息跟接口文档定义的一致,那么大概率是前端展示的问题,这个时候需要找前端同事。

以上,就是定位一个bug是属于前端还是后端的分析思路,这个基本也是面试必问问题。说完了如何通过抓包接口定位分析bug,再来聊聊如何通过查看日志来分析bug。基本上除了那些创业小公司,但凡稍微有点规模的公司基本上每天日常工作就是跟数据库,日志打交道。有的同学可能会问,既然可以抓包定位看接口返回了,为什么还需要查日志系统呢?

这是因为对于一家公司来说,一般不止一个系统。很多公司都是根据业务不同划分出不同的组,不同系统共同完成公司一个项目。

举个例子,比如一家保险公司,可能有系统是负责用户下单的就是交易系统,管理保单变更比如退保之类的就是保单系统,负责收钱的就是财务系统,负责赔钱的就是理赔系统……每个系统就是一个组,一般二三十人不等。每个组有开发,测试,产品,具体看公司了。那么这些系统是怎么交互合作的呢?就是通过接口来交互,这也是接口测试比较复杂的地方,涉及到多个系统多个接口的逻辑调用。

理解完这个,再说到为什么要查看日志的问题?比如页面调后端系统接口报错了,但是你知道整个流程能有多长吗?页面可能直接调用的是系统A接口,但是这时候系统A又调用了系统B,系统B又调用了系统C。页面上看到的接口返回报错结果,本质上可能是系统C接口报错返回的。

这个时候仅仅通过抓包就无能为力了,你需要去查看系统日志,去一层层去分析,究竟是哪个系统报错了,然后定位到问题。把报错信息和日志截图丢给那个系统同事。一般我发送错误,协调处理时都会发下面几样东西,调对方接口的url,入参信息,返回报错信息。再简单描述下调用接口业务场景,如果对方很熟悉的话一看url就知道了,这时候就不用描述了。

再来说下系统日志是怎么一回事?

日志本质上就是开发写在项目中的代码,报错会抛出异常信息,以及打印一些接口返回信息等等。有的公司会有专门的日志查询系统,有的公司是通过xshell工具连接上linux系统再查找日志,这就看公司了。因为现在公司系统一般是linux系统,所以查询日志的命令自然就是linux命令了。

我一般用的比较多的是grep,tail这两个命令,前者是精确查找,后者是动态查找,大家可以百度学习下这两个命令。说一下精确查找,就是根据开发代码中打印的关键字信息去精确查找日志,一般是requestid,证件号或者订单号之类的。这个可以提测后问下开发,查找日志的关键字是什么,日志文件名是什么,以及去哪个服务里面去查找。

因为现在一般是微服务架构,不同的服务处理不同的业务,存储不同的日志。不同公司可能不太一样,但是方式大同小异。不知不觉,写了这么多了。主要讲解了如何通过抓包去定位分析前端后端问题,以及如何查看日志去定位分析问题。

总之,bug定位分析能力是一枚测试的核心能力,你可以不会自动化,可以不会性能。因为这些都会有专门的测试工程师去负责。但是如何定位分析bug,如何编写测试用例,这些都是每一个测试安身立命的家伙,所以一定要掌握好。

最后,关于软件测试转行,offer选择等等,都可以通过公众号菜单栏添加我微信私信交流。需要学习资料或者帮忙修改简历也可以私信!!

以上,完。

本人现在某世界500强某厂做测试开发,空闲时间做了个测试学习公众号叫测试小牛进阶,免费分享了简历模版,笔试题,java/python全栈自动化,性能,测开等等测试资源,扫描下方二维码或者搜索公众号测试小牛进阶关注公众号回复关键词即可领取

扫描二维码关注测试小牛进阶微信公众号

小牛在B站录了视频,更为详细的讲解了,如何学习编程语言?一套完整的接口自动化测试框架包含哪些部分?分别具体使用了哪些框架,以及它们的作用是什么?欢迎前来围观

功能测试如何转自动化上集:

https://www.bilibili.com/video/BV1fi4y1s7ct

功能测试如何转自动化下集:

https://www.bilibili.com/video/BV1hz411e7yG

自学软件测试途径有哪些?

https://www.bilibili.com/video/BV1gz4y127fV

软件测试月薪有多少?

https://www.bilibili.com/video/BV1wK41137q4

大厂软件测试流程是怎么样的?

https://www.bilibili.com/video/BV1at4y1D72Z

如何靠自学转行软件测试?

https://www.bilibili.com/video/BV1re411W7q3

软件测试如何筛选目标公司?

https://www.bilibili.com/video/BV1na4y1J7eJ

软件测试如何由初级工程师进阶为中高级测试工程师?

https://www.bilibili.com/video/BV1Lt4y1X7yb

最后,欢迎大家来B站围观,正在推出系列视频,主要讲解自学方法以及学习方向与知识框架,欢迎前来关注+点赞+投币!!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有