bug定位

作者: mysimplebook | 来源:发表于2020-03-22 09:47 被阅读0次

    摘自《python 测试之道》

        测试人员一道绕不过去的坎就是定位 bug,这其实是非常花费时间的。也许有很多人不以为然,觉得无非就是发现bug后提交bug管理系统,描述操作步骤,预期结果和实际结果哪里不一致,然后继续测试。并不是说这样做不对,只是说这样做不够好,看似节约了测试时间,实则对于项目的进度没有起到应有的推动作用。

    接着我就来具体分析一下吧。

    如果是一个多人开发的系统,不能明确定位到这个bug是谁造成的,容易提交给错误的开发人员,于是bug会像皮球一样被开发踢来踢去,耽误开发解决bug的时间。

    即便提交给对的开发,开发也未必能查到bug产生的原因和代码有问题的地方,因此不一定能修复bug,往往修改了自己认为可能有问题的地方,然后测试发现还有问题,继续发回给开发,开发继续查,来来回回耽误解决bug的时间。

    再退一步来说,如果开发水平很高,没有1和2的问题,测试也很容易提交重复的bug,因为可能很多bug都是由于一个地方引起的,只是表现出的问题不一样,但本质却是一样的,这样也是耽误了测试时间。

    当然能遇到的远远不止以上3种情况,所以测试仅仅提交bug是不够的,定位bug无论对于测试自身的提高积累,还是对于项目进度推进都是非常重要的。

    那要怎么样才能定位bug呢?提供一些个人的思路和方法。

    当bug出现时,一般分大致3种情况。

    (1)数据库层面的:可能少某个字段,或者字段值为空等,这些可能在设计数据库时就埋下了错误的种子,导致程序调用数据库错误的数据产生 bug,这一类问题不算普遍,但也是最容易忽视的一种情况,有时候从数据库入手定位bug说不定还能发现数据库的设计缺陷呢。

    (2)网络层面的:通常这种都是网络情况较差的时候产生的,比如手机的移动网络信号不好,又或是公司网络不稳定,导致js/css未加载完全或者请求超时等,这种问题其实非程序bug造成的,可以不用提交 bug,也不用让开发毫无头绪地去查代码的问题。当然如果可以的话,也可以当优化建议提给开发,让他优化代码,比如压缩js/css,增加超时时间,超时后的重试机制。

    (3)代码层面的:普遍的bug基本都是代码有问题造成的,排除掉1和2剩下的就可以确定是程序bug了。对于了解网络架构的人来说,其实程序也分前端和后端的,一般界面显示有问题直接可以判断是前端的问题,比如系统兼容性、浏览器兼容性。

    而对于数据或者逻辑上的问题,则需要通过抓包工具来进行分析。

    (1)请求未返回数据,可能是client请求数据错误,可能是server端处理错误。

    (2)请求返回错误的数据,那就是server端处理错误。

    (3)请求返回正确的数据,那就是前端处理server端返回数据有错误。

    定位bug就像这样抽丝剥茧一层层排除,从而把最后剩下的可能性给找出来,说难其实也不难,但需要有足够的逻辑思维能力来推断,也需要足够的耐心去寻找bug的根源。

    有些人觉得,定位修复bug是开发做的事情。测试去干不是浪费时间吗?不要觉得这是浪费时间,把精力花在有用的点上总比花在和开发无意义地拉扯上好。而且定位出问题所在不但可以对开发更有说服力,也方便开发解决问题,开发能解决问题对于测试来说也能减少重复的没效果的验证过程。

    从宏观的角度来看,这也是节约测试时间的一种方式。

    相关文章

      网友评论

          本文标题:bug定位

          本文链接:https://www.haomeiwen.com/subject/gedmyhtx.html