定位问题大体思路:用户层面问题-->web页面/软件界面-->中间件-->后端服务-->代码-->数据库css
1.用户层面问题:用户本身的环境问题或操做问题,好比环境不通或者操做不正确。这种问题通常不是bug,若是要考虑构建更加健壮的软件,那么能够根据实际状况来决定要不要处理。前端
2.web页面问题:这类问题通常经过观察以及利用一些常识可发现,好比样式问题通常是css问题,交互问题通常是是js的问题,文本问题通常是HTML的问题。nginx
3.web页面操做后,好比发出一个请求,可能会进入中间件这个层面。这里的中间件是广义上的,好比LVS、CDN、各类缓存服务器等等。web
4.后端服务层:服务会转发到真正的后端服务层,WEB服务器、应用服务器好比nginx、tomcat会收到请求。若是发现内存溢出,那么就可能定位到是Tomcat配置问题;若是请求返回404,也多是nginx配置不当。这个时候可能会遇到一些环境问题,好比测试环境没有问题,到线上就有了,极可能是环境缘由,好比jdk版本不一样、Tomcat版本不一样、jar包版本不一样等等。sql
5.最后一层是数据库:也可能会有代码没有问题,不表明软件没有问题。数据库层面各类问题,好比字段的约束问题等。假如一个文本框的前端校验和接口校验的文本长度是50,但数据表字段设定的是VARCHAR(30),那么在存数据的时候确定会报错。再好比测试环境没有,到线上却有了,也多是数据库版本不一样致使的。数据库
有的问题会直接暴露在用户面前,有些可能须要分析日志。后端
1.状态码查看4xx状态码通常表示客户端问题(固然也有多是服务器端配置问题),好比401要看一下是否带了正确的身份验证信息;403看下是否有访问权限;404看下对应的URL是否真实存在。缓存
2.5xx通常表示服务器端问题,500服务器内部错误,须要配合服务器log进行定位,502多是服务器挂了,503多是网络过载致使,504多是程序执行时间过长致使。tomcat
3.看服务器日志服务器
若是发生5xx问题,或者检查后端接口执行的sql是否正确,最多见的排查方法就是去看服务器日志,好比Tomcat日志,开发人员通常会打印出关键信息和报错信息,从而找到问题所在。
5.接口的请求和返回以及js执行是否报错。若是接口返回了200,就必定正常吗?
假设要测试一个翻页控件,翻到第二页的时候,发现内容和第一页彻底同样,接口请求返回的是200,该怎么排查?
这个时候就要看前端发送的参数正不正常,后端返回的内容正不正常,即接口的请求和返回。
请求URL不正确是前端bug,传参不正确是前端bug,响应内容不正确则是后端bug,若是是响应内容不正确的后端问题,那就要继续深挖,是接口吐数据时出错仍是数据库中的数据就错了,仍是缓存中的数据错了(若是用到缓存的话),常常见到后端开发人员有的负责接口,有的负责写入数据库,有的负责缓存。
6.看需求文档