Bug writing guidelines

This is an archived page. It's not actively maintained.

If you need help with Mozilla software (for example with Firefox, Seamonkey or Thunderbird), use one of the available support options. Do not edit this page!

This page assumes you'd like to contribute to the Mozilla project by collecting enough information to enter a useful bug report in Bugzilla, the Mozilla bug tracking system. Thank you!

If you're new to reporting bugs, you may want to try getting help from the more experienced contributors. See the Community section on the QA page for pointers. If you're going to report a Firefox bug, you can also get assistance in the #firefox channel on irc.mozilla.org. For other projects (e.g., Thunderbird, SeaMonkey)  you can find the appropriate channel on IRC.





  1. 釐清如何 重現您遇到的錯誤
    • 如果能夠 完整描述重現錯誤過程 —太棒了! — 您將提供有收穫的錯誤回報。
    • 有時能夠重現問題,但不確定是用什麼特定的方法,則您需要提供有幫助的額外資訊。
    • 如果無法重現問題,回報該問題可能沒有太大的幫助,除非在發現錯誤時,您有獨特的發現。
  2. 檢查軟體是否已更新至最新版本。建議先測試開發中版本來確認錯誤是不是早就修正(例如:Firefox Beta, Aurora, 或是走在科技前端的 Nightly
  3. When reporting a Firefox bug, first check if you can reproduce the bug in a new Firefox profile. If the bug only happens in your existing profile, try to figure out what settings, extensions, or files in your profile are needed to reproduce the bug.
    • If the bug seems egregious (i.e. obviously affecting a large portion of users), there's probably something unusual about your setup that's a necessary part of the steps to reproduce the bug. You have much better chances of figuring it out than a developer who does not have access to your system.
    • If the bug falls into one of specific types of bugs listed in a section below, it may still be useful even if you can't reproduce it in a new Firefox profile.
  4. Open the Enter a new bug form, which will guide you through most of the bug reporting process:
    • Create a Bugzilla account if you don't have one already, select the product having the bug.
    • Enter a clear unique summary as described below; check if the bug has already been reported (if you want to be more thorough, there's an advanced guide on screening duplicate bugs).
    • Provide precise steps to reproduce, expected results and actual results as described in the following section.
    • Provide additional information (also described below), especially if you can't reproduce the bug in a new profile; and/or by reporting a crash, memory usage, performance, regression bug; or if the problem is with a specific web site.
  5. 如果遇到多個錯誤時,請分開一個一個回報。


您會怎麼用大概十幾個字描述問題? 開發者會先看到這一部分文字。


  • 好: "在複製檔案時按取消會讓檔案管理員當掉"
  • 不夠好: "當掉了"
  • 好: "Down-arrow scrolling doesn't work in <textarea> styled with overflow:hidden"
  • 不夠好: "瀏覽器應該要可以正常顯示我的網站"


How can a developer reproduce the bug on his or her own computer?

Steps to reproduce are the most important part of any bug report. If a developer is able to reproduce the bug, the bug is very likely to be fixed. If the steps are unclear, it might not even be possible to know whether the bug has been fixed.

在問題回報裡應該寫些什麼 ? 好的例子(描述細節)


說說你能不能控制卡 bug 的時機。



描述如何命令 Firefox 做你想做的事。

1. 點桌面捷徑打開 Firefox
2. 按下 Cmd+N (Windows 系統按 Ctrl+N )來打開新的視窗。

3. 把 https://mail.google.com/ 複製貼上到網址列然後按Enter。


照著步驟做後,清楚地描述你看到的 (實際) 結果預期結果。 請將這兩項分開來寫。

預期結果: 我的收件匣正常顯示。
實際結果: 我的收件匣顯示 '您的瀏覽器不支援 Cookies (錯誤 -91)'。




The following information is requested for most bug reports. You can save time by providing this information below the Expected results. If you need to attach multiple files, you can do so after submitting the report.

For specific types of bugs

If you are reporting a crash bug, please include a Breakpad ID or attach stack trace, and include the crash signature in the bug summary as well as in the Crash Signature field.

If you are reporting a memory use or leak bug, please attach the output of about:memory. Ideally, find steps to reproduce an increase in what is shown in about:memory (even after clicking the "Minimize memory usage" button at the bottom). If you have trouble finding steps to reproduce, try the Firefox Support page titled Firefox Uses Too Much Memory (Ram) - How to Fix. If you are a C++ developer, more precise tools are available.

If you are reporting a bug about slowness or high CPU usage, please provide a link to the performance profile in the bug.

If you are reporting a hang (beachball on OS X or "not responding" on Windows), please follow the instructions in How to Report a Hung Firefox.

If you are reporting a bug involving a Flash hang, please visit https://wiki.mozilla.org/Flash/Hang_Debugging to learn how to provide useful information for developers.

If you are reporting a bug involving a specific web page, please try to make a reduced testcase and attach it to the bug report. If you don't have time or expertise, please report the issue to webcompat.com instead, where our volunteers will do this for you.

If the bug was recently introduced, finding a regression window can help identify the cause of the bug.

What if my bug seems "random" or "intermittent"?

Original document information

For most Firefox bugs

You should provide the following information for most Firefox bugs.

What should you include in a bug report? Example
Indicate if the problem can be reproduced using a new Firefox profile and any changes you need to make in order to reproduce. The problem can be reproduced in a new profile, but only if Preferences -> Privacy & Security -> Tracking Protection is selected.
If you can only reproduce with an existing profile try to figure out what settings, extensions, or files in your profile are needed to reproduce the bug. If you skip the step, save the troubleshooting information from about:support to a file and attach it to the bug report. I can't reproduce in a new profile, about:support information from the offending profile is attached.

Indicate if the problem can be reproduced using the latest Nightly build. Include the Build ID from about:support.

If possible, test using the new Firefox profile you created. If you need to test the Nightly build with your regular profile, you might want to back up the profile first, since the pre-release build may corrupt your data.

The problem can be reproduced on the latest Nightly (Build ID 20170416100136).


  • Author(s): Jesse Ruderman, Gervase Markham
  • Other Contributors: Eli Goldberg, Claudius Gayle, Jan Leger, Felix Miata, Peter Mock, Chris Pratt, Chris Yeh, and others.



Finding the correct product and component

You will be asked to categorize your bug into a "product" and a "component" within that product, in order to direct your report to the correct developers.

If you're using Firefox, the bug is most likely in "Firefox", "Toolkit", or "Core".

When in doubt, search for similar bugs and see which component they are in.

If none of the components seem appropriate, look for a "General" component in the most appropriate product.

General Outline of a Bug Report

Most of the following article has been merged into this page from QMO: How to write a proper bug

  • Summary: How would you describe the bug in less than 60 characters? It should quickly and uniquely identify a bug report as well as explain the problem, not your suggested solution. Good: "Canceling a File Copy dialog crashes File Manager" Bad: "Software crashes" Bad: "Browser should work with my web site"
  • Component: In which sub-part of the software does it exist? This field is a requirement to submit any bug report. Click the word "Component" to see a description of each component. If none seems appropriate, highlight the "General" component.
  • Version: select the earliest Version with what the problem can be reproduced:
    • Developers will use that information to narrow down the commit what introduced a regression
    • QA staff needs that information to distinguish bugs with similar symptoms, but different roots.
      • Bugs that definitively appeared in different Product Versions probably will have different roots
      • But Bugs that started with the same Product Version probably are DUPLICATEs
    • Trunk does not allow any useful query. We have Trunk version bugs from beginning of the project until today, no common characteristics at all what can be tagged with this version. Avoid Trunk, replace it by precise information with what version the problem appeared if you can.
  • OS: On which operating system (OS) did you find it? (E.g. Linux, Windows, and Mac.) Example: "If you know the bug happens on more than one type of operating system, choose "All". If your OS isn't listed, choose Other".
  • Description: The details of your problem report, including:
    • Overview: This is a larger detailed restatement of the summary. An example would be: "Drag-selecting any page crashes Mac builds in the NSGetFactory function".
    • Build Id: To find this either go to the "about:support" page via the location bar or, if you have MozQA's Nightly Tester Tools extension, then go to Tools | Nightly Tester Tools and select the option that contains the output of the build Id. It should look something like this: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 ID:20150330004006 CSet: 9e57e9776571".
    • Additional Builds and Platforms: Whether or not the bug takes place on other platforms (or browsers, if applicable). It should look something like this: "Doesn't Occur On Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 ID:20150330004006 CSet: 9e57e9776571".
  • Steps to Reproduce: Minimized, easy-to-follow steps that will trigger the bug. If they're necessary, make sure to include any special setup steps. A good example of this would look like the following:
    1) View any web page. (I used the default sample page, http://www.google.com/).
    2) Drag-select the page. Specifically, while holding down the mouse button, drag the mouse pointer downwards from any point in the browser's content region to the bottom of the browser's content region.
  • Actual Results: What the application did after performing the above steps. An example would be: The application crashed.
  • Expected Results: What the application should have done, were the bug not present. An example would be: The window should scroll downwards. Scrolled content should be selected. Or, at least, the application should not crash.


Original document information

  • Author(s): Aakash Desai
  • Date last modified: June 3, 2013 at 2:41 am PST