The Wayback Machine - https://web.archive.org/all/20050301040730/http://qa.netbeans.org:80/bugzilla/reportbug.html
HOME > Community > Projects >    

How to Write a Good Bug Report?

To increase the chances that the bug you're reporting will be addressed in a timely manner, you should adhere to the following guidelines:

  1. When you encounter a behavior which might potentially be a bug, try to collect as much relevant data as possible (e.g. take a screenshot in case of a UI problem, generate a thread-dump in case of a deadlock or serious performance degradation, create copies of relevant files, etc.) and try to recall and note the actions you performed right before the problem occurred.

  2. Try to restore the original state (if possible) and reproduce the incorrect behavior using the steps you noted. This should help you to determine whether the problem is reproducible and persistent or just intermittent. This is not to say intermittent problems shouldn't be reported, but it's always worth pointing it out in the bug report to make the evaluators aware of this fact.

  3. There is a chance that someone already reported the bug you've just encountered. Therefore, it's a good idea to search the bug database first. Go to the the Issuezilla Query page, fill-in the query parameters that seem relevant to your case, submit the form, and go through the returned list of issues to see if any of them match your problem. Typically, you'll want to search for issues of type DEFECT, in an open state (NEW, STARTED, REOPENED) with a specific string in the Summary and/or Description fields. If the bug already exists in the database and you still think you have some useful info to share, it is highly recommended to add this info to the existing issue instead of filing a new one.

  4. If you assume the bug hasn't been reported yet, it's time to enter a new bug. (Note: to be able to do so and to be able to add/update information in the issue database, you need to have a netbeans.org account and be logged in. If you don't have an account yet, you'll have to register first and wait for about an hour for the account to become active).

    • The first thing you need to do is to select the Component to file the bug against. Try to determine the IDE component that seems to be causing or suffering from the problem you're reporting (e.g. editor, debugger, java support, vcs support) and try to find a matching item in the components list, or, if you're not sure, select the component named ide subcomponent code. Don't worry, if you select a wrong component, sooner or later, someone more knowledgeable will re-assign the issue appropriately.

      Bugs found in 3rd party modules (i.e. modules not hosted on netbeans.org) ought to be reported to the module vendors and should not be entered into the NetBeans bug tracking system. If you happen to file such a bug against a NetBeans module, it will most likely be closed as INVALID and no attempt will be made to find the 3rd party vendor and let them know about the problem.

    • After selecting the component, you'll be prompted to fill in the following fields:

      • Version - choose the version of the IDE in which you encountered the problem. In case of a problem found in a development build, select the next release version number, or current.

      • Subcomponent - select the subcomponent of a given component. Usually, only experienced IDE users can determine the correct subcomponent. If you're not sure, just select code.

      • Platform - select the platform you were using when the problem occured. If you were able to reproduce it on multiple platforms, or are positively sure the behavior is platform independent, use All.

      • OS - similar to the Platform.

      • Priority - use this field to indicate the urgency and severity of the issue. Refer to Bug Priority Guidelines for instructions how to set the priority level appropriately. If you're still in doubt, it's better to stick with the default P3 value.

      • Issue Type - select the type of issue you're reporting. In most cases, you'll probably want to use DEFECT (when reporting a bug) or ENHANCEMENT (when requesting an enhancement or feature).

      • Assigned To - unless you're absolutely sure who this issue should be assigned to, leave this field blank. The bug will be automatically assigned to the component (subcomponent) owner.

      • Cc - enter an optional comma-separated list of email aliases you want to be notified about this issue and any subsequent changes to its status. You as the reporter will be notified automatically, so there's no need to add yourself. The aliases must refer to valid netbeans.org accounts (e.g. jdoe@netbeans.org). Arbitrary email addresses are not accepted by the system.

      • URL - if there is a URL relevant to this issue, you can type it here. In most cases, this field will be blank.

      • Summary - a brief (one sentence) description of the issue. You should try to make it as specific as possible while keeping it short (70 characters at the most).

      • Description - a detailed description of the problem. The description should include the following information:

        • the build number
        • JDK version
        • observed behavior
        • expected behavior
        • exact steps to reproduce the problem
        • any other information potentially related to the issue

        Please note that you should not paste larger chunks of text (e.g. complete exception logs and thread dumps, source files, test data, etc.) into the Description field. You should always provide those files in the form of attachments (see below). There is one exception to this rule: although including complete exception logs in Description is not recommended, it is a good idea to copy the relevant part of the stack trace (usually 4-6 top lines to the field to allow for easy searching.

        A good candidate for attaching is the ide.log file. The file can be found in your user directory under {userdir}/system/ (the actual location of userdir can be found from Help | About). ide.log contains logged information from recent runs of the IDE including the info about the actual system, JDK version, location of directories and files important to the IDE, list of installed modules, exception stack-traces and potentially other info useful for tracing various problems. The log file can be big and although it's a textual file, you should never try to copy its content into the Description field. Attach it to the issue instead.

    • After completing the form, push the Commit button to send it to the database. As a confirmation you will see a number uniquely identifying the issue you've just filed.

    • If you have some additional files relevant to the issue, click on the Add Attachment link in the page you get after the previous step. You'll be asked to provide the following info:

      • the location of file to be sumbitted on your local machine
      • a one-line description of the attachment
      • the type of file being attached (plain text, diff, HTML, GIF, JPEG, PNG, binary)

      Push the Submit button to attach the file to the issue report.

  5. Should you have any questions or comments regarding the issue handling process, please contact qa@netbeans.org.