想法简友广场读书

bug不能重现的几个原因

2023-06-08  本文已影响0人  影子喵喵喵

一、环境不一致

这是bug不能重新的最主要的原因。

在开发人员认为这是无效的bug 里面,估计至少有80%的Bug是因为环境不一致的原因造成的。这既包括开发环境和测试环境的不一致,也包括开发环境和系统的实际运行环境不一致。

Bug产生是有一定原因的,它的重现也需要一定的环境。如果没有相应的环境,那么你可能很难这个Bug。

从广义上来说,保证或影响系软件的任何因素都是环境。例如,硬件的配置、软件的设置、网络的带宽、网速等。

通常,环境中的软件因素有:

(1)系统的Build

(2)Application Server的类型和Version

(3)Operation System 的语言和Version

(4)浏览器的语言和Version

【案例1】

我们发现某个Bug 只出现在WebSphere 6.0.2.15上,按照开发人员的要求,把WebSphere升级到6.0.2.17 后,此Bug就自动消失了。因此,此Bug是因为WebSphere的版本不一致引起的。

【案例2】

几个图片在某个Build上莫名其妙地消失了,刚开始怀疑是开发人员修改别的Bug而引起的错误。

后来经过仔细认真地测试才发现,原来是操作系统的语言搞的“鬼”:测试人员使用的机器的操作系统语言是简体中文,开发人员使用的是繁体中文。

二、浏览器的不当设置

对于Web测试来说,IE的设置又是对重现Bug起着重要的作用。下面的几个图片说明了浏览器的几个关键设置:

说明:在“高级”选项中,对测试起重要作用的是“禁止脚本调试”(不选择,即前面不要有勾)和“显示每个脚本错误的通知”(选择它,即前面要出现勾)。

这些设置对重现有关脚本错误的bug起着重要的作用。

根据这些脚本错误的通知,开发人员可以快速发现代码中的错误,并及时修复它。

三、内存泄露

某些系统长期运行后出现运行速度慢、反应迟钝等现象,其中一个主要的原因就是内存泄露。

有的开发人员没有养成及时回收内存的习惯,结果系统在不断地申请内存空间,却没有一点内存释放。

这类错误在短期内不会出现,但当系统长期运行时就会出现,并且由此会引发一系列的问题。

此类问题只有经过长时间的运行测试,才可能会被发现。

四、函数接口类型不匹配

此类错误难以重现,并且难以发现它的真正原因,一般只有在查看源代码后才能发现。

某些类型的数据会被系统自动转换,一般也不会出现错误;但有些数据被截断或被强制转换成另外一种数据类型时,会出现一些潜在的错误。

在集成测试时此类错误最有可能发生。

上一篇下一篇

猜你喜欢

热点阅读