我想编写(或找到)一个类似于 ESR 风格的有效错误报告指南 如何以聪明的方式提出问题

有效的错误报告的主要技巧是什么?

有帮助吗?

解决方案

  • 有关如何重现错误的分步说明
  • 确保您已尝试将错误与您实际编写错误的对象隔离开来,而不是其他可能导致错误的原因。
  • 列出将 bug 与您正在编写 bug 的软件以外的其他东西隔离的尝试
  • 让自己能够回答问题并帮助排除故障/重现错误

最重要的是,当遇到错误时,您必须进行一定程度的批判性思考。一旦你排除了所有可能是你的错的可能性,就写一个错误。如果你发现这是你的错,但你正在使用/测试的软件可以做一些更有用的事情来表明这是你的错,仍然写一个错误。

此外,要成为一名真正优秀的错误报告者,您必须帮助那些测试错误的人帮助他们重新创建错误。您可能刚刚“掌握了重现该错误的诀窍”,并且可能有一些您没有意识到的步骤。你不能只是抱怨然后走开,参与这个过程并通过测试、重新创建和故障排除来帮助团队解决问题。

其他提示

报告可观察事实然后您对这些事实的解释。

有时,最好的错误报告包含了对问题理解的直觉。只有事实的错误报告会为这个宝贵的人力资源打折。

  • 用于重新创建错误的过程,包括正在执行的操作、正在使用应用程序的哪个区域以及当时发生的事件。
  • 可再现性声明(可靠,不可靠)——帮助开发人员知道再现应该有多困难,这样他们就不会很快放弃
  • 生成的错误消息/堆栈跟踪的屏幕截图或文档
  • 错误的严重性/优先级(是否可以避免、避免步骤、是否是灾难性的、是否会对业务产生影响、业务风险是什么等)
  • 环境 - 发现错误的环境。远程、本地等

很多时候,我们的质量检查人员认为他们可以直接提交一张票,说:这是我的例外情况,没有任何备份文档。如果没有更多信息,几乎不可能重现,更不用说解决问题了。

不要认为您的错误报告的读者和您一样知道该软件。即使编写软件的人可能也不知道你在说什么,如果他们写完后已经过了足够的时间。写下来,以便任何人能够理解并重现问题。

推荐这篇文章:如何有效地报告错误

对于所有不会在没有重复步骤的情况下看东西的人:
我的第一个编程合作作业我被分配了一个基本上是随机竞争条件的错误,这使得系统不稳定。它发生在系统执行的任何一点,我们所有的都是一些指向代码段的堆栈跟踪,显然很好。在另一个线程的另一个线程正在捣乱它不应该是数据,如果这个线程在正确的点它会崩溃。我们的QA每个月都会发生一次崩溃。花了两周的时间梳理系统才找到罪魁祸首(是的,未经检查的共享资源访问,大约2行修复)并修复它。从来没有一个像样的步骤来重现,因为没有通用的方法来重现它(除了在一个正确的位置推一堆yield())。如果你打算在多线程系统上工作,你最好准备好处理无法可靠复制的bug,可能没有稳定的重现步骤,而不仅仅是因为你无法重现这个bug而抱怨QA 。

请注意,上述情况并不是QA尽可能不包含尽可能多的细节的借口,只是指出在现代软件上并不总是可行。

编写重现错误的步骤。如果你无法重现它,它将无法修复。

  • 始终报告被测软件的版本号
  • 始终报告任何其他软件(浏览器、操作系统等)的版本
  • 始终列出所有硬件
  • 重现步骤
  • 错误的症状
  • 屏幕截图、痕迹、日志、其他附件(如果有)
  • 有多重要——崩溃、UI 等。
  • 报告是否可重现
  • 尝试过其他任何方法,无论是否重现该错误
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top