会不会提bug是体现测试同学专业性的一个很重要的方面,关于这方面的讨论也是相对比较多的,最近发现了一些有意思的梗图,有些真的挺有意思的,跟大家分享一下。

关于是不是真的需要提个bug

Untitled

开发和测试总有不同的理解。

问题根因分析

很多时候我们发现的问题其实只是误会,或者说是无效的,比如在不小心部署的中间版本上测试,某些全局配置项设置有误等,这时候需要测试同学进行根因分析,实锤是bug之后再提会更合适一些。那么问题就来了,如何进行有效的分析呢?下面是一些我们可以尝试的方向

  • 日志
  • 监控
  • 代码分支
  • 配置文件或配置中心

很多时候我们感到困难的是如何去获得上面的数据,比如如何获取用户机器上的日志?

Untitled

标题党

好的标题可能意味着一切,标题可以尽量消除歧义,让人一目了然,当然长篇大论也是不可取的,总之写bug的标题经常会让经验不是非常丰富的同学感到挣扎。

Untitled

重现步骤

我们需要确保我们的缺陷是可重现的,我们需要添加关于如何重现问题的确切步骤,单步应该代表一个单一的动作,避免在重现步骤中使用“and”和“or”,因为这些添加了不必要的模棱两可。在描述客户出现的问题时,可以理解的重现步骤就更加重要了。

Untitled

包含截图screenshot

英文表示截屏的单词唤作screenshot,就像下面一样

Untitled

一张好的截图胜过万语千言了,而且很多开发其实只看图,一般情况下,对于web应用而言,尽量用全屏截图,因为这样可以包含浏览器的url,对排查问题很有帮助;另外有条件的情况下可以把开发者工具(windows操作系统上可以按F12打开)中的console或者network标签页也截进去,出错的地方重点高亮一下。

录屏

录屏我觉得可以分两种

  • 录成视频
  • 录成可以自动执行回放的脚本

第二种比较困难,但在web上也有不少可以尝试的工具

Untitled

实际结果和预期结果

  • 预期 - 系统应该做什么
  • 实际 - 实际发生了什么
  • 描述应该简明扼要,避免歧义,比如不要用“是否”, “有没有”, “是不是”

Untitled

日志和堆栈

有条件的话我们应该提供相关的日志和堆栈,特别是在移动端进行测试的情景下。

Untitled

软件版本和分支信息

对于客户端来说软件版本,比如操作系统版本,客户端版本等信息非常重要,对于后台系统来说分支信息对于错误分析也是相当有帮助的,所以有条件的情况下最好都包括上。

Untitled

数据库查询结果

在bug里贴上数据库查询语句和查询结果是非常高效且专业的。

Untitled

确定严重性和优先级

可以像下面这张表一样,用4个象限去区分优先级

  • 高严重性和高优先级
  • 低严重性和高优先级
  • 低严重性高优先级
  • 低严重性低优先级

Untitled

保持专业

最后但并非最不重要的一点是,在报告缺陷时,重要的是要坚持事实并使用专业和尊重的语言,避免添加个人意见,关于如何解决问题的建议,推卸责任和指责,吐槽的内容就留给之后的复盘会议好了。

Untitled