作为一个聪明的程序员,应该如何提bug,提问呢?
测试人员肯定最基本的就是要会得bug。如果一个程序员跟一个不专业的测试人员沟通,会非常痛苦。
而程序员在学习过程中,遇到问题,不会如何去表达,如何去沟通,别人也很难帮助你。所以此篇文章,提一些点,希望可以让大家更清楚地描述问题。
从测试人员的角度入手
测试人员是如何描述问题的呢?
最基本的是现象描述,出了什么样的错误,UI不对,内容获取不到,闪退,卡顿....文字描述,如果可以的话加上图片或者视频。
接着,需要描述步骤,bug复现的步骤,这个很关键。作为程序员更要敏感一些步骤,特别是概率问题,牵涉到多线程之类的。
有了现象和步骤,那么就要提供log了。
这样子,别人看你问题时,可以结合现象,步骤,log来分析了。
安卓如何抓取log
一般来说,我们使用as自带的logcat,就可以看到Log了。这里有一个大忌,Log最好不要截图,你截图能截取多少呢?显得特别没智商。
但是要注意:不要选错设备,选错程序,过滤的级别。
要点就是:++复现之前,先清空log,然后再去复现,得到Log内容++。
不一般来说,特殊情况嘛,有些组件挂了可以自动重启。这个时候log可能一闪而过,logcat就没法获取到了。怎么办呢?
使用以下命令:
PS:如果有多个设备,请关掉,加参数不方便,保留一个设备即可。
adb logcat > log名称.log
比如说我抓取一个崩溃的log
adb logcat > crash.log
回车以后开始抓取log,然后去复现问题
ctrl+c停止抓取
得到一份文件rash.log,在哪个目录个呢,就看你的命令行路径了。
如果不会adb命令的同学,可以去看一下adb的课程
adb课程
提问的反思
当你向别人提问的时候,自己是有上下文的,别人没有,如果可以,请多思考一步。就是换位思考,你通过这些资料可以知道什么东西呢?那你怎么知道什么是关键点呢?那就是先自己思考,自己尝试去解决问题。
这样子,你缺少什么信息,你自己不就知道了吗?如果还解决不了,再去找人帮忙。
跟别人沟通的时候,可以把你的思考过程,尝试去解决的过程描述出来,或许你只是差一点,别人一点你就懂了。那样子你进步得更快。
附录
推荐使用的截图工具
截图工具
可以截图,可以取色,可以截滚动的窗口。
录制gif的工具
okay,同学们遇到问题的话,请到问答模块去发帖子吧,别把问题发文章里了。