热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

Iwanttowrite(orfind)aguidetoeffectivebugreportinginastylesimilartoESRsHowToAsk

I want to write (or find) a guide to effective bug reporting in a style similar to ESR's How To Ask Questions The Smart Way

我想以类似于ESR的方式编写(或找到)有效错误报告指南。如何提出问题智能方式

What are your top tips for effective bug reports?

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

8 个解决方案

#1


7  

  • Step-by-step instructions on how to recreate the bug
  • 有关如何重新创建错误的分步说明

  • Make sure you've attempted to isolate the bug to what you are actually writing a bug against, instead of something else that could be the cause.
  • 确保您已经尝试将错误隔离到您实际编写的错误中,而不是可能是其他原因。

  • List attempts to isolate the bug to something other than the software you are writing a bug against
  • 列表尝试将错误隔离到您正在编写错误的软件之外的其他内容

  • Make yourself available to answer questions and be available to help troubleshoot/recreate the bug
  • 让自己可以回答问题,并可以帮助解决/重新创建错误

The bottom line is you have to engage some level of critical thinking when the bug is encountered. Once you've exhausted all possibilities that it could be your fault, write up a bug. If you find out its your fault, but the software you are using/testing could have done something more usable to indicate its your fault, still write a bug.

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

Also, to be a truly great bug-reporter, you must avail yourself to those testing the bug to help them recreate it. Its likely you've just "got the knack" for recreating that bug and there may be steps you are not conscious of. You can't just complain and walk away, participate in the process and help the team out by testing, recreating, and troubleshooting.

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

#2


3  

Report the observable facts and then your interpretation of those facts.

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

Sometimes the best bug reports include something that is a gut feel of an understanding of the problem. Facts-only bug reporting discounts this valuable human resource.

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

#3


2  

  • Procedure used to re-create the bug including what was being done, what area of the application was being used and what event was happening at the time.
  • 用于重新创建错误的过程,包括正在执行的操作,正在使用的应用程序的哪个区域以及当时正在发生的事件。

  • Statement of reproduceability (reliably, not) - helps the developer know how hard it should be to reproduce so they don't give up to quickly
  • 可重现性声明(可靠,不可) - 帮助开发人员了解复制应该有多难,因此他们不会快速放弃

  • Screen shots or documentation of error message / stack trace produced
  • 生成错误消息/堆栈跟踪的屏幕截图或文档

  • Criticality/Priority of the bug (can it be avoid, avoidance steps, is it catastropic, does it have a business impact, what's the business risk, etc)
  • 错误的重要性/优先级(可以避免,避免步骤,是灾难性的,是否有业务影响,业务风险是什么等)

  • Environment - which environment was the bug found in. Remote, local, etc.
  • 环境 - 发现的错误环境。远程,本地等。

Too often, our QA people think they can just put in a ticket saying, here's my exception without any backup documentation. Its near impossible to reproduce let alone fix the issue without more information.

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

#4


2  

Don't assume the reader of your bug report knows the software as well as you do. Even the person who wrote the software may not know what you are talking about if enough time has passed since they wrote it. Write it so that anyone can understand and reproduce the problem.

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

#5


2  

Recommend this article: How to Report Bugs Effectively

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

#6


1  

For all the people who won't look at something without steps to reproduce:
My first programming co-op job I was assigned a bug that was essentially a random race condition that was making the system unstable. It happened at any point in the system execution, and all we had were a few stack traces pointing to a section of code that was pretty obviously fine. Somewhere another thread was mucking about with data it shouldn't be and if this thread was at the right point it would crash. Our QA got crashes about once a month. It took two weeks of combing through the system to find the culprit (yup, unchecked access to shared resources, about a 2 line fix) and fix it. There never was a decent steps to reproduce because there was no general way to reproduce it (save shoving a bunch of yield()'s in the right spot). If you're going to work on a multithreaded system, you better be ready to deal with bugs that can't be reproduced reliably, may not have stable steps to reproduce, and not just whine to QA because you couldn't reproduce the bug.

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

Note that the above is no excuse for QA to not include as much detail as they can when possible, just pointing out that it isn't always possible on modern software.

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

#7


0  

Write the steps to reproduce the bug. If you can't reproduce it, it won't get fixed.

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

#8


0  

  • Always report version number of software under test
  • 始终报告待测软件的版本号

  • Always report versions of any other software (browser, OS, etc.)
  • 始终报告任何其他软件的版本(浏览器,操作系统等)

  • Always list all hardware
  • 始终列出所有硬件

  • Steps to reproduce
  • 重现步骤

  • Symptoms of bug
  • bug的症状

  • Screenshots, traces, logs, other attachments (if any)
  • 截图,跟踪,日志,其他附件(如果有)

  • How critical -- crash, UI, etc.
  • 多么重要 - 崩溃,用户界面等

  • Report whether reproducible
  • 报告是否可重复

  • Anything else tried, that did or did not reproduce the bug
  • 还有其他尝试过的,是否重现了这个bug


推荐阅读
author-avatar
huangjia6688_862
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有