导航

[转]Bug提交指南

Posted on 2007-03-13 11:48  Jilimi  阅读(381)  评论(0编辑  收藏  举报
原文出自Bug管理工具Bugzilla附带文档。


为什么要建议阅读此文?

原因很简单:你提交的Bug越有效,开发人员就越可能尽快修复它。

如何提交有效的Bug

有效的Bug指最终被开发人员修改的Bug,它通常符合两项标准:

  1. 可重现。 如果开发人员不能重现你提交的Bug,他/她很可能直接将其状态标为 "WORKSFORME"(不可重现) 或 "INVALID"(无效),然后处理下一个Bug。 所以Bug重现步骤的描述最好详细一点。

  2. 具体明确。 开发人员越快确定Bug的发生原因, 就可能越快地修复这个Bug。 如果开发人员弄不清Bug的意思,甚至花费时间请提交人员来解释,就会浪费很多时间。

    [ 更详细解释 ]

举个例子:假设你正在测试一个Web应用程序 foo.com,系统不幸崩溃了,于是你提交如下的Bug:

不好的Bug报告: "本人浏览器崩溃了,可能是在浏览 www.foo.com 的时候吧。 另外,后退 图表也很丑。主页的显示也参差不齐...... "

好的Bug报告: "在浏览 www.foo.com 时每次浏览器每次都会崩溃;测试的Build号为 2002-02-25,操作系统为Windows 2000。使用 Build 2002-02-24 在Linux下也可重现这个问题。

另外,每次在页面顶部显示foo的banner图片时浏览器也会崩溃。 分析页面构成,发现崩溃的原因可能以下链接中的 "border=0" 的attribute无效

<IMG SRC="http://www.foo.com/images/topics/topicfoos.gif" width="34" height="44" border="0" alt="News">

如何有效提交Bug报告?

首先,在提交Bug之前,最好使用Bugzilla的 搜索 功能查询一下已经提交的Bug。 提交重复的Bug会使开发人员厌烦,因而也影响了Bug修改的效率。

其次,确认使用最新的测试版本来重新这个Bug。 因为很可能你报告的Bug在最新版本中已被修复。

在当前版本中发现了一个新Bug时,好的做法是:

  1. 在Bugzilla系统主页,点击 "新建Bug"。
  2. 选择Bug所在的产品。
  3. 输入email用户名和密码,登录系统。

现在开始输入Bug。各字段的含义是:

Bug发生的具体环境

产品

版本号
(如果有的话)

模块

操作系统: (例如 Linux, Windows 2000, Mac OS9等.)
如果该Bug发生在所有操作系统上,选择'所有'; 如果不在列出的操作系统中,选择 "其它" 。

Bug的重要程度

严重度

Bug的相关人员

责任人

抄送人
可有多个抄送人,以英文逗号隔开。抄送人必须有系统的登录帐号。

Bug的描述

摘要描述:
好的摘要描述必须能快速而准确地定位Bug的含义。 注意:Bug的摘要描述非常重要,很多开发人员通常只看Bug的摘要描述;别人在搜索Bug时也通常只搜索摘要描述中的关键词。

好的摘要描述例如: "PCMCIA在Tosh Tecra 780DVD上安全失败;错误代码 3c589C";不好的摘要描述如 "软件失败" 或 "安装问题 " 。

[ 更多解释 ]

详细描述:
Bug的详细描述和重现步骤一般应该包括:

总体描述: 摘要描述的扩展。如:

拖动选择任何页面将导致Mac版本在NSGetFactory处崩溃。

重现步骤: 详细的重新步骤, 也包括前置条件。如:

1) 浏览任何Web页面; (我使用的是缺省的范例页面
resource:/res/samples/test0.html)
2) 拖动鼠标选择该页面内容;

实际结果: 输入程序在执行以上步骤后的实际结果,如:

程序崩溃。 错误信息见附件。

预期结果: 程序在执行以上步骤时在正常状况下应当出现的结果。如:

窗口向下滚动,内容被正常选中。

版本日期及平台: 初次发现此Bug时的版本号码和平台。如:

版本号为 2002-03-15, 平台为 Mac OS9.0。

其它版本号和平台: 可重现此Bug的其它 版本号(或浏览器名称) 及平台。如:

- 此Bug也出现在
Mozilla (2002-03-15 build ,Windows NT 4.0)浏览器上
- 此Bug不出现在以下环境:
Mozilla (Red Hat Linux的2002-03-15 build)
Internet Explorer 5.0 (Windows NT 4.0自带版本)
Netscape Communicator 4.5 (Mac OS 9.0自带版本)

附加的调试信息:

  • 在Win32下: 附加一些系统的错误日志
  • 在Mac下: 如果运行了 MacsBug, 可提供 how 和 sc 结果:
*** MACSBUG STACK CRAWL OF CRASH (Mac OS)
Calling chain using A6/R1 links
Back chain  ISA  Caller
00000000    PPC  0BA85E74
03AEFD80    PPC  0B742248
03AEFD30    PPC  0B50FDDC  NSGetFactory+027FC
PowerPC unmapped memory exception at 0B512BD0 NSGetFactory+055F0

Ok,Bug描述完毕。

检查一遍,然后点击 "提交" 按钮,Bug提交工作就完成了。


关于如何提交有效Bug的附加信息

1. 提交有效Bug报告的几个诀窍:

结构清晰,易于浏览;

避免词藻华丽、修饰过多却语意不清的词句;

一份报告只说一个Bug;

哪怕是再细微的Bug也值得提交。

2. 怎样书写有效的Bug摘要描述

在书写Bug摘要标题前,问一下自己:"别人仅看这个摘要就会得出充分的信息吗? " 经常这样问自己,则不难写出好的摘要描述了。

不要写类似以下的Bug标题:

  1. "不能安装" - 怎样不能安装?安装时发生了什么问题?
  2. "严重的性能问题" - 发生的具体情况,何时执行什么操作时?
  3. "后退 按钮不能工作。" - 何时?怎样?完全不能?

好的Bug标题如:

  1. "在Mozilla M18 环境下1.0版本升级安装失败" - 说明了问题发生的情况和环境。