高效精准分析定位系统BUG,让你无所不能

 

 

项目版本上线发版后,经常会收到领导、产品、研发、业务、用户等反馈过来各种各样BUG,令人心惊胆战,措手不及

这时领导会第一时间找你沟通,让其定位排查原因,解决处理

 

很多测试人员第一反应:

需求没说这样?

不是BUG?

怎么可能是BUG?

这个我们测过的怎么会有问题?

肯定是环境问题?

肯定是程序偷偷改了代码导致的?

昨天还是好的呢?今天怎么这样了?

 

****且记,不要再未确定原因时,随意给出猜测定论****

****首先对系统、业务逻辑非常熟悉****

 

 

当bug出现时,一般来说分大致3种情况,

  数据库层面的:可能少某个字段,或者字段值为空等等,这些可能在设计数据库时就埋下了错误的种子,导致程序调用数据库错误的数据产生bug,这一类问题不算普遍,但也是最容易忽视的一种情况,有时候从数据库入手定位bug说不定还能发现数据库的设计缺陷呢。

  网络层面的:通常这种都是网络情况较差的时候产生的,比如手机的移动网络信号不好,又或是公司网络不稳定,导致js/css未加载完全或者请求超时等等,这种问题其实非程序bug造成的,可以不用提交bug,也不用让开发毫无头绪的去查代码的问题。当然如果可以的话也可以当优化建议提给开发,让他优化代码,比如压缩js/css,增加超时时间,超时后的重试机制。

  代码层面的:普遍的bug基本都是代码有问题造成的,排除掉1和2剩下后就可以确定是程序bug了。对于了解网络架构的人来说,其实程序也分前端和后端的,一般对于界面显示有问题直接可以判断是前端的问题,比如系统兼容性,浏览器兼容性。

  而对于数据或者逻辑上的问题,则需要(检查接口)前端和后台之间是通过接口文件相互联系的,通过抓包工具来进行分析 :

  1)请求未返回数据,可能是client(客户端)请求数据错误,可能是server端处理错误。

  2)请求返回错误的数据,那就是server端(服务器端)处理错误。

  3)请求返回正确的数据,那就是前端处理server端(服务器端)返回数据有错误

  定位bug就像这样抽丝剥茧一层层排除,从而把最后剩下的可能性给找出来,说难其实也不难,但需要有足够的逻辑思维能力来推断,也需要足够的耐心去寻找bug的根源。

 

 

什么是前端和后台?

 

  常常说到的一个IT项目,包括前端开发,后台开发,软件测试,架构,项目经理,产品需求。那么对于一位优秀的软件测试工程师来说,需要区分前端和后台的工作就显得尤为重要。

  简而言之,前端一般是指界面的设计居多,他们往往需要调用后台的一个接口,进行一个HTTP请求,根据后台反馈回来的数据,渲染到页面上。从而实现按钮(如果前端只是画了页面,接口未调试,点击页面按钮是无反应的),数据显示的正常。

  测试工程师如何区分前端和后台的BUG----------- 前台的bug通常是功能、界面和兼容性等有关;后台的bug与逻辑、性能和安全性有关。与数据相关的错误、排序问题大多是后台问题,对于APP页面toast提示可能是后台给的,可能是APP给的

  1、检查接口

  前端和后台之间是通过接口文件相互联系的,同样,测试人员也是可以看到这个一接口文件,很多人以为,这一点都不重要,那你大错特错了。因为这是区分前端和后台bug的关键。

  2、情况分析

  a、检查请求的数据是什么,反馈的数据又是什么

  可以通过抓包工具来进行抓包分析。

  大多数的浏览器都有自带的抓包插件,如FireFox的FireBug插件,Chrome、360急速模式、搜狗高速模式自带的DevelopTools插件,F12开启抓包后,在NetWork中可以看到当前页面发送的每一个http请求。

  通常情况下,我们可以通过请求接口、传参和响应三部分来判断Bug,另外,也可以在浏览器的控制台进行代码调试定位。

  (1)请求接口URL是否正确

  如果请求接口URL不正确,为前端Bug;

  (2)http请求中的参数是否正确

  如果http请求中的参数不正确,为前端Bug;

  (3)如果接口URL和参数都正确,查看响应内容是否正确

  如果这种情况下响应内容不正确,则为后端Bug。

  (4)如果JS基础比较好的话,也可以在浏览器的控制台中输入JS代码进行调试

  HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体中

b、根据接口的文件,检查数据是否正确,至于如何分析,这个就看个人的基础了,如果发送的数据是正确的,但是后台反馈的数据是不符合需求的,那就是后台的问题;如果前端没有请求接口,或者请求的时候发送数据与需求不符,那这个时候就是前端的问题了。总而言之,这种情况很多,需要各位自己多多总结经验。一位优秀的测试开发工程师,当然也离不开好的编程基础。

  前台bug定位:按F12在console中查看报错信息,对于出错的js可以在Sources下查看对应报错的资源文件,写入禅道提交给开发即可。

 

2.后端的Bug,如何准确的定位问题在哪里,如何精准的描述Bug?

  (1)查看报错日志

  查看报错日志,通过日志分析,需要有一定的经验,并且有一定的代码基础,才能更好地定位问题。

  (2)查看数据库的数据

  了解所测功能的数据表结构,测试过程中,查看数据库的数据,确认数据的正确性。

  (3)查看缓存(如Memcache、apc、redis等缓存)是否正确

 

 

 

前台定位方法

 

  前台bug定位:按F12在console中查看报错信息,对于出错的js可以在Sources下查看对应报错的资源文件,写入禅道提交给开发即可

  前台bug注意以下三个方面:

  (1)网站前台的权限控制:没有权限的用户是不能直接输入url的方式来进行访问的,必须进行登录。以后涉及到权限的测试,一定不能漏掉url的方式也需要验证一下。而在单个页面进行W3C测试时则需要去掉该权限控制。

  (2)网站前台的title,对于这个也很容易忽视。进入到不同的功能页面,title显示应该是有,并且要和你进入的页面一致。title就是在浏览器最左上角看到的那些文字

  (3)http和https的注意点:https是一种安全链接,它是需要证书的,而http就是普通链接,所以在你的系统中客户会要求某些关键的地方希望加上这种安全连接,那么此时你需要注意的是,对于不需要的安全链接的地方千万也要去重点测试,有些开发会很容易忽略这一点。

  你要打开HTTPS开头的网站,前提是该网站安装了SSL证书,只有安装了SSL证书的网站,并且开启了443端口,你才可以通过HTTPS加密协议无访问。如果没有则不能访问。

  你可要测试,比如在某个网站http协议后面加个s去访问,看能否访问成功,能成功,会显示绿色安全小锁,否则就不能访问。给你举几个安装了ssl证书,可要https访问的网站,1号店,天猫,淘宝,支付宝,百度,沃通CA,工信部网站等等

  前端bug主要分为3个类别:HTML,CSS,Javascript三类问题

 

分析bug是前台还是后台

 

  case1:文本框输入不合法的内容,点击提交按钮, 如果不合法的内容提交成功, 那应该是前后台没有做校验, 前后台都有这个bug

  case2:文本框输入合法的内容,点击提交按钮, 查看数据库中的数据和输入的内容不一致, 这个时候需要看前台传的数据是否正确,使用fiddler抓包, 查看请求头里面的数据是否和输入一致,如果一致就是后台的问题, 如果不一致,就是前台的bug

  case3:界面展示不友好, 重复提交 这些都是前台的bug

 

 

一、尽可能多收集BUG信息

1、用户发生BUG步骤描述、收集拍摄的图片、收集录制的视频,根据图片和视频扩大分析原因

2、BUG发生的环境、时间、地点

3、BUG发生的机型、手机系统版本、软件系统版本

4、用户使用的网络环境

5、用户使用的第三方软件版本

6、用户当前软件内数据进度情况

7、发生此BUG的用户量

8、发生此BUG的频率

 

 

二、头脑风暴,分析思考,根据经验和直觉猜测

1、当初测试环境、正式环境是否测过这个case?

2、用户网络环境无线网、4g网、弱网、断网,可能导致这个问题?

3、用户安装的软件是低版本,可能导致这个问题?

4、用户机型兼容问题、机型系统版本,可能导致这个问题?

5、用户当前数据状态,可能导致这个问题?

6、用户用了低版本、高版本、测试版本的第三方软件,可能导致这个问题?

7、根据业务逻辑,发散思维,猜测可能的case场景导致这个问题?

8、根据丰富经验,猜测可能是某情况导致?

9、发散思维、头脑风暴、扩大范围,猜测可能

10、查看日志、用户信息、用户数据、分析SQL

 

三、重现定位,逐个排除,缩小范围,精准定位

1、网络环境尝试重现

2、软件版本低尝试重现

3、手机类型尝试重现

4、手机系统版本尝试重现

5、第三方软件版本尝试重现

6、线上数据量大尝试重现

7、前端超时、服务器超时尝试重现

8、重复提交尝试重现

9、异常场景逻辑操作尝试重现

10、根据经验判断尝试重现

 

 

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大力测试进阶之路

打赏博主喝瓶水吧!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值