做好bug分析,一个好的bug report该怎么做?

很多朋友都问我,为什么那么喜欢研究bug报告,其实个人一直觉得bug报告高于一切,它是测试人员价值的最终体现。也许是工作的性质,我经常将香港的同事和深圳同事做比较,发现香港的同事有一个优点特别值得我们学习:做什么事一般不会去衡量事情的最终利益,更多的是决定后考虑如何更好地把事情做好。

脚踏实地,希望我自己也能够这样努力下去。

做好bug分析,一个好的bug report该怎么做?

尽量减少重现的步骤以达到用最少的步骤来重现问题;这对编程人员来说发现问题根源是很有帮助的。

最好由报bug的人验证bug是否可以关闭。任何人都可以修复bug,但只有那个发现bug的人才能够确信bug是否真正的已被修复。

在将bug解决时要分清楚解决的方式。一般的bug系统允许你使用如“fixed(已修复)”, “won't fix (不予修复)”, “postponed(以后修复)”, “not repro(不可重现)”, “duplicate(重复)”或“by design(设计如此)”方式来解决bug。同时最好写上解决的方式或非正常解决问题(如以上几种类型)的原因。

当你的bug报告被以“not repro(不可重现)”打回时,先检查步骤是否有遗漏或清晰,再去找编程人员。编程人员通常是在无法用bug报告中的步骤重现bug时才选择这个选项。

仔细地追踪版本信息。你给测试人员的每一个build都应该有一个build ID编号,这样刚入门的测试人员就不会重新测试压根就没有修复的那个版本。

如果你是个编程人员,并且正陷入让测试人员使用bug管理库的苦恼中,你只要拒绝接受bug报告其他方式。如果测试人员习惯将bug报告用邮件的形式发给你,你只需用一个简短的消息回复他们:“请将它们输入到bug库中,因为我无法追踪邮件。”

如果你是一个测试人员,并且正陷入让开发人员使用bug管理库的苦恼中,你只要不和他们说任何有关bug的事――将bug输入到bug库中,bug库会自动发送email给他们。

不要添加太多的新字段。有些人喜欢添加一些新的字段来追踪他们所需的信息。试想一下,测试人员要花多长的时间去填写一个几十个字段的表单,而且又有多少人还愿意填写下一个bug呢。

如果知道bug出现模块的负责人员或将解决bug的开发人员,请在标题中明确的指出,例如你发现的bug是有关增加人员的,那么在标题中可以指出“增加人员时出现xx错误”。

如果用英文报bug,最好使用现在时或过去时,例如用"appears"而不是"will appear"。

不要使用完全的大写形式,那样会让人感觉象控诉。不要使用感叹号或其他表现个人感情色彩的词语或符号。

不要使用含糊的词语(例如,好像,似乎)来描述发现的现象。

请考虑如下问题:

1、同一软件中的相似功能是否有相同的问题?

2、其他的浏览器是否有相同的问题?

3、其他的软硬件配置是否有相同的问题?

4、其他的区域(locales)是否有相同的问题?

5、不同的安排设置是否有相同的问题?

6、以前的版本否有相同的问题?

编写bug report没有什么定式,没有绝对的范本,最基本的是能够让客户或目标修改,浏览bug report的人员能看懂,而且是在短时间内,而不需反复思考的。其他,有时要考虑目标读者的一些喜好。例如有些类似的bug到底是合并还是单独提交,bug的步骤划分(到底是每一步都为一点,还是有些点可以合并)。在这一点上我觉得“灵活和适应”是很关键的。(bug详细程度因人而异,具体看你们合作的默契程度)

在发现一个Bug并填写完bug report之后,在review的时候,需要特别注意的一点是:这个bug report会不会让其他人还有联想或发挥的空间。一个好的bug report是不可以细分的,  换句话说就是这个bug是不会让他人觉得你还有些地方需要再测试一下,或许还有其他的问题。例如,有个测试人员发现在输入16这个数字(允许范围内)且提交时系统会返回一个错误:不能输入48以下的数字。这确实是一个错误,但是如果就只按现在的步骤提交,另一个可能会有这样的想法:是不是输入48以下的数字都会有这样的问题呢?这样他有可能要求你在测试其他的数据。这样就延长了这个bug的生命期,而且浪费了大家的时间。那么,你正确做法应该是怎么样的呢?



留言