我想以类似于 ESR 的How To Ask Questions The Smart Way的风格编写(或查找)有效错误报告的指南
您对有效的错误报告有哪些重要提示?
我想以类似于 ESR 的How To Ask Questions The Smart Way的风格编写(或查找)有效错误报告的指南
您对有效的错误报告有哪些重要提示?
最重要的是,当遇到错误时,您必须进行某种程度的批判性思考。一旦你用尽了所有可能是你的错的可能性,写一个错误。如果您发现它是您的错,但您正在使用/测试的软件可能已经做了一些更有用的事情来表明它是您的错,仍然写一个错误。
此外,要成为真正出色的错误报告者,您必须利用那些测试错误的人来帮助他们重新创建它。很可能您刚刚“掌握了重新创建该错误的诀窍”,并且可能存在您没有意识到的步骤。你不能只是抱怨然后走开,参与这个过程并通过测试、重建和故障排除来帮助团队。
报告可观察到的事实,然后报告您对这些事实的解释。
有时最好的错误报告包括一些对问题理解的直觉。仅提供事实的错误报告会低估这一宝贵的人力资源。
很多时候,我们的 QA 人员认为他们可以只写一张票说,这是我的例外,没有任何备份文档。它几乎不可能重现,更不用说在没有更多信息的情况下解决问题。
不要假设您的错误报告的读者和您一样了解该软件。如果自编写软件以来已经过了足够长的时间,即使是编写软件的人也可能不知道您在说什么。编写它以便任何人都可以理解和重现问题。
推荐这篇文章:如何有效地报告错误
对于所有不会在没有复制步骤的情况下查看某些内容的人:
我的第一份编程合作工作给我分配了一个错误,该错误本质上是一个随机竞争条件,导致系统不稳定。它发生在系统执行的任何时候,我们所拥有的只是一些堆栈跟踪,指向一段显然很好的代码。在某个地方,另一个线程正在处理不应该出现的数据,如果该线程处于正确的位置,它就会崩溃。我们的 QA 大约每月发生一次崩溃。花了两周时间梳理系统才找到罪魁祸首(是的,未经检查的共享资源访问,大约 2 行修复)并修复它。从来没有一个像样的复制步骤,因为没有通用的方法来复制它(除了在正确的位置推一堆yield())。如果你要在多线程系统上工作,
请注意,上述内容不是 QA 尽可能不包含尽可能多细节的借口,只是指出在现代软件中并不总是可以做到这一点。
编写重现错误的步骤。如果你不能复制它,它就不会得到修复。