“这将是一个站立战斗的先生,还是找虫子?”
-哈德森


我一直想知道编写出色的错误报告的秘诀是什么。随着时间的流逝,我将活动范围缩小到三个基本元素。


复制:找到错误后,将其复制。
文档:将其记录下来,并在必要时进行详细包装。
传达:将其输入错误跟踪程序并告诉某人。

复制-显然,这是最令人讨厌的步骤,因为您刚刚中断了某些事情,为什么我们要再次中断它?不幸的是,这是该过程的一部分。可重复的错误通常使开发/实施团队可以很清楚地了解可能出了什么问题。一次发生的错误很难找到。因此,如果发现错误,您的第一步就是尝试使它再次发生。这就是为什么至关重要的是,您必须在头脑中跟踪自己在做什么和单击了什么。某些组合会产生错误,而其他组合则不会。

文档-比错误更糟糕的是没有任何细节的错误。例如,以下错误报告出了什么问题?


我的订单失败。我认为它已损坏。


除了您的订单失败之外,没有任何细节!非常出色的细节示例:


重复该错误的步骤(请参阅步骤1)
您所期望的与获得的结果
错误消息出现在屏幕上页面
您使用的是哪种浏览器/操作系统

因此,如果您要重写如下所示的错误-这将使实施团队更容易调查并解决问题:


我正在使用以下软件:
操作系统:Mac OS X(10.4.9)
浏览器:Firefox 2.0.0.3

我在yoursitehere.com上订购依ugg幼犬的订单无法通过
,我不确定为什么。当我尝试下订单时,我结束了
带有以下错误消息的订单输入页面:“很抱歉,我们的
记录表明已经下了另一笔订单...。”
我希望最终在收据页面上显示一个确认消息
,并且收件箱中有一封确认电子邮件,相反,我收到错误消息。

请尝试以下步骤:

这里的步骤


通信-为了更正错误,实现团队需要了解它。这最终并没有像听起来那样令人费解。但是,您越早让主要的开发人员/项目经理/测试人员知道,就可以将其尽快放入队列中进行修复。

这就是我所做的...但是,您脑海中有很棒的错误报告?

评论

您是否已阅读常见问题解答,好的主观知识,不好的主观知识和实际问题有答案?我不确定这个问题是否适合。

当您无法复制问题时会发生什么?

@Perze一个很棒的错误报告将包含复制步骤。如果您无法复制它,那不是因为您没有问题,而是因为您确实有问题,但是您确实没有制作“出色”错误报告所需的信息。

好的,也许是主观的,但我确实认为社区Wiki可能会认真编写好的bug报告的基础。

这应该是社区Wiki而不是被关闭。

#1 楼

我记录了以下内容:


我认为问题出在哪里。有时这可能很棘手,如果不确定,我会在提交功能之前先与某人讨论该功能。
我认为预期的结果是什么?再次,棘手。请参阅#1。
复制步骤。对开发人员来说,最简单的方法是提供有关如何重现该问题的详细易于遵循的说明。
我附加我拥有的所有日志文件,并将它们缩减为仅包含相关信息。
附加数据库备份或虚拟环境准备就绪。


#2 楼



明确的标题-我希望能够一目了然地讲述,而不必关注报告的内容。

错误的描述-应该尽可能简洁。

复制步骤。您应该能够重现该错误,并希望将其范围缩小到最简单的可能步骤。

相关的环境因素(操作系统,浏览器,硬件)。
任何其他构成问题的材料更轻松地研究问题(堆栈跟踪,日志,脚本文件,特定数据集,屏幕截图)。


#3 楼

错误报告应包括尽可能多的详细信息。但是请记住,如果涉及到测试人员的大量工作,则不应拖延测试人员的创建工作。

一个好的模板应该包含标题(简短和描述性的),构建号,需求参考。 (可选),问题描述,预期结果,重现步骤,分析(可选)。此外,测试经理还应更新其他属性,例如目标构建(应对此进行解决),内部优先级,客户严重性(如果该项目是针对客户的),项目标识符(如果项目具有多个版本)。

请注意,要求测试人员设置内部优先级或客户严重性需要解释项目的许多管理方面。

#4 楼

出色的错误报告为开发人员提供了修复错误所需的信息,而所需的额外信息却很少。

不幸的是,您不能依靠测试人员始终知道什么是必要的,什么是什么。并非如此,所以我会让他们在谨慎的情况下犯错,并在他们保持凝聚力的前提下,尽可能多地详细说明他们在做什么。一个好的开发人员将能够仔细检查(假设报告是用一致的方式编写的),以找到他真正需要解决的信息。

大多数错误都是简单的修复,并且大部分是只是对要求的一种误解。正在寻找使之头痛的简单方法。

如果测试人员能够明确发现未满足哪个要求,那么它应该对开发人员有很大帮助。