如何定位问题及如何区分前后端BUG


测试工程师不只是负责发现问题,除了发现问题这种基本功外,定位问题,提出解决方案,提出预防方案也是要掌握的基础技能

一、定位问题的要求

(前提当然是对功能、产品或业务需要熟悉,BUG书写要尽量贴近开发易懂语言)

  1. 界面问题:如图标错误,文字错误,样式错误等,此种Bug需提供截图
  2. 功能问题:如数据库错误,服务端错误,客户端错误,此种Bug需提供报错信息,抓包信息或日志记录、预期结果,复现路径等
    • 数据库问题:需要定位到哪张表出现了问题,是服务端接口传值导致的问题、sql本身问题或建表时就存在的问题,例如少某个字段,或者字段值为空
    • 服务端问题:哪个接口出的问题,或者什么业务逻辑处理的不对,从而导致数据库哪里不对或导致返回给前端的数据不对
    • 客户端问题:什么业务逻辑处理的不对或具体哪个字段对接有问题,例如与接口对接时字段取值错误,与服务端定义的需要前端自己处理逻辑的业务处理出错等

Example:http://jira.gtja.net/browse/MATRIXJS-5758

1、选择客户时,客户数据重复,cust_info基表仅一条数据(使用了V_CUST_INFO_OTHER视图) 

2、创建客户股权关系后,未往select * from cust_equity_structure t表中记录客户挂接数据 (新增或维护均需要同步修改cust_equity_structure和MR_CUST_EQUITY_HOOK表)

3、实控关系解除时,未同步删除 cust_equity_structure表中对应客户股权挂接关系

 

二、定位问题工具

  1. 抓包工具:Flidder、F12、Charles等
    • 请求未返回数据、返回错误的数或返回不符合预期结果的数据,可能是client(客户端)入参错误,可能是server端处理错误。需结合接口文档进行分析http://10.187.144.60:8080/matrix/doc.html
    • 请求返回正确的数据,显示在页面不正确,那就是前端处理server端(服务器端)返回的数据出错

2.日志系统:xshell、Finalshell、kibana等

    • 查看具体当报错信息:字段超长too large,空字符串:Null等
    • 当自己分析不出具体错误时,遇到报错信息可复制下来贴给开发,方便定位到具体问题

三、区分前后端问题方法

  • 前台的bug通常是功能、界面和兼容性等有关;
  • 后台的bug与逻辑、性能和安全性有关;
  • 与数据相关的错误、排序问题大多是后台问题,对于APP页面toast提示可能是后台给的,可能是APP给的,属于前后端自己的定义
  1. 情况分析

a.检查请求的数据是什么,反馈的数据又是什么(可以通过抓包工具来进行抓包分析)通常情况下,我们可以通过请求接口、传参和响应三部分来判断Bug,另外,也可以在浏览器的控制台进行代码调试定位。

    • 请求接口URL是否正确(如果请求接口URL不正确,为前端Bug,前端调错接口)
    • http请求中的参数是否正确(如果http请求中的参数不正确,为前端Bug,未遵守入参规则)
    • 如果接口URL和参数都正确,查看响应内容是否正确(如果这种情况下响应内容不正确,则为后端Bug)
    • 如果JS基础比较好的话,也可以在浏览器的控制台中输入JS代码进行调试
    • 。。。。

b.根据接口的文件,检查数据是否正确

    • 如果入参是正确的,但是后台反馈的数据是不符合需求的,那就是后台的问题;
    • 如果前端没有请求接口,或者请求的时候发送数据与定义不符,那这个时候就是前端的问题了

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

    • 查看报错日志(查看报错日志,通过日志分析,有一定的经验,并且有一定的代码基础,才能更好地定位问题)
    • 查看数据库的数据(了解所测功能的数据表结构,测试过程中,查看数据库的数据,确认数据的正确性)
    • 查看缓存(如Memcache、apc、redis等缓存)是否正确(个人还不太懂)

3.前台bug定位:

    • F12在console中查看报错信息,对于出错的js可以在Sources下查看对应报错的资源文件,贴给开发
    • 与接口对接时字段取值错误,与服务端定义的需要前端自己处理逻辑的业务处理出错等

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM