zoukankan      html  css  js  c++  java
  • 如何定位问题及如何区分前后端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下查看对应报错的资源文件,贴给开发
      • 与接口对接时字段取值错误,与服务端定义的需要前端自己处理逻辑的业务处理出错等
  • 相关阅读:
    负载均衡
    重写类的Equals以及重写Linq下的Distinct方法
    关于URLEnCode,URLDeCode,Base64,公钥私钥
    JAVA 从头开始<六>
    JAVA 从头开始<五>
    JAVA 从头开始<四>
    JAVA 从头开始<三>
    JAVA 从头开始<二>
    JAVA 从头开始<一>
    ASP.Net MVC OA项目笔记<六>
  • 原文地址:https://www.cnblogs.com/wangyawen/p/13048309.html
Copyright © 2011-2022 走看看