如何快速定位app的bug是前端还是后端呢?对于一个优秀的测试工程师来说,区分bug属于前端还是后端是尤为重要的。
一个页面的请求过程:
弄清楚如何定位和分类bug之前,需要了解一个页面的请求过程,以http请求为例:
1、用户在前端页面操作,如点击某个提交按钮
2、页面携带数据进行请求,访问具体功能接口
3、由后端服务执行相应的业务逻辑,如涉及数据,再去请求并组装 数据返给前端
4、前端页面进行渲染和展示对应的页面和数据
前后端bug各有什么特点?
前端bug特点
界面相关
布局相关
兼容性相关
后端bug特点
业务逻辑相关
性能相关
数据相关
安全性相关
定位前后端bug,有什么方法?
1、经验法
软件测试人员应不断精进自己的技能,负责的项目多了,自然对功能的实现过程有了解,也就明白如何分类bug了。
例如:
网页上的某个图片的分辨率不对,如果我们了解实现过程,可以想到一般情况下,是根据某个地址去服务器取图片的,数据库一般只保存地址,那么图片能正确显示,就说明后端的基本功能是满足需求的。如果具体图片分辨率有误,最可能的原因是前端显示过程出了差错。
2、查日志
当我们发现一个bug,并不确定这个bug属于前端还是后端,可以查看后端服务的日志,复现bug时,查看日志中有没有相关信息。基本可以认为,如果日志没有输出,很可能这个功能并没有与后端交互,也就不存在后端的问题。反之,如果日志有输出,可以进一步查看有无错误日志信息,进一步分析。
3、查接口
这种方法常用于查看是后端返回给前端的数据有误,还是前端显示有误。
大多数浏览器都有自带的接口查看工具,如Chrome,FireFox等都可以通过F12开启抓包,在NetWork中可以看到当前页面发送的每个http请求。
我们需要对比通过后端接口拿到的数据和前端显示的数据,来确认问题出在哪里。如果数据错了,页面显示是错的,也是正常的,先从后端入手去解决。如果数据对了,但是显示错了,就需要问问前端的开发人员了。
4、iOS和安卓双端对比(APP)
双端均呈现一样的问题,一般是后端问题,若是其中一端正常,另一端不正常,十有八九是前端问题
5、线上包和测试包对比,可以判断是历史遗留问题,还是当前测试版本新出现的问题(回归十分常用)
6、同一测试设备,对比不同账号,可以判断是否是针对账号出现的问题(常用)
沟通很重要
我们在定位BUG的过程中,最不能忽略的一个问题是和开发人员的沟通,有时候忙活半天,不如一问一答。经验和技术的成长也都离不开合理高效的沟通。
经验和小结
出现样式的问题基本都是CSS的BUG
出现文本的问题基本上都是html的BUG
出现交互类的问题基本上都是Javascript的BUG
其他问题先沟通,再定位