如何以聪明的方式报告错误

时间:2008-10-27 15:35:41

标签: language-agnostic bug-reporting

我想以类似于ESR How To Ask Questions The Smart Way

的样式编写(或查找)有效错误报告指南

有效错误报告的最佳提示是什么?

8 个答案:

答案 0 :(得分:7)

  • 有关如何重新创建错误的分步说明
  • 确保您已尝试将错误与您实际编写错误的内容隔离开来,而不是其他可能导致错误的原因。
  • 列出尝试将错误隔离到您正在编写错误的软件
  • 之外的其他内容
  • 让自己回答问题并提供帮助排查/重新创建错误

最重要的是,当遇到错误时,你必须采取某种程度的批判性思维。一旦你已经用尽所有可能性,这可能是你的错,写一个bug。如果你发现它的错,但是你正在使用/测试的软件可能已经做了一些更有用的东西来表明你的错,那还是写错了。

此外,要成为一名真正伟大的错误记者,您必须利用那些测试错误的人来帮助他们重新创建它。你很可能只是“擅长”重建那个bug,并且可能有一些你没有意识到的步骤。您不仅可以抱怨和离开,参与流程并通过测试,重新创建和故障排除来帮助团队。

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

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

很多时候,我们的质量保证人员认为他们可以直接发票说,这是我的例外,没有任何备份文件。它几乎不可能重现,更不用说在没有更多信息的情况下解决问题了。

答案 3 :(得分:2)

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

答案 4 :(得分:2)

推荐这篇文章:How to Report Bugs Effectively

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

  • 始终报告待测软件的版本号
  • 始终报告任何其他软件(浏览器,操作系统等)的版本
  • 始终列出所有硬件
  • 重现的步骤
  • 错误的症状
  • 屏幕截图,跟踪,日志,其他附件(如果有)
  • 多么重要 - 崩溃,用户界面等
  • 报告是否可重现
  • 其他任何尝试过,无论是否重现该错误