错误报告指南

本文档介绍了如何编写一份良好的 WebKit 错误报告。好的错误报告有助于开发人员和质量保证 (QA) 人员决定错误的适当优先级和严重性,并增加错误被快速修复的机会。您提供的信息越具体越好。

  1. 版本

    请选择发生错误时您正在使用的 WebKit 版本,或最接近的版本。

    非 Safari 发布版本一部分的 WebKit 版本在版本号后带有一个 +,其版本号通常高于最新发布的 WebKit 版本。例如,528+ 是一个非官方的 WebKit 构建版本,它比作为 Safari 3.1.2 的一部分发布的 525.x 版本更新。

  2. 组件

    如果您知道错误的精确原因(即,您已将其简化为失败的测试用例并知道原因),那么您可以将错误分配给特定的组件,例如 CSSHTML 编辑

    但是,如果您对错误的原因有任何疑问,请将其归入 新错误。此组件用于存放尚未确定原因的所有错误。一旦有人简化了错误并知道了原因,它将从 新错误 组件移动到适当的位置。

  3. 平台和操作系统

    请选择发生错误的平台和操作系统版本。如果您在 OS X 上运行,通常平台为 Macintosh,操作系统为 Mac OS X 10.5 (Leopard)。如果您在 Windows 或 Linux 上运行,请为平台选择 PC,并从操作系统字段中选择相应的条目。如果您的确切系统未列出,请选择最接近的条目并在错误报告的描述中提供更多详细信息。

  4. 优先级

    通常由 QA 人员或开发人员设置此项,因此错误提交者可以保留默认值。设置优先级涉及一些指南和一些个人判断。如果您知道该错误是回归问题(即,在 WebKit 以前版本中没有问题而现在出现的问题),您可以将其设置为 P1。

  5. 严重性

    在大多数情况下,您应该将其保留为 normal(正常),但如果您确信您的错误是 trivial(微不足道的)或 enhancement(增强功能),则指定该值会很有帮助。如果合适,QA 人员或开发人员会将其设置为其他值。

  6. URL

    如果可能,请在此字段中填写显示该错误的页面 URL。如果您已经为该错误创建了测试用例精简版,请将其作为附件添加到错误报告中,而不是将其放在 Web 服务器上并在此处列出其 URL。这样做可以使错误处理更容易,并且可以是将测试用例与错误修复一起提交的第一步。

  7. 摘要

    一份好的摘要用清晰具体的语言解释问题,但通常足够简洁,可以适应 Bugzilla 中的默认摘要空间。仅仅通过阅读摘要,就应该能够准确了解错误的内容。

    撰写良好摘要的技巧

    • 包括显示错误的页面域名(尤其是如果它是一个重要网站)
    • 如果错误是崩溃,请注明这一点并注明崩溃是否可重现
    • 如果您已测试并验证这是 WebKit 以前版本的回归问题,请在摘要前加上“回归:”
    • 如果您知道回归发生的修订版本范围,请在“回归”之后将其添加到摘要中(即,“回归(r31201-r31211):”)
  8. 描述

    在此字段中,写下对问题的更详细解释。

    描述的技巧

    • 一个错误报告中不要包含多个错误。
    • 如果您是自行构建 WebKit 或使用了 WebKit 构建归档,请提供 SVN 修订号以及您是否将 WebKit 与 Qt、GTK+、wxWidgets 等配合使用的信息。
    • 如果仅加载一个 URL 不足以显示错误(例如,您必须点击多个页面才能出现错误),那么请描述到达发生错误页面的确切导航步骤。不要只说“去论坛”;请使用详细步骤。
    • 查看系统控制台,并在错误报告中包含任何可能相关的消息。
    • 如果发生崩溃,请尽可能包含回溯日志。先提交错误,然后将回溯日志作为附件添加。
    • 对于视觉错误,请包含屏幕截图。如果问题不是很明显,请包含一张显示正确和不正确渲染的屏幕截图,例如 Safari 和另一个浏览器(如 Firefox 或 Internet Explorer)。在 Mac 上,您可以使用 Grab.app 或 Cmd-Shift-4 捕捉一张能演示问题的快照。然后您可以将屏幕截图附加到错误报告中。
    • 尽可能具体。例如,如果您正在描述一个在滚动时发生的问题,请在错误报告中注明您是使用方向键、方向按钮、滚动条滑块、点击滑块上方或下方、滚轮鼠标等方式进行滚动。
  9. 关键词

    如果错误是 WebKit 的一个或多个移植版(Mac、iOS、GTK、EFL、Windows)特有的,请使用任何有效关键词来相应地标记错误报告。

  10. 依赖于

    如果此错误的修复依赖于另一个错误修复,请在此处填写另一个错误的编号。否则,请留空。

  11. 阻塞

    如果此错误阻碍了另一个错误的修复,请在此处填写另一个错误的编号。否则,请留空。