特定场景下才能复现的bug案例分享之--前端排序字段的锅

bug现象描述



    相信大家在做功能测试的过程中,经常会遇到一些难以重现的bug,或者明明在自己电脑上是好的,但是在别人电脑上操作的时候就是会报错,就是这么的让你难以琢磨。正好小编最近在做测试的时候,也遇到过这么一个问题 ,有用户反馈查看XXX页面的数据,一进去就报错,我这边访问是正常的。经过一系列的操作 ,最终还是让我给找到了重现的步骤 ,下面我分享一下定位这个问题的思路和步骤,希望能对大家有所帮助吧。



bug复现步骤



1、因为是web端的网站,某个模块查看明细数据报错,第一步肯定先是自己访问对应的模块,按照相同的条件访问查询,看下是否也报错--本地电脑暂时无法复现

2、因为是报错,那就登录后台服务器,检查是否有报错日志。果不其然,在服务器上找到了报错的日志,日志的大概内容是打印出了一大段查询sql,其中可以看到有个很明显的sql报错是找不到某个排序字段xxx

3、通过日志查看,基本已确认,报错跟排序字段有关 ,我本地又没有复现 ,那就应该是前端传参的问题了,通过报错日志,对比报错页面,发现页面本来就没有字段xxx,这个时候,我猜测应该是前端页面交互太复杂,然后把上一个访问页面的排序字段给带到当前访问的这个页面来了

4、找一下该模块下哪个明细页面有显示字段xxx,并且可以排序的 ,然后依次进入某个明细页面按照字段xxx排序后,再返回访问报错的页面,查看是否可以复现问题。

最终,经过以上步骤的尝试,发现确实是前端的bug,前端在访问同一模块的不同指标的明细页面,点击过页面的排序字段后,有的页面一进去的时候没有清空之前上一页页面的排序字段 ,导致后端查询sql报错。



下次遇到类似的问题,该如何复现?



1、先考虑是否是不同用户的权限不同,导致的bug

2、考虑是否跟浏览器的版本之类的兼容性有关

3、查看后端日志记录,没报错的话,就查看接口调用的记录,查看是否可以捕捉到接口调用的入参,如果捕捉不到相关信息的话,可以考虑在日志中增加相关信息的打印,发个补丁版本到线上。

4、询问用户在bug出现前的一些大概操作 ,访问过的模块等。






上一篇:《Web前端开发精品课 HTML与CSS进阶教程》——2.4 表格语义化


下一篇:linux之日志篇