Rethinking CS101 User Feedback
Bugzilla Version 2.16.5
Help
  This page is to help you learn how to use the query form.

Help Using The Bugzilla Query Form
January, 20 2001 - Brian Bober (netdemon).
Further heavy mutiliations by Tara Heranandez, April 20, 2001.

Da Ant


The Sections

The query page is broken down into the following sections:

Bug Settings
People Involved
Text Search Options
Module Options
Advanced Querying
The Bottom Of The Form

"I already know how to use Bugzilla, but would like information about Bugzilla and the author of this document."
"Ok, I am almost certain the bug I discovered isn't in Bugzilla, how do I submit the bug?" - Read the guidelines first!


Tips

You don't have to fill out any field on the query page you don't need. Filling out fields will limit your search. On the list boxes, such as Status, you can Ctrl-Click to unselect an option. Until you get better, you can use the "brute force" method where you enter a very simple query and search through the long list of bugs manually. Just try not to overuse this method if you don't have to as you might be slowing down the search for other people if there are many people searching at the same time. Finally, I would recommend learning the Boolean Chart immediately because it is extremely powerful. Also, there is a navigation bar at the bottom of most Bugzilla pages, and important links at the front page.

Back to the Query. If you typed anything in the forms already, you might want to hit back on the browser. When you are all done reading, do a sample query!


Bug Settings

Status: Resolution: Platform: OpSys: Priority: Severity:

The status and resolution field define and track the life cycle of a bug. Platform and opsys describe the system which the bug is on. Priority and Severity are for tracking purposes.

Status

Resolution

The resolution field indicates what happened to this bug.

No resolution yet: All bugs which are in one of the "open" states (meaning the state has no associated resolution) have the resolution set to blank. All other bugs will be marked with one of the following resolutions.

Platform

The platform field is the hardware platform against which the bug was reported. Legal platforms include but are not limited to:

Note: Selecting the option "All" does not select bugs assigned against all platforms. It merely selects bugs that occur on all platforms.

Operating System

The operating system field is the operating system against which the bug was reported. Legal operating systems include but are not limited to:

Note that the operating system implies the platform, but not always. For example, Linux can run on PC and Macintosh and others.

Priority

The priority field describes the importance and order in which a bug should be fixed. This field is utilized by the programmers/engineers to prioritize their work. The priorities are from P1 (Most important) to P5 (Least important).

Severity

The Severity field describes the impact of a bug.


People Involved

Email:  matching as:
Will match any of the following selected fields:
Assigned To Reporter QA Contact
CC Added comment

This section has been made more complicated in order to make it more powerful. Unfortunately, it is not the easiest to understand. What this section lets you do is search for bugs associated with a certain email address.

To search for bugs associated with an email address:

You can look for up to two different email addresses. If you specify both, then only bugs which match both emails will show up. This is useful to find bugs that were, for example, created by Ralph and assigned to Fred.

You can also use the drop down menus to specify whether you want to match addresses by doing a substring match, by using Regular Expressions, or by exactly matching a fully specified email address.


Text Search

Bug summary:
A description entry:
Associated URL:
Status whiteboard:
Keywords:

In this section, you can enter values that are searched for in all the bugs (or whatever you limit the bugs to in other fields). You might want to look at Bugzilla Text Searching to see info on Regular Expressions and text searching. The box next to these fields decides how a match will be determined.

Bug summary

This lets you search the summaries. The summary is one line that attempts to sum up the bug.

A description entry

This lets you search comments. Comments can be added by anybody. Comments are the largest searchable area in most bugs. If you really want to find a lot of matches, search the comments.
Note:Because comments can get quite extensive in bugs, doing this particular type of query can take a long time.

Associated URL

This lets you search the url field. This contains the url of the web page the bug is about.

Status Whiteboard

This lets you search the bug's status whiteboard. The status whiteboard contains general information that engineers add.

Keywords



Each bug can have keywords specified. The bug reporter or a user with the proper permissions can edit these keywords. The following is a list of the keywords that are stored on this version of Bugzilla:

Name Description Bugs


Module Options


Module options are where you select what product, module and version the bugs you want to find describe. Selecting one or more of the products, versions, components, or milestones will limit your search.

Products

Although all subprojects within the Mozilla project are similar, there are several seperate products being developed. Each product has its own components.

Product Description
IDE integrationThis is where you tell us what went wrong when you tried to use our problem sets with CodeWarrior, JBuilder, SunOne Studio, BlueJ, Emacs, Notepad/Windows, or any other Integrated (or not so integrated) Development Environment.
IPIJ (Textbook)This is where you should address typos, confusions, and suggestions involving Introductory Programming In Java, the text for our curriculum. Technical issues with the web version of the text such as missing pages and bad links from the text to the rest of the website should be reported under the website product. Broken Links between sections of the text should (ideally) be reported here.
Java CodeThis encompasses anything we give you the Java source code for, or to a limited extent any issues getting our code to work with your code or 3rd party code. Compile time errors, runtime errors, usability issues, proposed code for problem sets, or other code related enhancements should go here.
Our BugzillaThis is where you can attempt to tell us that some portion of our bugzilla is doing something confusing or appears to be broken. Obviously, this only works if Bugzilla is mostly working.
TestProductThis is a test product. When we want to see if something in bugzilla is working, we test it here. Not for public use.
WebsitesThis includes all web pages and on line resources for Rethinking CS101, other than suggestions regarding the content of the book, Introductory Programming In Java. Broken links, typos, download problems, access problems, unclear instructions, and really anything that doesn't involve hacking around in Java Source code, or Integrated Development Environments.

Version

This is simply the version that the bugs you want to find are marked for. Many of the bugs will be marked for another version and will have their milestones entered instead (milestones explained below).

Component

Each product has components, against which bugs can be filed. Components are parts of the product, and are assigned to a module owner. The following lists components and their associated products:

Component Product Description
GeneralIDE integrationIf you don't see a more specific category into which your suggestion fits, put it here.
A - Front MatterIPIJ (Textbook)This is where to report problems with the table of contents, preface, etc.
B - Introductory ChapterIPIJ (Textbook)The first chapter.
C - Interlude: Interacting EntitiesIPIJ (Textbook)The interlude that comes after the first chapter (at least currently).
CA - Software Engineering ChapterIPIJ (Textbook)The new second chapter of the book (recently emailed)
D - Things, Types and Names ChapterIPIJ (Textbook)Originally chapter 2. This is the chapter that introduces types.
E - Interfaces ChapterIPIJ (Textbook)Originally chapter 3, this chapter introduces interfaces
F - Expressions ChapterIPIJ (Textbook)Originally chapter 4, This chapter introduces expressions.
G - Statements and Rules ChapterIPIJ (Textbook)Originally chapter 5, This chapter differentiates expressions from statements and differentiates statement types
H - Interlude: Expressions and StatementsIPIJ (Textbook)This is the second Interlude. It contains the Etch-a-Sketch(R) based example.
I - Classes and Objects ChapterIPIJ (Textbook)Originally the 6th chapter, this chapter Introduces Classes and Objects
J - Design with Objects ChapterIPIJ (Textbook)Originally chapter 7, this chapter further expands the notion and use of objects
K - Animate Objects ChapterIPIJ (Textbook)Originally chapter 8, This chapter introduces the AnimateObject class (Threads dressed up)
L - Exceptions ChapterIPIJ (Textbook)Originally chapter 9, This chapter Introduces Exceptions and Exception Handling.
M - Inheritance ChapterIPIJ (Textbook)Originally Chapter 10, This chapter introduces subclasses and inheritance
N - Dispatch ChapterIPIJ (Textbook)Originally Chapter 11, this chapter introduces dynamic dispatch
O - Encapsulation ChapterIPIJ (Textbook)Originally Chapter 12, this chapter descusses design of classes to encapsulate and protect data.
P - Intelligent Objects ChapterIPIJ (Textbook)Originally chapter 13, This chapter discusses implicit dispach and introduces recursion
Q - Event Drivin Programing ChapterIPIJ (Textbook)Originally Chapter 14, This chapter Introduces Events andd EventHandlers
R - AWT ChapterIPIJ (Textbook)Originally chapter 15, This chapter discusses event delegation and AWT
S - Communications Pattern ChapterIPIJ (Textbook)Originally chapter 16, This chapter discusses Client-server and push-pull relationships
T - Synchronization ChapterIPIJ (Textbook)Originally chapter 17, This chapter introduces synchronization of objects.
U - Network Programming chapterIPIJ (Textbook)Originally chapter 18, This chapter discusses streams/channels and Network Programming.
V - ApendiciesIPIJ (Textbook)This section is for reporting problems with any of the 5 apendices, including the Glossary.
Z - GeneralIPIJ (Textbook)If you don't see a more specific category into which your suggestion fits, put it here.
Balance Problem SetJava CodeInteractive Control loops are introduced with this problem set which models a teeter-totter.
Ball World Problem SetJava CodeA problem set that teaches Interfaces, Objects and Classes using variety of graphical balls with various behaviors.
Calculator Problem SetJava CodeThis problem teaches Event Dispach by implementing a simple calculator application.
Cat and Mouse Problem SetJava CodeA simple networked video game is built in this problem set to introuduce network communications.
cs101 packageJava CodeThe core package on which all problem sets rely.
Etch-a-Sketch Problem SetJava CodeThis is an update of the misnamed Spirograph problem set. It also teaches expressions and statements with a simple drawing utility.
GeneralJava CodeIf you don't see a more specific category into which your suggestion fits, put it here.
Java Eyes Problem SetJava CodeAn introductory problem set creating a pair of googly on the screen.
Node Net Problem SetJava CodeStudents learn about systems of objects by constructing networks of simple nodes and channels to create novel behaviors.
Pig LatinJava CodeA problem set under development
Producers and ConsumersJava CodeA problem set under development
Scribble Problem SetJava CodeGraphical User Interfaces are introduced in this problem set, and students build a simple drawing program.
Shared White Board Problem SetJava CodeStudents write clients based on the solution to the Scribble problem set to communicate with a server and create networked graphical communications.
Spirograph Problem SetJava CodeA problem set that teaches expressions and statements with a simple drawing utility.
String TransformersJava CodeA problem set under Development
GeneralOur BugzillaIf you don't see a more specific category into which your suggestion fits, put it here.
TestComponentTestProductThis is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.
BackendWebsitesThis is where administrative problems should be logged. Generally problems in this category will only be reported by people who physically log into our servers.
GeneralWebsitesIf you don't see a more specific category into which your suggestion fits, put it here.
Problem Set Hand-outsWebsitesAnything about the web deployed versions of our problem set handouts.
WikiWebsitesProblems with the cs101 wiki

Milestone

Choosing this section lets you search through bugs that have their target milestones set to certain values. Milestones are kind of like versions. They are specific tentative dates where a massive phasing out of bugs occur and a relatively stable release is produced. For example, Mozilla.org had milestones in the form of "M10" or "M18", but now are in the form of "Mozilla0.9". Bugzilla milestones are in the form of "Bugzilla 2.12", "Bugzilla 2.14", etc.


Inclusion/Exclusion Options

bugs numbered:
Changed in the last days
Containing at least votes
Where the field(s) changed to
During dates to

Inclusion/Exclusion options is a powerful section that gives you the ability to include and exclude bugs based on values you enter.

[Only, Exclude] bugs numbered [text]

This lets you put in a comma-delimited list of bugs you want to have your results chosen from, or those of which you want to exclude. It would be nice in the future if you could type in ranges, i.e. [1-1000] for 1 to 1000. Unfortunately, you cannot do that as of now.

Changed in the last [text] days

Lets you specify how many days ago - at maximum - a bug could have changed state.

At least [text] votes

With this, you can choose how many votes - at minimum - a bug has.

Where the field(s) [fields] changed to [text]

With this, you can specify values to search for in fields that exist in the bug If you choose one or more fields, you have to fill out one of the fields to the right. It might be difficult to figure out what these fields mean if you are a newbie to the query. They match various fields within the bug information. Optionally, you can also enter what value you want the field to have changed to if you only entered one field. For instance, if the bug changed who it was assigned to from jon@netscape.com to brian@netscape.com , you could enter in assigned_to changed to brian@netscape.com.

During dates [text] to [text]

Here, you can choose what dates the fields changed. "Now" can be used as an entry. Other entries should be in mm/dd/yyyy or yyyy-mm-dd format.


Advanced Querying Using "Boolean Charts"

The Bugzilla query page is designed to be reasonably easy to use. But, with such ease of use always comes some lack of power. The Advanced Querying section is designed to let you do very powerful queries, but it's not the easiest thing to learn (or explain).

 
       

The Advanced Query (or Boolean Chart) starts with a single "term". A term is a combination of two pulldown menus and a text field. You choose items from the menus, specifying:

Field 1: Where to look for the search term
Field 2: How to determine what is a match
Field 3: What the search term is

 
OR
       

The real fun starts when you click on the "Or" or "And" buttons. If you push the "Or" button, then you get a second term right under the first one. You can then configure that term, and the result of the query will be anything that matches either of the terms.

 
 AND
 
       

You can push the "And" button, and get a new term below the original one - seperated by the word "AND", and now the result of the query will be anything that matches both sets of terms.

You can keep clicking "And" and "Or", and get a page with many terms. "Or" has higher precedence than "And". You can think of the lines of "Or" as having parenthesis around them.

 

 
       

The most subtle thing to notice is the "Add another boolean chart" button. This is almost the same thing as the "And" button. You want to use this when you use one of the fields where several items can be associated with a single bug - including: "Comments", "CC", and all the "changed [something]" entries. If you have multiple terms that all are about one of these fields (such as one comment), it's ambiguous whether they are allowed to be about different instances of that field or about only that one instance. So, to let you have it both ways, they always mean the same instance, unless the terms appear on different charts.

For example: if you search for "priority changed to P5" and "priority changed by person@addr", it will only find bugs where the given person at some time changed the priority to P5. However, if what you really want is to find all bugs where the milestone was changed at some time by the person, and someone (possibly someone else) at some time changed the milestone to P5, then you would put the two terms in two different charts.

The Rest of the Form

Load the remembered query:
Run the remembered query:
Forget the remembered query:
Remember this as the default query
Remember this query, and name it:
Sort By:

So you have gotten all that down, but "What is this junk at the bottom of the form?" You can remember the current query as the default query page that is pulled up whenever you are logged on. There is also an ability to choose how you want your results sorted. When finished, click "Submit".

About This Document

Written and adapted from some older Bugzilla documents (by Terry Weissman, Tara Hernandez and others) by Brian Bober You can talk to me on irc.mozilla.org - #mozilla, #mozwebtools, #mozillazine, I go by the name netdemon.

Lots of Bugzilla use documention is available through Mozilla.org and other sites:
How To Find Previously Reported Bugs
Bugzilla General Information
Mozilla Bug Report Form
Bugzilla Text Searching
The Bug Reporting Guidelines

My main motive for writing this was to help the engineers by giving new Bugzilla users a way to learn how to use the Bugzilla Query form. I had done a rewrite of query.cgi, so I said, "What the heck, I'll write this too".


Why Use This?

You probably looked at the Query page and said, "This page looks too difficult. Now that I think about it, I don't really need to do a query". It is important to make sure that a bug doesn't have a duplicate before submitting it, as is stated clearly in The Bug Reporting Guidelines. The people reading your bugs are busy and usually swamped with bugs. Therefore, you are doing everyone a huge favor to search for a duplicate.


Sample Query

Ok. So lets find a bug! We'll borrow the Mozilla.org database because it's handy.
First, lets make a copy of the query window so you can easily switch between this document and the query.

Do the following:

One of the results should have been bug 22775 - [RFE] AutoScroll/Panning support...


This is Bugzilla: the Mozilla bug system. For more information about what Bugzilla is and what it can do, see bugzilla.org.
Actions: New | Query | bug # | Reports   New Account | Log In