2.3. How do I use Bugzilla?


Hey! I'm Woody! Howdy, Howdy, Howdy!

Bugzilla is a large, complex system. Describing how to use it requires some time. If you are only interested in installing or administering a Bugzilla installation, please consult the Installing and Administering Bugzilla portions of this Guide. This section is principally aimed towards developing end-user mastery of Bugzilla, so you may fully enjoy the benefits afforded by using this reliable open-source bug-tracking software.

Throughout this portion of the Guide, we will refer to user account options available at the Bugzilla test installation, landfill.tequilarista.org.


Some people have run into difficulties completing this tutorial. If you run into problems, please check the updated online documentation available at http://www.trilobyte.net/barnsons. If you're still stumped, please subscribe to the newsgroup and provide details of exactly what's stumping you! If enough people complain, I'll have to fix it in the next version of this Guide. You can subscribe to the newsgroup at news://news.mozilla.org/netscape.public.mozilla.webtools

Although Landfill serves as a great introduction to Bugzilla, it does not offer all the options you would have as a user on your own installation of Bugzilla, nor can it do more than serve as a general introduction to Bugzilla. Additionally, Landfill often runs cutting-edge versions of Bugzilla for testing, so some things may work slightly differently than mentioned here.

2.3.1. Create a Bugzilla Account

First things first! If you want to use Bugzilla, first you need to create an account. Consult with the administrator responsible for your installation of Bugzilla for the URL you should use to access it. If you're test-driving the end-user Bugzilla experience, use this URL: http://landfill.tequilarista.org/bugzilla-tip/

  1. Click the "Open a new Bugzilla account" link.

  2. Enter your "E-mail address" and "Real Name" (or whatever name you want to call yourself) in the spaces provided, then select the "Create Account" button.

  3. Within moments, you should receive an email to the address you provided above, which contains your login name (generally the same as the email address), and a password you can use to access your account. This password is randomly generated, and should be changed at your nearest opportunity (we'll go into how to do it later).

  4. Click the "Log In" link in the yellow area at the bottom of the page in your browser, then enter your "E-mail address" and "Password" you just received into the spaces provided, and select "Login".


    If you ever forget your password, you can come back to this page, enter your "E-mail address", then select the "E-mail me a password" button to have your password mailed to you again so that you can login.


    Many modern browsers include an "Auto-Complete" or "Form Fill" feature to remember the user names and passwords you type in at many sites. Unfortunately, sometimes they attempt to guess what you will put in as your password, and guess wrong. If you notice a text box is already filled out, please overwrite the contents of the text box so you can be sure to input the correct information.

Congratulations! If you followed these directions, you now are the proud owner of a user account on landfill.tequilarista.org (Landfill) or your local Bugzilla install. You should now see in your browser a page called the "Bugzilla Query Page". It may look daunting, but with this Guide to walk you through it, you will master it in no time.

2.3.2. The Bugzilla Query Page

The Bugzilla Query Page is the heart and soul of the Bugzilla user experience. It is the master interface where you can find any bug report, comment, or patch currently in the Bugzilla system. We'll go into how to create your own bug report later on.

There are efforts underway to simplify query usage. If you have a local installation of Bugzilla 2.12 or higher, you should have quicksearch.html available to use and simplify your searches. There is also a helper for the query interface, called queryhelp.cgi. Landfill tends to run the latest code, so these two utilities should be available there for your perusal.

At this point, please visit the main Bugzilla site, bugzilla.mozilla.org, to see a more fleshed-out query page.

The first thing you need to notice about the Bugzilla Query Page is that nearly every box you see on your screen has a hyperlink nearby, explaining what it is or what it does. Near the upper-left-hand corner of your browser window you should see the word "Status" underlined. Select it.

Notice the page that popped up? Every underlined word you see on your screen is a hyperlink that will take you to context-sensitive help. Click around for a while, and learn what everything here does. To return to the query interface after pulling up a help page, use the "Back" button in your browser.

I'm sure that after checking out the online help, you are now an expert on the Bugzilla Query Page. If, however, you feel you haven't mastered it yet, let me walk you through making a few successful queries to find out what there are in the Bugzilla bug-tracking system itself.

  1. Ensure you are back on the "Bugzilla Query Page". Do nothing in the boxes marked "Status", "Resolution", "Platform", "OpSys", "Priority", or "Severity". The default query for "Status" is to find all bugs that are NEW, ASSIGNED, or REOPENED, which is what we want. If you don't select anything in the other 5 scrollboxes there, then you are saying that "any of these are OK"; we're not locking ourselves into only finding bugs on the "DEC" Platform, or "Windows 95" OpSys (Operating System). You're smart, I think you have it figured out.

    Basically, selecting anything on the query page narrows your search down. Leaving stuff unselected, or text boxes unfilled, broadens your search.

  2. You see the box immediately below the top six boxes that contains an "Email" text box, with the words "matching as", a drop-down selection box, then some checkboxes with "Assigned To" checked by default? This allows you to filter your search down based upon email address. Let's put my email address in there, and see what happens.

    Type "barnboy@trilobyte.net" in the top Email text box.

  3. Let's narrow the search some more. Scroll down until you find the box with the word "Program" over the top of it. This is where we can narrow our search down to only specific products (software programs or product lines) in our Bugzilla database. Please notice the box is a scrollbox. Using the down arrow on the scrollbox, scroll down until you can see an entry called "Bugzilla". Select this entry.

  4. Did you notice that some of the boxes to the right changed when you selected "Bugzilla"? Every Program (or Product) has different Versions, Components, and Target Milestones associated with it. A "Version" is the number of a software program.

    Example 2-1. Some Famous Software Versions

    Do you remember the hype in 1995 when Microsoft Windows 95(r) was released? It may have been several years ago, but Microsoft(tm) spent over $300 Million advertising this new Version of their software. Three years later, they released Microsoft Windows 98(r), another new version, to great fanfare, and then in 2000 quietly released Microsoft Windows ME(Millenium Edition)(r).

    Software "Versions" help a manufacturer differentiate their current product from their previous products. Most do not identify their products by the year they were released. Instead, the "original" version of their software will often be numbered "1.0", with small bug-fix releases on subsequent tenths of a digit. In most cases, it's not a decimal number; for instance, often 1.9 is an older version of the software than 1.11, but is a newer version than 1.1.1.

    In general, a "Version" in Bugzilla should refer to released products, not products that have not yet been released to the public. Forthcoming products are what the Target Milestone field is for.

    A "Component" is a piece of a Product. It may be a standalone program, or some other logical division of a Product or Program. Normally, a Component has a single Owner, who is responsible for overseeing efforts to improve that Component.

    Example 2-2. Mozilla's Bugzilla Components

    Mozilla's "Bugzilla" Product is composed of several pieces (Components):

    Administration, Administration of a bugzilla installation, including editcomponents.cgi, editgroups.cgi, editkeywords.cgi, editparams.cgi, editproducts.cgi, editusers.cgi, editversions.cgi, and sanitycheck.cgi.
    Bugzilla-General, Anything that doesn't fit in the other components, or spans multiple components.
    Creating/Changing Bugs, Creating, changing, and viewing bugs. enter_bug.cgi, post_bug.cgi, show_bug.cgi and process_bug.cgi.
    Documentation, The bugzilla documentation, including anything in the docs/ directory and The Bugzilla Guide (This document :)
    Email, Anything to do with email sent by Bugzilla. processmail
    Installation, The installation process of Bugzilla. This includes checksetup.pl and whatever else it evolves into.
    Query/Buglist, Anything to do with searching for bugs and viewing the buglists. query.cgi and buglist.cgi
    Reporting/Charting, Getting reports from Bugzilla. reports.cgi and duplicates.cgi
    User Accounts, Anything about managing a user account from the user's perspective. userprefs.cgi, saved queries, creating accounts, changing passwords, logging in, etc.
    User Interface, General issues having to do with the user interface cosmetics (not functionality) including cosmetic issues, HTML templates, etc.

    A "Milestone", or "Target Milestone" is a often a planned future "Version" of a product. In many cases, though, Milestones simply represent significant dates for a developer. Having certain features in your Product is frequently tied to revenue (money) the developer will receive if the features work by the time she reaches the Target Milestone. Target Milestones are a great tool to organize your time. If someone will pay you $100,000 for incorporating certain features by a certain date, those features by that Milestone date become a very high priority. Milestones tend to be highly malleable creatures, though, that appear to be in reach but are out of reach by the time the important day arrives.

    The Bugzilla Project has set up Milestones for future Bugzilla versions 2.14, 2.16, 2.18, 3.0, etc. However, a Target Milestone can just as easily be a specific date, code name, or weird alphanumeric combination, like "M19".

  5. OK, now let's select the "Bugzilla" component from its scrollbox.

  6. Skip down the page a bit -- do you see the "submit query" button? Select it, and let's run this query!

  7. Congratulations! You've completed your first Query, and have before you the Bug List of the author of this Guide, Matthew P. Barnson (barnboy@trilobyte.net). If I'm doing well, you'll have a cryptic "Zarro Boogs Found" message on your screen. It is just a happy hacker's way of saying "Zero Bugs Found". However, I am fairly certain I will always have some bugs assigned to me that aren't done yet, so you won't often see that message!

I encourage you to click the bug numbers in the left-hand column and examine my bugs. Also notice that if you click the underlined links near the top of this page, they do not take you to context-sensitive help here, but instead sort the columns of bugs on the screen! When you need to sort your bugs by priority, severity, or the people they are assigned to, this is a tremendous timesaver.

A couple more interesting things about the Bug List page:

Change Columns: by selecting this link, you can show all kinds of information in the Bug List
Change several bugs at once: If you have sufficient rights to change all the bugs shown in the Bug List, you can mass-modify them. This is a big time-saver.
Send mail to bug owners: If you have many related bugs, you can request an update from every person who owns the bugs in the Bug List asking them the status.
Edit this query: If you didn't get exactly the results you were looking for, you can return to the Query page through this link and make small revisions to the query you just made so you get more accurate results.


There are many more options to the Bugzilla Query Page and the Bug List than I have shown you. But this should be enough for you to learn to get around. I encourage you to check out the Bugzilla Home Page to learn about the Anatomy and Life Cycle of a Bug before continuing.

2.3.3. Creating and Managing Bug Reports


And all this time, I thought we were taking bugs out... Writing a Great Bug Report

Before we plunge into writing your first bug report, I encourage you to read some bug-writing guidelines. If you are reading this document as part of a Bugzilla CVS checkout or un-tarred Bugzilla distribution, you should be able to read them by clicking here. If you are reading this online, check out the Mozilla.org bug-writing guidelines at http://www.mozilla.org/quality/bug-writing-guidelines.html. While some of the advice is Mozilla-specific, the basic principles of reporting Reproducible, Specific bugs, isolating the Product you are using, the Version of the Product, the Component which failed, the Hardware Platform, and Operating System you were using at the time of the failure go a long way toward ensuring accurate, responsible fixes for the bug that bit you.

While you are at it, why not learn how to find previously reported bugs? Mozilla.org has published a great tutorial on finding duplicate bugs, available at http://www.mozilla.org/quality/help/beginning-duplicate-finding.html.

I realize this was a lot to read. However, understanding the mentality of writing great bug reports will help us on the next part!

  1. Go back to http://landfill.tequilarista.org/bugzilla-tip/ in your browser.

  2. Select the Enter a new bug report link.

  3. Select a product.

  4. Now you should be at the "Enter Bug" form. The "reporter" should have been automatically filled out for you (or else Bugzilla prompted you to Log In again -- you did keep the email with your username and password, didn't you?).

  5. Select a Component in the scrollbox.

  6. Bugzilla should have made reasonable guesses, based upon your browser, for the "Platform" and "OS" drop-down boxes. If those are wrong, change them -- if you're on an SGI box running IRIX, we want to know!

  7. Fill in the "Assigned To" box with the email address you provided earlier. This way you don't end up sending copies of your bug to lots of other people, since it's just a test bug.

  8. Leave the "CC" text box blank. Fill in the "URL" box with "http://www.mozilla.org".

  9. Enter "The Bugzilla Guide" in the Summary text box, and place any comments you have on this tutorial, or the Guide in general, into the Description box.

Voila! Select "Commit" and send in your bug report! Next we'll look at resolving bugs. Managing your Bug Reports

OK, you should have a link to the bug you just created near the top of your page. It should say "Bug XXXX posted", with a link to the right saying "Back to BUG# XXXX". Select this link.

  1. Scroll down a bit on the subsequent page, until you see the "Resolve bug, changing resolution to (dropdown box). Normally, you would "Accept bug (change status to ASSIGNED)", fix it, and then resolve. But in this case, we're going to short-circuit the process because this wasn't a real bug. Change the dropdown next to "Resolve Bug" to "INVALID", make sure the radio button is marked next to "Resolve Bug", then click "Commit".

  2. Hey! It said it couldn't take the change in a big red box! That's right, you must specify a Comment in order to make this change. Select the "Back" button in your browser, add a Comment, then try Resolving the bug with INVALID status again. This time it should work.

You have now learned the basics of Bugzilla navigation, entering a bug, and bug maintenance. I encourage you to explore these features, and see what you can do with them! We'll spend no more time on individual Bugs or Queries from this point on, so you are on your own there.

But I'll give a few last hints!

There is a CLUE on the Query page that will teach you more how to use the form.

If you click the hyperlink on the Component box of the Query page, you will be presented a form that will describe what all the components are.

Possibly the most powerful feature of the Query page is the Boolean Chart section. It's a bit confusing to use the first time, but can provide unparalleled flexibility in your queries, allowing you to build extremely powerful requests.

Finally, you can build some nifty Reports using the "Bug Reports" link near the bottom of the query page, and also available via the "Reports" link at the footer of each page.