一、不能重现的bug该如何处理?
bug应该可重现,问题重现才可以让开发快速原因定位并解决问题。在测试的过程中偶尔会碰到一些不能重现的问题,对于这类型的问题应该:
1、
首先,测试人员应该想办法重现,如果实在不行,也应该将bug产生的条件和出现的问题做一个记录,建议开发根据问题的描述来进行原因定位。当然了,即使开发解决了问题,如果不能重现,也不能有效地验证。
2、
根据经验,一般的问题的产生都可以找到重现的规律的,只是看花的时间和成本。严重的bug一定要想办法找到原因,而优先级别低的问题可以考虑成本先将bug搁置,以后重现的时候再让开发解决。通常,不能很快找到规律的问题都是一些比较重要且奇怪的问题,开发一般不能根据描述进行定位,此时测试工程师应该有很强的责任心和信心想办法重现问题。
3、
关于bug的重现,有一点非常重要的是,一定要开发人员与测试人员很好地配合,bug的重现效率才会更高,测试人员千万一个人不要闷头闷脑地在那冥思苦想,而应该及时把问题和看法与开发人员交流,毕竟程序是他们写的,大家一起探讨可以有效地促进问题的解决。复杂的问题并不是一个人就可以轻易就解决的,而是一个团队的结晶,要懂得充分利用团队的力量。
4、
注意bug出现的时候的日志,通常程序日志都包含着很重要的信息,从那些信息中分析出现问题的条件,并尝试重现。
5、
碰到问题时,应该尽量将出错信息作为关键字在互联网搜索,有可能别人也碰到了类似的问题并解决了,即使没有人解决过相同的问题,在互联网上也有很多资料,可以帮助你获取灵感。
6、
必要时,写一些简单的测试程序来帮助重现问题。
下面我会讲一个在实际测试过程中不能重现的问题的解决方法与过程,可能这个问题对于刚入门的人来说有点难理解,不要紧,你不需要看明白问题的原因和代码,但需要学会这个复杂的问题的解决方法,并应用到实际的测试当中。
1、
问题的描述:某短信发送模块出现core,但由于core信息紊乱不能定位到出错原因且无法重现导致core的规律。
2、
问题重现过程:
(1)
使用gdb对core原因进行追踪,发现core信息中含有的错误信息为:
#0 0xff1c5a18 in _malloc_unlocked () from /lib/libc.so.1
#1 0xff1c57f0 in malloc () from /lib/libc.so.1
#1 0xff1c57f0 in malloc () from /lib/libc.so.1
(2)
以这两句core信息作为关键字在google上搜索,一些文章上类似问题的分析中获取经验,初步推断是由于内存溢出而产生的core