• 测试人员如何定位bug


    定位问题大致思路:用户层面问题-->web页面/软件界面-->中间件-->后端服务-->代码-->数据库

    1.用户层面问题:用户自己的环境问题或操作问题,比如环境不通或者操作不正确。这种问题一般不是bug,如果要考虑构建更加健壮的软件,那么可以根据实际情况来决定要不要处理。

    2.web页面问题:这类问题一般通过观察以及利用一些常识可发现,比如样式问题一般是css问题,交互问题一般是是js的问题,文本问题一般是HTML的问题。

    3.web页面操作后,比如发出一个请求,可能会进入中间件这个层面。这里的中间件是广义上的,比如LVS、CDN、各种缓存服务器等等。

    4.后端服务层:服务会转发到真正的后端服务层,WEB服务器、应用服务器比如nginx、tomcat会收到请求。如果发现内存溢出,那么就可能定位到是Tomcat配置问题;如果请求返回404,也可能是nginx配置不当。这个时候可能会遇到一些环境问题,比如测试环境没有问题,到线上就有了,很可能是环境原因,比如jdk版本不同、Tomcat版本不同、jar包版本不同等等。

    5.最后一层是数据库:也可能会有代码没有问题,不代表软件没有问题。数据库层面各种问题,比如字段的约束问题等。假如一个文本框的前端校验和接口校验的文本长度是50,但数据表字段设定的是VARCHAR(30),那么在存数据的时候肯定会报错。再比如测试环境没有,到线上却有了,也可能是数据库版本不同导致的。

    有的问题会直接暴露在用户面前,有些可能需要分析日志。

    1.状态码查看4xx状态码一般表示客户端问题(当然也有可能是服务器端配置问题),比如401要看一下是否带了正确的身份验证信息;403看下是否有访问权限;404看下对应的URL是否真实存在。

    2.5xx一般表示服务器端问题,500服务器内部错误,需要配合服务器log进行定位,502可能是服务器挂了,503可能是网络过载导致,504可能是程序执行时间过长导致。

    3.看服务器日志

    如果发生5xx问题,或者检查后端接口执行的sql是否正确,最常见的排查方法就是去看服务器日志,比如Tomcat日志,开发人员一般会打印出关键信息和报错信息,从而找到问题所在。

    5.接口的请求和返回以及js执行是否报错。如果接口返回了200,就一定正常吗?

    假设要测试一个翻页控件,翻到第二页的时候,发现内容和第一页完全一样,接口请求返回的是200,该怎么排查?

    这个时候就要看前端发送的参数正不正常,后端返回的内容正不正常,即接口的请求和返回。

    请求URL不正确是前端bug,传参不正确是前端bug,响应内容不正确则是后端bug,如果是响应内容不正确的后端问题,那就要继续深挖,是接口吐数据时出错还是数据库中的数据就错了,还是缓存中的数据错了(如果用到缓存的话),经常见到后端开发人员有的负责接口,有的负责写入数据库,有的负责缓存。

    6.看需求文档

  • 相关阅读:
    zabbix监控部署(三)
    zabbix监控部署(二)
    zabbix监控部署(一)
    Docker安装mysql5.7
    Docker修改容器默认存储路径
    MySQL全量+增量备份脚本
    企业级Dokcer镜像仓库Harbor部署
    Linux环境pyhon3安装pyinstaller
    配置Hive元数据数据库为PostgreSQL
    Oracle 11gR2 RAC 添加节点
  • 原文地址:https://www.cnblogs.com/zhanghr0728/p/9620939.html
Copyright © 2020-2023  润新知