如何处理难以重现的缺陷

可能的原因

环境因素:基础软硬件环境(操作系统、网络、存储、中间件、容器等等),被测物自身发生了某些变更
(环境的变更一般是由于多人共用环境造成的,也有少量情况下是系统内部或者时间触发的变更)

软件的版本:确认发现Bug程序版本和重现的版本是一致的,可通过版本号进行标识

内存泄露或锁:有一些系统只有经过长时间运行才会暴露出Bug,需要经过长时间的测试(稳定性测试、压力测试)才能确认

特殊数据:必须使用特殊的数据才会出现,测试人员没有意识到使用的数据的特殊性

错误操作:比如,记得自己执行了step3,其实没有,或者没有正确执行step却觉得正确执行了(误操作引起的问题也是Bug)

如何处理

如实记录遇到问题一定要提,在提交的Bug描述中需要加上一句话,
那就是复现概率,尝试10次,出现1次或者尝试10次,出现5次

步骤:尽量回想发生问题时的复现步骤,不要漏掉任何一个细节,按照步骤的组合尝试复现

附件:保留发生Bug时的日志、截图、录屏,附加到提交的Bug中,希望可以找到一些蛛丝马迹

关注:在接下来的测试中,时刻保持关注,每次执行同样或者相近的步骤的时候,看下是否能够复现之前的Bug

关闭:如果持续3或者4个版本没有出现,那么可以将Bug暂时关闭,同时关掉的时候要进行备注说明并不是因为修复,
而是经过X个版本后不复现才将此Bug关闭

协助:将Bug单发给组内的同事,让大家帮忙关注该Bug

沟通

关系:测试和开发之间是需要良好沟通的,如果得到的回复是操作错误,那么请开发人员解释,为什么会允许存在操作错误

方式:沟通方面是需要方式的,开发人员对于自己完成的程序有一种满足感,一般来说是不允许别人来破坏他的这种感觉,如果沟通的时候尽可能是一种建议的形式,让开发人员自己指出自己的程序缺陷,这样对于开发人员来说是可以接受

互相成就:需要让开发人员理解,测试人员是帮助他们的,不是害他们的

对待问题的态度

  • 至于无法重现,可能的原因很多,因为测试人员看到的只是程序的外部,无法深入程序内部,所以把责任推给测试人员是不对的
  • 测试人员这里发现问题是公司内部的事情,程序发到外面可就是公司的形象问题了。客户那里发现问题比测试员发现问题结果要严重的多
  • 通过种种想法、测试技巧将问题重现之后,测试人员会相当的有成就感
  • 有时候发现Bug、重现Bug,运气很重要。测试人员的任务只是尽力重现问题,而不是必须重现

你可能感兴趣的:(如何处理难以重现的缺陷)