项目版本上线发版后,经常会收到领导、产品、研发、业务、用户等反馈过来各种各样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、根据经验判断尝试重现

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

  1. 缺陷定位 | 如何精准效率分析推测BUG定位(二)

    点击上方"蓝字",轻松关注我们 明天就是除夕了,很多人都回到了老家,吃上了妈妈做的饭菜,这时候应该是最幸福的时刻,我也用年前上班仅剩的几小时把 缺陷定位(二)分享给大家,希望大家能 ...

  2. 哈工程计算机系保研率,武汉理工VS哈工程,20保研率哈工程高,哪所值得考?学长精准分析...

    对于国内的很多工科高校,由于主打的专业都是国民经济不可或缺的专业,但由于近几年实体经济不景气,很多考生都转而报考计算机相关专业.财经类专业,以前很吃香的航空航天类.电气类.材料类专业都不再受热捧,但这 ...

  3. 智能手表音频特性测试_Kido × 蜻蜓FM打造音频内容营销新范本,高效精准助品牌弯道超车...

    近年来,儿童穿戴市场进入快速发展时期,儿童手表也逐渐成为科技领域集安全.娱乐和教育于一体的热门品类.在竞争渐趋白热化的背景下,如何以更加高效的方式快速获客.树立品牌形象,成为获得竞争优势的重要因素. ...

  4. 软件测试无效bug分析,(一)Bug不能重现的原因分析及其对策

    摘 要:本文简要分析了无法重现的Bug的可能产生原因,包括环境不一致.缺少最准确的描述和浏览器的不当设置.针对这些原因,本文给出了相应的对策.通过这些措施,可以重现许多以前认为不可重现的Bug. 关键 ...

  5. 中控煤化工丨大型煤化工智能工厂高效精准生产,到底有多牛?

    近日由宁夏自治区人民政府.工业和信息化部.国家能源局.中国煤炭工业协会.中国石油和化学工业联合会和国家能源投资集团联合举办的<中国煤化工关键技术暨重大装备创新大会>在银川召开,浙江中控技术 ...

  6. 腾讯视频是如何给你高效精准推送的

    作者:jeromeliang,腾讯 PCG 应用研究员 为了提升用户在腾讯视频 app 的内容消费人数,消费次数,消费时长,我们需要定向精准的内容分发,让用户以较小的时间成本,较好的用户体验获取平台能 ...

  7. 测试分析--精准分析

    测试分析的概念 测试分析是建立在对「需求本身」.「用户使用场景」以及对应的「系统架构」和「实现细节」的充分了解的基础上,通过对数据流.状态变化.逻辑时序.功能/性能/兼容性等方面的分析,得出测试点的过 ...

  8. 鲸鱼优化算法与大数据:高效网站分析优化技术

    作者:禅与计算机程序设计艺术 "鲸鱼优化算法与大数据:高效网站分析优化技术" 引言 1.1. 背景介绍 随着互联网的发展,网站数量日益增长,用户访问量也不断增加.网站作为企业或个人 ...

  9. 新时代营销解决方案:敏捷BI助力银行高效精准营销

    面对互联网+的冲击浪潮,特别是微信和支付宝等金融服务商的崛起,金融市场的竞争有了愈演愈烈的趋势. 在新常态下的利率市场化也向银行人提出了严峻的考验: 负债端产品如何营销?资产端产品如何创收? 领导期待 ...

最新文章

  1. python使用statsmodels包中的tsaplots函数和lags参数可视化时间序列数据指定滞后位置个数(级别)以前的所有自相关性(plot the autocorrelation)
  2. Python使用matplotlib可视化斜率图、对比同一数据对象前后(before、after)两个状态的差异(Slope Chart)
  3. 无线信标功能初步测试
  4. 自律到极致-人生才精致「第7期」:领奖通知
  5. go语言复数包_go语言学习之包和变量详解
  6. cursor: mutex S等待事件
  7. java中两任务并行运行_Java并行编程中的“可调用”与“可运行”任务
  8. linux 事实日志_Linux是25。是的! 让我们用有关Linux的25个令人震惊的事实来庆祝。
  9. 电子邮件地址抓取工具
  10. 快视频:剽窃了B站的数据库?360的常规操作了。
  11. LindAgile~缓存拦截器支持类的虚方法了
  12. 在OS X 10.9上安装Java(Mavericks)
  13. 强化学习 —— gym
  14. 学习笔记---将Asp.Net网站发布到IIS的四种方法及注意事项
  15. 逆向链表c语言,C语言逆向打印双向链表程序
  16. Debugging a Plug-in
  17. 深入理解mybatis一级缓存
  18. 使360浏览器自动使用最高IE内核
  19. HTML中font标签用法
  20. vue生成证书模板 并支持图片和PDF格式下载的小demo

热门文章

  1. Vue 脚手架配置代理
  2. 苹果平板怎么卸载软件_怎么很好的卸载流氓软件!
  3. 异常解析————Parameter metadata not available for the given statement
  4. javaweb通过接口来实现多个文件压缩和下载(包括单文件下载,多文件批量下载)
  5. 小程序监听android返回键,如何监听小程序返回按钮事件?
  6. android root截图软件下载,截屏软件(无需ROOT)
  7. linux dev sda1 满了,/dev/sda1把磁盘几乎都满了,我该怎么办呢??
  8. Anaconda配置的环境里面增加第三方库的方法
  9. kafka 重新分配节点_Kafka扩容节点和分区迁移
  10. python中的bs4怎么导入_在Python 3.5导入BS4