测试过程中有没有遇到过什么问题是你解决的?
遇到bug怎么分析是前端bug还是后端bug?
测试的时候怎么确认你的测试结果是正确的?
定位分析问题的能力是测试不可或缺的,而且这个能力需要项目经验积累以及需要丰富的知识面才能达到的。企业需要这样的人才,因为他们需要会解决问题的人,而不仅仅是发现问题的人!
所以,想要提升自己的职场价值,以及定位问题、分析问题的能力是必须具备的!
问题的确是好问题,那么…
1 如何进行问题的定位和分析呢?
正常工作的数据交互情况:
要能分析项目出了问题的场景,我们需要先清楚的知道正常场景下前端和后端分别是怎么工作和进行数据交互的:
我们现在看一个项目注册页面功能,通过Fiddler抓包来进行分析,如图:
一个注册的过程,包括了一下三个步骤:
1) 校验验证码的正确性;
2)检查用户名是否重复;
3)注册用户名和密码,添加用户信息到数据库;
并且每个步骤前端请求和后端响应消息,也是要清楚知道怎么交互的。
当注册失败了,到底是前端问题还是后端问题呢?
比如开发升级了版本,当我们做回归测试的时候,发现了如下bug:
发现这个bug后,很多测试会截图+记录bug,然后指派给开发,因为页面无响应,会认为是页面的问题,就会指派给前端开发。
如此操作,会引起以下现象:
1、前端开发和后端开发相互踢皮球,前端开发说不是自己的bug,后端开发也说不是自己的问题,测试很被动,因为自己也无法判断;
2、开发频繁来找你收集日志 ,看数据库,增加了开发和测试的沟通成本,这也是导致了工作效率低下的原因!
其实再很多公司的测试都说开发人不好,说公司测试跟开发相处不好,测试没有地位,但是其实要在自己身上找原因:
如果你是这样的一个甩手测试,怎么可能会赢得开发的尊重呢?!
所以,发现这个bug怎么去定位和分析以及尽可能多的提供有效的信息给开发修复bug呢?
第一步:通过抓包分析,这个错误信息是前端还是后端提示的?
以下是Fiddler抓包的结果:
从抓包结果可以看到,前端正确的发送了用户名密码和验证等数据,但是后端服务器的响应结果为空。所以,这个bug肯定是后端的开发的问题。
但是,确定了是后端的问题,那么注册的用户信息有存到数据库里么?是数据库的问题么?所以要确认这个问题,需要继续进行定位。
第二步:使用数据库进行测试结果确认和排查
连上这个项目的数据库找到对应的表,进行数据库的结果确认,这里就需要使用SQL 语法进行数据的查询操作了。
看结果是空的,说明还没有入!那么问题就应该在前端发送之后,存入数据库之前,具体是什么原因呢?需要看服务器日志定位!
第三步:Linux日志分析bug的根本原因。
使用远程链接工具连上后端服务器,找到项目的日志对应目录,然后查看日志分析错误的根源原因:
使用tail -f 命令查看实时刷新的日志:
找到ERROR级别的日志,以及下面的具体java代码报错信息:
就可以看到根本原因啦!通过日志分析,发现这个注册失败的根本原因是因为数据的username字段长度被截断了,所以数据存储失败了,导致注册失败了!这个错误日志贴到bug里,开发修复bug就轻轻松松了。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!