• 10
  • 11
分享
  • 以Web测试为例,掌握Bug排查小技巧——软件测试圈
  • 曼倩诙谐 2022-02-09 09:39:21 字数 1682 阅读 2232 收藏 11

  以下总结以web测试为例,其他类型测试可参考。

  步入正题之前,我提两个问题:

  ·在工作中,你们发现“bug”是立马给开发提bug单还是先自己尝试排查一下bug产生的原因呢?

  ·提bug单的时候,是怎么描述bug呢?

  相信有不少人测试在发现bug之后,立马给开发提了bug,很少去排查bug产生的原因。

  在开发准备修复bug的时候,发现测试提的“bug”描述不清,不知道如何复现,只能自己琢磨或者叫QA来演示一遍,最尴尬的是,可能在测试演示完之后,才发现这个并非bug,而是由于QA的不规范导致的。这样就会引起开发的不满,觉得测试在浪费他们的时间。

  所以在我们发现问题的时候,首先要做的第一件事就是需要确认一下是否是我们本身测试的不规范导致的。若不确定,可再尝试进行复现。bug描述一定要写具体,否则不仅浪费开发的时间,也会浪费自己的时间。

  开发为测试列出的几大症状:

  问题描述不清

  说明bug要么开局一张图,要么一句话,开发复现bug全靠蒙。

  正确姿势: 问题应该有详情的描述,图文并茂,场景说明,以及bug出现的流程,对应账号密码等。

  对bug定位不准

  bug瞎指派。前端的bug指给后端,后端的bug指给前端。

  正确姿势: 分析错误产生的原因,分析是前端还是后端产生的bug,123砸过去。

  不理解需求

  总是测一些生产环境中根本不可能存在的情况。甚至有些需求就是如此设计,不管三七二十一直接提bug。

  正确姿势: 先把需求理清楚,设计用例的时候,把一些实际不可能发生的事情剔除掉。

  如何高效地排查问题呢?

  步入今天的正题,来,跟着我,从我的世界走一走。

  产生问题的原因

  ·不理解需求

  ·配置不对

  ·造数不对:包含不可能存在的逻辑

  ·服务有bug

  排查问题

  新上一个功能时,发现前端页面展示还是旧的,发起请求还报错?

  如果部署没问题的话,那么大概率是前端存在缓存,可清除缓存试试。这里就有个问题:如果功能发到live,但是由于前端存在缓存,用户没没有清除缓存,那们从前端向后端服务器请求时,一直报错,一旦被投诉,那这个锅就是你来背了。

  分辨是前端的锅还是后端的锅。

  前端的锅不仅仅只有UI的问题,需要发起请求,处理请求,并渲染到前端。

  出现问题时,可先判断接口是否有错误,返回的结果是否符合预期。若接口无错误且接口返回符合预期,但前端展示不符合预期,应该由前端负责修复。

  若接口有报错,可优先确认,前端有没有按照约定的格式向后端发起请求,如果没有,那么前端需要负责修复。

  若接口报错,前端也按照约定的格式发起请求,那么锅就在后端了,接着可继续往下走,继续排查问题出现的原因。

  可通过接口返回的错误信息去猜测错误的来源

  响应码。可根据返回的响应码去定位问题。需要大家熟悉这些响应码。

1-1.png

  响应头。一般后端返回的错误信息会放在响应头中,如果你们不会将错误信息放在响应头的话,可忽略这个。

  响应体。如果请求报错的话,接口一般会返回错误信息以及错误码,可通过这些去定位问题。在源代码中输入错误信息定位报错的具体位置(全局搜索),再根据前后调用去分析具体原因。

  从日志入手,查看具体的日志信息

  从日志入手的话,那么就需要学会在哗啦哗啦的日志中寻找具体且有用的关键信息,相信大部分同学都用过grep这个命令,相比awk,sed而言,这个命令使用起来更简单,足够满足我们的需求了。推荐grep的几个常用参数:

1-2.png

  找到报错信息之后,在源代码中使用全局搜索,找到报错的具体位置,分析报错的具体原因。

  再不济,可自己本地调试(当然,这个是在时间相对充分的情况下,如果前面两步还无法找到具体原因的话,可直接交由开发处理)

  可以先把bug提给开发,然后自己在本地调试查找具体的问题。如果你仅仅是功能测试,想转测开,这个步骤对自己能力提升也很有帮助。但是如果你只想点点点的话,那这步骤就免了。



作者:波小艺   

来源:http://www.51testing.com/html/74/n-4478174.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   只要访问过网页的地球人都知道,很多时候页面内容的加载并非与你的访问操作实时同步显现。是什么原因导致的呢?这是由于大多数Web应用程序都结合Ajax/Javascript技术开发,当浏览器进行页面信息加载时,页面中的元素会在不同的时间间隙内陆续完成加载,比较常见的场景诸如:跟随你的滚动条下滑,逐步呈现当前图文信息;鼠标悬停某文本框,自动出现提示文本等。  对于Web自动化测试而言,页面元素呈现的时间差异会让元素识别变得相对困难,在未能找到指定元素的情况下,还会引发各种异常报错,如“Element not found”等。所幸的是Selenium WebDriver提供了不同的等待类...
            2 2 1072
            分享
          • 当软件业务日志打印不全,无法实际确认软件最终执行SQL语句时,可以通过临时打开Mysql的全局日志开关,辅助定位。1、查看当前服务器数据库日志相关配置 show variables like 'general_log%'; +------------------+------------------------------+ | Variable_name    | Value                        | +-----...
            1 1 19804
            分享
          • 1、安全测试,什么是安全测试?安全性测试(Securitytest)它是指:在测试软件系统中对程序的危险防止和危险处理进行的测试,以验证其是否有效。2、安全性测试我们要做哪些工作呢?全面检验软件在软件需求规格说明中规定的防止危险状态措施的有效性和在每一个危险状态下的处理反应情况;对软件设计中用于提高安全性的逻辑结构、处理方案,进行针对性测试;在异常条件下测试软件,以表明不会因可能的单个或多个输入错误而导致不安全状态用错误的安全性关键操作进行测试,以验证系统对这些操作错误的反应;对安全性关键的软件单元功能模块要单独进行加强的测试以确认其满足安全性需求。3.安全性测试方法功能验证功能验证是采用软件...
            0 0 2016
            分享
          •   在奇瑞昨日晚间举行的“讯飞星火认知大模型首搭星纪元 ES”发布会上,奇瑞汽车执行副总经理、汽车工程技术研发总院院长高新华接受 21 世纪经济报道采访,对奇瑞与华为的合作进行正面回应。  高新华表示,当日首发亮相的星途星纪元品牌车型主打舒适,相当于电动化的“奔驰”,而奇瑞与华为合作打造的新品牌 LUXEED 智界,则相当于电动化的“宝马”,两个品牌将针对不同人群。  奇瑞汽车今年 4 月重新梳理旗下品牌,形成奇瑞、捷途、星途和 iCAR 四大品牌布局。IT之家此前报道,奇瑞与华为的“baby”已经在工信部完成申报,悬挂 LUXEED 车标,车型名称为智界 S7。  工信部数据显示,这款新车拥...
            0 0 685
            分享
          •   一.接口测试分析  外部接口:  测试被测系统和外部系统之间的接口。  内部接口:  · 内部接口只提供给内部系统使用  · 内部接口提供给外部系统使用  二.接口测试的流程及用例的设计  1、根据接口api文档(或可通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,接口入参出参及错误码。  2、编写接口用例。  思路  正常情况:输入正常入参,接口能够成功返回数据。  异常情况:  · 异常鉴定:鉴权码为空,鉴权码错误,鉴权码过期,鉴权码失效...  · 输入异常:输入为空,输入类型异常,输入长度异常  · 错误码覆盖:根据业务而定  · 其他...
            0 0 444
            分享
      • 51testing软件测试圈微信