51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8146|回复: 34
打印 上一主题 下一主题

[读后感]如何复现不可复现的Bug

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-8-10 13:38:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
文章来自以下链接:
http://skinapi.cnblogs.com/archive/2005/08/07/209426.html     
      从标题来看大家可能会觉得晕,这里说到的不可复现是指这些Bug有时出现,有时候不出现。相信大家在测试过程中肯定遇到过这种Bug,不少这种不可复现的Bug定位起来非常困难,可能很长时间都不能得到解决。能否复现这些不可复现的Bug成为大家关注的一个话题,最近国外的测试专家James Bach、Jonathan Kohl等对这个话题进行了一些探讨,这里把他们的一些思路理出来和大家分享。
      要想复现不可复现的Bug,需要先提到一个概念就是ET(Exploring Test),也就是探索式测试,这种测试方法是由James Bach首先提出来的,在所掌握的被测对象的信息不是很充分的情况下,这是一种很有效的测试方法,如果大家感兴趣,我再整理一篇ET的文章出来。
      在给大家阐述如何复现不可复现的Bug的思路之前,先说说为什么要复现这些不可复现的Bug(废话两句^_^)。对于整个项目或者产品而言,如果这些不可复现的Bug是很严重的Bug,比如导致系统崩溃等,如果不能及时、准确的定位和解决,最终发布出来的软件到达用户手中后,一旦出现势必会影响软件已经公司在用户心中的形象,严重的会“迫使”用户选择竞争对手的产品,这些显然都是公司所不愿看到的。而对于测试人员而言,出现了这些不可复现的Bug,实际上是一次很好的锻炼和提高机会,如果只是提交缺陷报告将这个大皮球踢给开发人员,不仅丧失了一次提高测试水平的机会,还有可能破坏和开发人员之间的关系。
      废话完了,进入正题。当出现不可复现的Bug时,大家可以从以下五个方面来进行考虑:
1、被测对象的版本信息
      我测试的到底是哪个版本,这主要是有两个作用:一是确认我测试的是正式的软件版本,如果不是就先记录下该问题,然后选择正式的版本进行测试(开发人员基于尝试的一次非正规的修改可能会导致不可复现的Bug);二是可以和其它版本进行对比,如果其它的版本没有类似的问题,就可以去对比这两个版本之间的区别。
2、环境
      这里的环境是指出现不可复现的Bug时所对应的测试环境等,比如测试所用的计算机,如果出现不可复现的Bug,那我换一台机器是不是还会出现类似的问题,也就是说通过环境的改变来进一步搜集不可复现Bug的相关信息。
3、模式
      这里的模式是指我对这个Bug如何出现的一个理解,先给这个Bug设定一个模式,比如是不是数据库通信中断,然后再进行测试,收集更多的信息去修改和完善这个模式,这样不断进行,最终直到Bug能完全复现为止,这个时候只要使用这个模式就可以复现出Bug了。
4、人
      这里提到的人有两个含义:一是测试是由人来进行的,人的操作、人的思维方式会有不同,通过分析这些信息也有可能找到这些不可复现的Bug的蛛丝马迹;二是想复现不可复现的Bug,往往需要多个人之间的相互协作,比如测试人员、开发人员等,通过大家的沟通和协作就能更容易去复现了。
5、测试工具
      通过一些debug工具或者log工具等搜集内存等信息,根据这些信息来进行分析,找出不同信息之间的共同点,比如某一块内存始终都会被改写等,通过这种方式来去复现Bug。
      上面的五个方面都是和ET的思想紧密相关的,通过不断的测试和不断的信息收集和分析,逐步的把模糊的、不确定的测试变成清晰的、确定的测试,这样就能复现那些不能复现的Bug了。考虑信息时可以从以上五个方面来进行考虑。
      相应的文章链接:
http://www.kohl.ca/blog/archives/000115.html
http://blackbox.cs.fit.edu/blog/james/archives/000197.html
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

35#
发表于 2007-4-20 15:10:33 | 只看该作者
学习一下,有助于提高英语和技术
回复 支持 反对

使用道具 举报

该用户从未签到

34#
发表于 2007-4-20 14:37:20 | 只看该作者
有些问题很难复现的,个人觉得除了努力加运气外,其他也没招儿了。
回复 支持 反对

使用道具 举报

该用户从未签到

33#
发表于 2007-4-16 15:57:14 | 只看该作者
不错,之前面试中还被问到过这个问题呢,当时汗了////////
回复 支持 反对

使用道具 举报

该用户从未签到

32#
发表于 2007-3-30 12:45:05 | 只看该作者
sdlkfj2 sdlkfj2
高深
看不懂
学习ing ```
回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2007-3-26 15:43:10 | 只看该作者
思路是好的,可实际操作中发现还是很困难
回复 支持 反对

使用道具 举报

该用户从未签到

30#
发表于 2007-3-16 15:47:13 | 只看该作者
真的希望有可以记录的工具
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2007-3-12 10:39:46 | 只看该作者
我给一个数据库应用软件做测试时,在数据处理层出现了异常。这个异常是不稳定的出现,最后断定是硬件的原因。因为机器比较烂,CPU时间片用完所致。这个应该归为环境吧。
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2007-3-8 09:57:37 | 只看该作者
原帖由 daisy.jiang 于 2007-2-7 15:46 发表
同意楼上的观点!
我昨天晚上做testing 的时候就发现了一个很大的bug,尽管数据库的operation log对我进行的操作记录得很详细,但是我再次在同一台机子上进行相同的一组操作却没有出现相同的exception现象,de ...


这就要分析当时数据库的情况了,比如数据库当时所存储的数据量是否过大,或者在某一时刻有大批量的数据往数据库中存储等。
以上的情况我也碰到过,可以尝试使用压力测试的手段来测试数据库,观察问题是否可以再现。
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2007-3-6 14:00:03 | 只看该作者
原帖由 ShaLongBus 于 2006-11-19 20:04 发表
遇到这种现象,首先是记录下来,然后才尝试去重现,不能重现时,可以再按楼主的做法进行排查。相信随着功力的增加,不可重现的Bug会越来越少。

测试最好还是做什么都记录下来,出问题的那些提交上去,没问题的保存一下,肯定会有用。
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2007-2-28 11:42:40 | 只看该作者
除了楼主推荐的方法都要尝试外,也可以尽量扩展发散思维,多想一些异常操作
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2007-2-28 11:41:14 | 只看该作者
这个东西真的不好说,有一次我碰到一个异常问题,我们测试组的人员在场都看到我连续三次操作都会重现的问题,开发人员一过来就不存在了,以后的跟踪测试中也是,我们就跟开发人员开玩笑,说他们给他们开发的软件施了魔法
尽力吧!
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2007-2-27 23:53:36 | 只看该作者
首先谢谢楼主的文章,文章还是提高了一些好的思路,但是具体工作的时候还是有一定的困难的。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2015-4-23 15:32
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    23#
    发表于 2007-2-27 17:34:31 | 只看该作者
    这种情况很普遍的啦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2007-2-7 15:46:16 | 只看该作者
    同意楼上的观点!
    我昨天晚上做testing 的时候就发现了一个很大的bug,尽管数据库的operation log对我进行的操作记录得很详细,但是我再次在同一台机子上进行相同的一组操作却没有出现相同的exception现象,developer leader说要尽量找到bug重现的方式,偶今天都试了一天了,未果!!!  迷茫中sdlkfj9
    Who can help me?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2007-2-6 11:12:07 | 只看该作者
    即然说到是不可复现的,概率就是很小,那么就用楼主说的方法,也未必可以重现.如果能重现的话,那就不存在不可复现这个说法了.
    就如#2楼所说的,出现问题后,用同一个版本,同一台机器,同样的操作方式也是不可重现的,那么你就算是用上述的方法也未必可以重现,也只能是说尽量找到有可能影响到软件Bug的问题啦.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-2-5 19:35:38 | 只看该作者
    虽然测试过程中可以通过工具来抓LOG
    可是总不能在测试过程中一直开着抓LOG工具吧
    但要是不开,那万一出现了不能重现的问题,那又没有任何根据了
    所以这是很矛盾的
    一般BUG都是可以重现的,至于一般所说的不能重现的问题,肯定有它的规律(比如:测试的环境,测试的硬件等等)
    还有就是可能因为软件运行一段时间后会出现问题
    所以最好是要用相同的硬件,尽量模拟当时的环境和操作,那样应该就不会存在不能重现的问题了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2006-12-11 19:11:53 | 只看该作者
    能不能详细说说怎么样捕捉分析内存记录呀?
    极度关注中.............................
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2006-12-11 19:11:01 | 只看该作者
    呵呵,好贴
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2006-12-11 18:09:32 | 只看该作者

    回复 #2 secat 的帖子

    当问题出现的时候,尽快记录,是最重要啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-25 15:23 , Processed in 0.087179 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表