在测试过程中发现了一个无法重现的BUG该怎么么办?

2021-05-06 19:52发布

偶然出现过一次,以后一直没办法重现出来,这个缺陷需要管它吗,是否影响项目上线?

偶然出现过一次,以后一直没办法重现出来,这个缺陷需要管它吗,是否影响项目上线?

7条回答
一个Ai
1楼 · 2021-05-07 08:50.采纳回答

一、一定要提交。

1. 记得有这么个缺陷,以后再遇到的时候可能就会了解发生的原因。

2. 尽力去查找出错的原因,比如有什么特别的操作,或者一些操作环境等。

3. 程序员对程序比测试人员熟悉的多,也许你提交了,即使无法重新,程序员也会了解问题所在。

4. 无法重现的问题再次出现后,可以直接叫程序员来看看问题。

5. 对于测试人员来说,没有操作错误这条.既然遇到,就是问题。即使真的操作错了,也要推到程序员那里,既然测试人员犯错误,用户也可能会犯同样的错误。错误发生的时候,Tester最大。


二、程序不是测试人员写的,出问题也不是测试人员的原因。 

至于无法重现,可能的原因很多,因为测试人员看到的只是程序的外部,无法深入程序内部,所以把责任推给测试人员是不对的。测试人员的任务只是尽力重现问题,而不是必须重现。

三、下次再遇到的时候,拉他们来看就可以了。 

因为问题如果无论如何无法重现,程序员确实也没有什么好的解决方法。而且此类问题即使程序员说修改了,测试员也没有好的方法去验证是不是。

四、你可以告诉程序员,测试过程是没有错误的。 

测试人员只是检查程序中可能存在的问题,虽然测试人员使用一定的手段方法努力去覆盖所有的情况,但这些都是理论的推测。在实际中,可能因为人员、环境、配置等种种原因出现各种各样的问题,在测试人员这里发现问题是公司内部的事情,程序发到外面可就是公司的形象问题了。

五、问题无法重现,也要提出,程序员那里可以回复无法再现。问题放在那里,等到再次出现的时候,就立刻叫程序员过来查看。实在没有再次出现,最后可以写到报告中,说出现了什么现象,但无法再现(比较严重的问题才如此处理,小问题经理之间商量商量可能就算了)。


猫的想法不敢猜
2楼 · 2021-05-06 20:20

需要管,查清楚,不然后期上线可能因为这一个的漏洞损失巨大

IT学习
3楼 · 2021-05-07 09:16

需要管呢,一定要写在测试报告里面,程序员对程序比测试人员熟悉的多,也许提交了,程序员会了解到问题所在

最好是尽力去查找出错的原因,比如有什么特别的操作,或者一些操作环境等。

测试的工作职责就是找程序运行过程当中出现的BUG,提交,交给程序员修改就可以了,加油~


小橘子
4楼 · 2021-05-07 15:46
  1. 1、在A版本发现的bug应该在A版本进行重现

    我们知道,有很多原因会导致A版本的bug可能不能在B版本重现:1)开发人员自己偷偷解了bug,以免受到KPI考核;2)环境差异,可能B版本的代码在A版本的环境也会出问题,但是在开发环境可能就不能复现;3)代码变更,也许是其他的代码引起的bug,B版本时其他开发已经修改,此类可以归纳为相关联功能引起的bug;4)AB两版本进行复现的前置条件及步骤已不同。

  2. 既然有这么多可能性,那我们就应该排除影响,让问题简单化,保持环境和代码一致的情况下进行复现。A版本的bug如果在B版本不能复现,时间和条件允许的话,那就回退代码到A版本,有个前提不用回退,那就是已准确定位问题了,并且确定在B版本已经解决它了。


  3. 2、项目时间允许的情况下,开发人员应大力协作复现bug

    对于”疑难杂症“,开发人员应大力配合测试人员进行复现:1)如果对于不好调试的代码就打印更多log;2)可以通过连接测试环境数据库并回滚代码到A版本,根据获悉的已有情况添加断点调试代码;3)做更细致的code review等等方式。在自己负责的那部分代码确定完没有问题,这时候就需要考虑到接口,是否在接口数据处理上的问题,就需要其他开发人员配合。而测试人员需要尽最大努力来还原当时的场景:环境,数据,前置条件及测试步骤等。


  4. 3、测试人员要再次确认用例设计的覆盖度及周密性

    有几种情况会导致不可复现:1)环境;2)代码;3)数据。而数据又可以归纳到代码容错性处理上,环境其实是可以很好还原的,那出现不容易复现的bug就大多数是归于代码和数据上了,对于测试而言,用例设计的覆盖不够,不够严谨就会导致bug不在我们的掌握中。

  5. 这个时候,我们有两种情况:一是原本用例就没有好好设计过,未经评审过,大家测试时就很随意,勿容置疑,赶紧把用例好好琢磨琢磨,再叫上项目相关人员进行评审,这么做的目的也是为了保证测试用例得到了项目相关人员的认可,各种情况大家都讨论过,保证在需求上大家的一致性,保证软件覆盖度能满足本次项目需求的要求,做到需求100%覆盖,开发人员若再提出更多建议,那也可以弥补一些黑盒测试时可能遗漏的情况;二是该项目已经经过严格的需求评审及用例评审了。当然,即便如此也不能避免漏测以及对特殊情况的考虑。

    当然,要这么做的前提是这个bug很严重,影响了版本的发布,有必要召集大家协力解决掉它。

  6.  4、绞尽脑汁,它仍然不能复现时,保持关注

    我相信,通过以上步骤的努力,仍然不能复现的bug一定是优先级不高的,那就再评估重要度,若通过项目组决定不影响版本发布,就密切关注此bug,在发布后验证时也重点关注下。而且该bug不能关闭,依次往以后版本中顺延,并且每轮测试时都要尝试再次复现。那何时可以关闭呢?也许3,5个版本发布后,没有出问题就可以决定关闭它了。

  7. 5、思考测试流程及测试规范,及时更正走过的弯路,制定提交bug的规范,便于开发及我们自己复现

    有一次,就会有第二次,我们应该及时响应,即便不能亡羊补牢,也要防患未然。 提交bug的规范,这个可能每个公司情况不一样,有些公司木有限制,提交的bug也是千人千面,这对于开发人员理解bug和复现bug无疑增加了难度。而规范了bug提交,若记录了此bug的前置条件,使用的数据及操作步骤,可能会大有益处。当然,此处不是说每个bug都这么详细。


只爱泡泡的哆啦A梦呀
5楼 · 2021-05-07 16:21
  1. 在A版本发现的bug应该在A版本进行重现

  2. 项目时间允许的情况下,开发人员应大力协作复现bug

  3. 测试人员要再次确认用例设计的覆盖度及周密性


summer
6楼 · 2021-09-13 10:57

当开发不承认bug,可以根据需求文档,需求文档怎么写,就应该怎么实现,不能有多余的功能点;

123无语呀
7楼 · 2021-11-19 17:14

需要管呢,一定要写在测试报告里面,程序员对程序比测试人员熟悉的多,也许提交了,程序员会了解到问题所在

最好是尽力去查找出错的原因,比如有什么特别的操作,或者一些操作环境等。


相关问题推荐

  • 回答 19
    已采纳

    软件测试最主要的目的,是为了保证软件上线以后,能够正常平稳没有bug的运行下去,因为测试的本质就是找应用程序和需求规格说明书之间的不同,如果两者发现不一致了,那一定是出现问题了。而通过软件测试工作,能够帮助甲方人员更好的接受软件提供依据,也让...

  • 回答 10

    简单地说,测试点就是一个安装了网络速度测试程序的网站或服务器,供其它网友测试从其它地方连接到该网站或服务器的速度。比如,您有一个网站,您在网站中安装了我们免费为您提供的网络速度测试程序,经本站技术人员审核合乎要求,您的网站就成为本站测试联盟...

  • 回答 4

    果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同...

  • 回答 10

       采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

  • 回答 7
    已采纳

    在编程中,布尔量指一个真或假状态。通常它们分别用0,1或1,-1来表示,这和编程语言有关。具体来说当布尔量为真的时候表示一个表达式或判断成立,否则这个式子或判断不成立。你把它理解为成立或不成立就行了。...

  • 回答 6
    已采纳

     功能测试框架一般情况就是包含以下几类:界面友好性测试、功能测试、页面链接测试、容错测试、稳定性测试、 性能测试(简单方面)等等。   1.1.1 界面友好性测试  风格、样式的协调性是否合理  界面布局是否整齐,尽量不要使用滚动条  界面操作、...

  • 回答 6

    测试用例:为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。测试脚本是为了进行自动化测试而编写的脚本。两者的关系: 测试脚本的编写必须对应相应的测试用例...

  • 回答 6

    功能点:能够单独完成的某个具体业务流程。 一般在软件测试工作流程中的需求分析阶段,要根据需求说明书或者原型图提取功能点,功能点是和需求点相对应的。例如:每个软件都有注册登录,注册、登录就是两个功能点。登录模块还可以细化成登录功能,忘记密码功...

  • 回答 5

    1、如果你的自学能力较弱,就找个靠谱的培训机构学习,培训机构的功能很简单:公司需要什么,机构就培训什么。针对市场,公司用人也舒服,求职者找工作也好找。2、如果你自学能力强就找些专业教材,结合网上的资料来学习。但是需要你有坚持的毅力。3、测试分...

  • 回答 5

    判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确....

  • 回答 5

    判定表通常有以下四个部分组成:1)条件桩(Condition Stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。3)条件项(Condition Entry):列出针对它左列...

  • 回答 6

    、 黑盒测试:是一种常用的软件测试方法,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试。几种常用的黑盒测试方法和黑盒测试工具有,等价类划分法、边界值分析法、因果图法、决策表法。在实际运用中要选择合适的方法。二、 因果...

  • 回答 3

    长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是...

  • 回答 2

    1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

没有解决我的问题,去提问