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下查看对应报错的资源文件,贴给开发
      • 与接口对接时字段取值错误,与服务端定义的需要前端自己处理逻辑的业务处理出错等
  • 相关阅读:
    python--模块与包
    内置函数 的总结
    迭代器 生成器 列表推导式 生成器表达式的一些总结
    函数的有用信息 带参数的装饰器 多个装饰器装饰一个函数
    函数名的应用(第一对象) 闭包 装饰器
    动态参数 名称空间 作用域 作用域链 加载顺序 函数的嵌套 global nonlocal 等的用法总结
    函数的初识 函数的返回值 参数
    文件操作 常用操作方法 文件的修改
    遍历字典的集中方法 集合的作用 以及增删查的方法
    计算机硬件的小知识
  • 原文地址:https://www.cnblogs.com/wangyawen/p/13048309.html
Copyright © 2011-2022 走看看