定位手机软件测试工程师,测试工程师面试题之你是怎么定位一个BUG的?

下午好,今天第二次和大家见面了!阅读本文前,默认你了解了什么是adb命令,若不了解可以先请教一下度娘。

对于测试工程师来说,提升发现bug然后对bug的定位精确性的能力,有助于帮助开发快速解决问题,从而推进问题的解决速度。那么,当发现一个bug时,你该如何定位呢。这里其实可以先引申一个问题,就是你为何会认为这是一个bug呢,那么其实可能会有几种原因:

功能影响正常使用不符合需求定义

17253ea93f3f9b2896d77f7b258db381.png

那么,当你发现一个bug时,首先要记录一系列的信息:

记录问题的现象,是Crash还是ANR还是显示不去还是其他问题,一定不能笼统地概括成不能使用。记录log、截图,或者保留现场直接拿给开发看出现问题的大致时间,附上时间戳尽可能详细的记录出现问题的具体场景,包括出现问题的机器型号、系统版本、app版本、出现问题前的具体操作。举个例子:比如拨打电话拨打不通,那么,我们应该记录的信息有:使用Android8.0系统的小米8,信号格3格,联通卡13011111111拨打给IOS12.0 iphoneX,移动卡13900000000 ,小米8点击拨打按钮,呼出后20秒没有呼叫等待的声音把前面的记录下来以后,我们可以尝试去复现问题,然后记录出现问题的概率,是只出现1次,还是偶现的,还是必现的,一般以 出现问题次数/总操作次数 来呈现。出现问题的严重程度,是严重影响用户正常使用的,还是视觉修改的问题。上一版本是否有该问题出现。方便开发定位是遗留下来的问题还是更新代码合入引进来的新问题。需求不符的话,可以把需求图和实际情况做个对比,拉上需求和开发一起确认这个bug是归属到哪个具体模块的,不同模块可能对应不同开发,知道具体哪个开发写的模块,更好找人修bug是否觉得以上信息比较熟悉呢,没错,就是我们发现问题需要往Bug系统上提的Bug单所需要填写的基本信息。

好了,那么知道了需要记录的信息,我们就开始愉快的操作吧!

那么首先,我们需要的就是抓log,因为抓log是定位问题的关键。那么我们应该抓的是什么log,要怎么抓呢?以android端设备为例,一般,我们使用adb命令,输入adb logcat>log.txt会抓到系统的log。

那么一份log扔给就完了吗,肯定不是的,我们作为一位专业的测试工程师,把工作做得越细致,开发定位问题修改就越快。针对不同的问题,可能还需要不同的log。

6a26fe29df1a53c8df72201c6eae6622.png

CRASH

Crash的话,一般在logcat中会有相关的日志打印,但是一份log实在庞大,我们可以搜索Fatal,Exception等关键字,找到报错的log的堆栈,给到开发。开发根据堆栈可以看到是具体的哪行代码报出来的错误。

ANR

ANR的话,我们还需要取anr日志。当出现ANR时,系统会生成一份ANR的日志文件,在/data/anr目录下,找到对应时间戳的日志,我们需要把他pull出来,执行adb pull /data/anr/anr_2019-08-30-14-24-52-903 ,需要注意的是,取/data/anr/目录下的文件,是需要root权限的,但目前的手机一般都没有root权限,那怎么办呢。

那么实际操作中,出现ANR时,我们也可以使用adb的bugreport命令抓取相关信息。6.0及以下设备 adb bugreport > bugreport.txt //7.0及以上设备 adb bugreport bugreport.zip 从生产的bugreport中,搜索ANR关键字,能力稍强的,还能根据日志分析一下是什么原因导致ANR的。

以上,是笔者认为定位一个BUG所需要的信息,那么,凭你的工作经验看,是否有新的看法或者更多的思路呢?参考一下各位大牛的看法!

举报/反馈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值