快捷搜索: 王者荣耀 脱发

day06:如何定位分析前后端bug(详细版)

一、 为什么要区分?

第一,前端bug提交给后端,后端bug提交给前端,不仅给开发双方带来了时间浪费,在一定程度上也缩短了测试时间; 第二,为了避免出现一个bug双方踢皮球,影响项目测试进度,明确哪方的问题对症下药也减少了沟通成本、提高了测试效率; 第三,精准定位分析bug,一方面是测试工程师能力的体现,另一方面也利于测试工作经验的累积。

二、如何定位分析?

1)看页面:页面上的文字、样式、交互、兼容,这些都属于前端bug;1)没问题看2) 2)看接口:没有请求接口、请求接口的url错误,属于前端bug;2)没问题看3) 3)看传参:接口的传参不对属于前端bug;3)没问题看4) 4)看响应:接口返回的数据不对或者没有返回数据,属于后端的bug;

温馨提示 判断规则并不是全部,很多场景下需要理解前后端开发设计逻辑,可以协助理解项目、更快耿精准的定位分析bug。

1、页面上的文字错误不一定完全是前端错误,比如列表页的列表名称错误属于前端bug,但列表下的数据内容字段错误,要查看接口返回数据是否正确,大多为后端bug;

例1:接口入参processStatus字段未传值,导致查不到相关数据,属于前端bug

例2:列表页偶尔会出现查不到数据的场景,偶现bug测试多次后,对比前后传参响应,发现查不到的场景接口入参多传了detail[0],前端为空处理多传了参数,属于前端bug

2、接口报错不一定完全是后端的错误,比如前端接口某个传参字符串类型,而后端接口要求数组类型,属于前端bug; 而前端传参无问题情况下,查看后端返回数据,返回数据数量或者内容字段错误,属于后端bug; 再与数据库数据对比,如果数据库无数据或者数据库存储的数据不对,进一步分析是否是前后端某个业务逻辑出现错误;

例1:下载的文件中缺少数据,后端数据库也没有相关数据,具体分析后,发现产生数据时后端并未存储当天的数据,属于后端bug

例2:下载五万条数据,接口报超时,属于后端bug

三、借助什么工具?

1、大部分情况下,借助抓包工具就可以了,web端常用的是浏览器自带的F12-NetWork,app端常用的是Charles(既可以web端,也可以app端,app端需要在手机或其他设备上设置代理),另外app端也可以使用android studio(仅限android开发环境);

PS:浏览器-F12-NetWork PS:Charles-手机设置代理-H5页抓取数据

2、如果是比较复杂的系统,比如两个及以上的系统对接,这种情况下单纯使用抓包工具不太容易判断,那么通常使用终端连接测试服务器,使用Linux命令查看日志,进一步判断是哪一个系统出的问题。

四、如何复现bug?

大多数bug比较容易复现,一般在提交bug时,把错误的传参、返回数据或订单信息一并提交,减少重复沟通、重复复现所浪费的时间;

而有一小部分bug比较难出现,基本都是偶然出现,可能刷新再次进入页面就没有了,可以多次测试模块所涉及到的场景(场景覆盖越多越容易复现),查看复现频率,如果bug出现频率比较高,仔细对比bug出现时页面数据、接口传参和响应与正常不复现时的数据、传参和响应做对比,进一步定位分析bug;

五、案例分析

经验分享 程序员 微信小程序 职场和发展