|
|
The Gecko BugAThon
Help save Gecko engineers from imminent doom!
Contents:
What is the BugAThon?
A call for volunteers: a quick check in Bugzilla shows that Tom Pixley,
Chris Karnaze, Kipp Hickman, and Eric Pollman currently have 371 open bugs
between them, of which 300 have blank status entries and need to be decomposed
to a simple test case. Collectively, they are The Most Doomed of the Doomed.
Do you care about web standards? Do you hate working around browser
bugs? Don't just stand there--with engineers bleeding by the side of the
road to shipping Gecko, are you going to be the Philistine or the Good
Samaritan?
You can help, and you don't need to be a C++ engineer! Simplifying bug
reports to the simplest possible test case doesn't take too long per bug,
but when you've got this many bugs, it really adds up. And every hour Gecko
engineers spend decomposing bug reports is an hour they can't spend on
FIXING bugs. The more bugs net volunteers simplify, the faster Gecko engineers
can fix them, and the fewer bugs we'll ship!
So, in the spirit of public television telethons, here's the deal: if
you sign up and decompose to a simple test case the listed number of bugs
to the owner's satisfaction, you will earn the listed valuable reward:
| Pledge Level |
Reward |
| 5 bugs |
invitation to the Gecko launch party |
| 10 bugs |
the invitation, plus an attractive Gecko stuffed animal |
| 12 bugs |
the invitation, plus an attractive Gecko stuffed animal autographed
by Rick Gessner, the Father of Gecko |
| 15 bugs |
the invitation, plus a Gecko T-shirt |
| 17 bugs |
the invitation, plus a Gecko T-shirt signed by the grateful engineer |
| 20 bugs |
the invitation, plus a Gecko T-shirt signed by the whole raptor team |
What is a Simplified Test Case, and How Do I Sign
Up to Make One?
A simplified test case means the simplest possible web page that still
reproduces the bug. If you remove any more characters from the file of
the simplified test case, you no longer see the bug. To turn a web page
that shows a bug into a simplified test case, you:
-
Open a Bugzilla
account and download the latest
milestone build of the Mozilla browser.
-
To claim a bug, choose one of the open bugs from the search links below
and enter [MAKINGTEST] and your email address in the "Status Whiteboard"
field so others know you've claimed it and effort isn't duplicated.
-
Download the web page that shows the bug to your local machine.
-
Make sure to download any linked JavaScript .js files, CSS .css files,
frameset .html files, or image files as well. You can find the names of
those files and figure out the URLs to get them by doing a View-->Page
Source on the main page. For example, if http://www.foo.com/resume.html
contains an IMG link to mypicture.jpeg, you'll want to type http://www.foo.com/mypicture.jpeg
into the browser, then right click over the image and Save Image As ...
to the same directory you put resume.html in.
-
Using a text editor (like Notepad on Windows, SimpleText on the Mac, or
vi or emacs on UNIX), start removing HTML markup, CSS rules, and lines
of JavaScript from the page. Start by removing the parts of the page that
seem unrelated to the bug. Every few minutes, check the page to make sure
it still reproduces the bug.
-
When you've cut away as much HTML, CSS, and JavaScript as you can, and
cutting away any more causes the bug to disappear, you're done. Attach
the test case to the Bugzilla bug report (as a ZIP file if the test case
includes multiple files) and mark the bug [TESTCASE] in the "Status
Whiteboard" field so engineering knows the bug is ready to be crushed.
The Rules
Please only claim five bugs at a time and decompose those five bugs to
test cases before you claim the next five. This is to prevent people from
signing up from 20 bugs, procrastinating, and then dropping out of the
BugAThon, which would prevent others from claiming the bugs and the prizes.
The fine print:
-
bugs resolved as DUPs (duplicate of another bug report), WORKSFORME (when
you do the test yourself, you don't see the bug), and INVALID (reporter
misunderstanding or other problem with the report) instead of as valid
with a simplified test case only score as half a bug each. Example: 9 valid
bugs with test cases plus 2 DUPs plus 4 WORKSFORME count as 12 "finished"
bugs and earn you an autographed stuffed animal.
-
If a testcase already exists as an attachment or is referenced within the
notes and you verify that it's definitive and can't be simplified further,
that counts.
-
If you get all the way up to the group-signed T-Shirt, you *can* qualify
for a stuffed animal as well by doing 12 more.
To qualify as a finished bug, the bug must be completed with:
-
an attached simplest-as-possible test case
-
the summary line updated if necessary
-
a status message reading [TESTCASE] plus a statement of what needs to be
fixed to the extent you can explain it
-
the description written up in accordance with the mozilla bug writing guidelines
at http://www.mozilla.org/quality/bug-writing-guidelines.html
-
the engineer's verbal agreement to me (when the prize is claimed) that
it's been decomposed satisfactorily
When you're ready to claim your bounty for squashing your bugs, email ekrock@netscape.com
with:
i) your name
ii) your physical mailing address
iii) your list of finished bugs
iv) your score (iii modified for DUPs/WORKSFORME/INVALID)
v) the reward(s) you're claiming
vi) your T-shirt size if claiming a T-shirt
So it's a race! The easiest bugs will go first, so act now to claim
and crush YOUR bugs. Ladies and gentlemen, start your browsers!!!
How to Find Open Bugs that Need a Test Case
Use these links to find open bugs that need a test case:
Or, if you prefer, you can go to http://bugzilla.mozilla.org/query.cgi
and manually search with these parameters:
| Status |
NEW or ASSIGNED or REOPENED |
[select all 3] |
| Email |
karnaze |
Assigned To |
| Status whiteboard |
(\w*\W*)*(\[TESTCASE\]|\[DONTTEST\]|\[NOTESTCASENEEDED\]|\[MAKINGTEST\]|\[HAVE)(\w*\W*)* |
not (regular expression) |
Substitute another email address from the list above to find another
engineer's bugs.
If you want to look at [TESTCASE] bugs (bugs which already have a finished
test case), you can use these links: Vidur,
Tom,
Chris,
Eric,
and Kipp.
What Do All Those Codes Mean? What Codes Should I Use?
For a complete, up-to-date list of codes used in Bugzilla bug reports,
see code
definitions for bugzilla. Here's a brief summary of the codes most
relevant to the BugAThon. Hints for proper code usage:
-
codes are preceded and followed by square brackets (e.g. [LAYER], not LAYER)
-
codes should be in all-caps (e.g. [LAYER], not [Layer] or [layer])
-
codes should use alphanumeric characters (A..Z0..9) only; don't use special
characters like hypens, periods, colons, apostrophes, etc.
-
in multi-word codes, just jam the words together; don't separate them with
spaces, hyphens, etc. (e.g. [DONTTEST], not [DONT TEST])
There are exceptions to these rules based on historical usage. code
definitions for bugzilla is the definitive reference when in doubt.
These codes are used in the Summary field to describe a bug:
| Code |
Meaning |
| [4.xP] |
Because of this bug, Mozilla is not currently backwardly-compatible
with the behavior of Navigator 4.x. (The code stands for "4.x Parity.") |
| [LAYER] |
This tag has two meanings. Rarely, it means "Mozilla is not ignoring
the LAYER tag, as it should." But usually it means "This bug is INVALID;
the page lays out poorly because it uses the LAYER tag, ILAYER tag, document.layers[],
document.all(), and/or related proprietary features of Navigator 4.x markup
and the Navigator 4.x DOM or the IE DOM." See Update:
All LAYER, ILAYER, document.layers[], document.all(), and User Agent Bugs
Must Be INVALIDated! for more about this. |
| [USERAGENT] |
This bug is INVALID; the page lays out poorly because the site is failing
to detect the Mozilla/5.0 user agent string and returning a page that is
optimized for some other browser. |
These codes are used in the Status field to describe a bug's status
in the BugAThon:
| Code |
Meaning |
| [DONTTEST] |
For some reason, this bug does not need a test case, so no one should
sign up to create one. For example, this bug might be a reminder from engineering
to itself that internal changes need to be made in the code. Putting [DONTTEST]
in the Status field removes the bug from the lists
of bugs that need test cases. |
| [MAKINGTEST] |
A volunteer has signed up to create a test case for this bug. Putting
[MAKINGTEST]
in the Status field removes the bug from the lists
of bugs that need test cases. It should be followed by the volunteer's
email address so we know who signed up. |
| [TESTCASE] |
A volunteer has finished a test case for this bug. Putting [TESTCASE]
in the Status field removes the bug from the lists
of bugs that need test cases. |
Update: Vidur Apparao added to the BugAThon for Document
Object Model Bugs!
Just two weeks ago, Vidur was concerned that he didn't have enough Document
Object Model (DOM) bugs filed against him, and he even asked me to help
get more people testing our DOM support.
What's the DOM? The DOM is the object model of HTML elements on the
page which we access from JavaScript. It has three levels:
-
The DOM level 0 has no formal definition, but it refers to the core browser
DOM for forms, frames, windows, and events that was supported by Nav3 and
IE3. It's important to make sure Gecko's support for DOM0 is solid to avoid
breaking the JavaScript pages that are out on the web already. The DOM0
includes HTML document objects like document.forms[index],
images[],
applets[], links[], forms[], and anchors[]; document methods
like open(), write(), and close(); the window
object and methods; and HTML events such as onclick, mouseover,
and
onsubmit.
-
The DOM level 1 is the industry standard Document Object Model formally
defined by the W3C with Core language-independent features (such as the
Node interface for getting and setting attributes) as well as HTML-specific
features, many of which are also considered "DOM0" functionality.
-
The DOM level 2 is currently under development. It adds features such as
event capturing, handling, and bubbling and the ability to set style sheet
properties.
In a classic example of how you should be careful what you ask for, suddenly
Vidur's open bug count has jumped from 40 to 112--and I haven't yet lifted
a finger! Vidur swears he didn't have one too many at the cantina
before the last milestone. We have our doubts, especially because he was
in charge of moving the bottomless keg from Building 22 to Building 21,
and we think he may have taken personal responsibility for "cleaning it
out" before the move. (Vidur's a very conscientious guy, you see.)
We'll be watching Vidur (and the keg!) more closely in the future. In
the meantime, Vidur is now Respectably Doomed, and in sympathy, we're adding
him to the BugAThon. Do you know JavaScript? This is the perfect chance
for you to help. We need to get Vidur's
open, no-status bugs reduced to simple-as-possible test cases. That
means stripping out as much JavaScript and HTML from the test page as you
can while still reproducing the bug. The less time Vidur spends simplifying
bug reports, the more time he can spend fixing bugs.
And let's face it: we JavaScripters have a real interest in getting
these bugs fixed. The more DOM bugs Vidur fixes, the fewer we'll have to
work around when the product ships! So let's spend time now to find, fix,
and simplify DOM bugs instead of spending time after the release working
around them! JavaScripters, let's simplify Vidur's
open, no-status bugs today!
P.S. The usual disclaimer about DOM support in Gecko: Gecko will fully
support DOM0 and DOM1. There is no
commitment to support any of DOM2 in the first release of Gecko or
Nav5, but some support is in the current builds and we of course welcome
bug reports regarding that functionality.
P.P.S. When you file new Document Object Model bugs in Bugzilla, be
sure to use the correct component:
| Component |
Meaning |
| DOM Level 0 |
Incompatibilities with the DOM of Nav3. (Mark [4.xP] in the Summary
field.) |
| DOM Level 1 |
Incompatibilities with the W3C DOM1
specification. (Mark {dom1} in the Summary field.) |
| DOM Level 2 |
Incompatibilities with the latest working draft of the under-development
W3C DOM2 specification.
(Mark {dom2} in the Summary field.) |
| JavaScript Engine |
Don't file DOM bugs against "JavaScript Engine"! The JavaScript
Engine component is only for core JavaScript (ECMAScript) language and
interpreter bugs |
If you haven't already, please read the description of what
each Browser component name in Bugzilla means.
Update: All LAYER, ILAYER, document.layers[], document.all(),
and User Agent Bugs Must Be INVALIDated!
If you hit a page that doesn't display well or has JavaScript errors in
Mozilla because the page uses MS IE4/5 DOM features, Nav4 Layer DOM features,
or the LAYER/ILAYER tag, don't file a bug in Bugzilla. Mozilla won't support
these proprietary features. (See http://sites.netscape.net/ekrock/standards.html
for details.) Instead, use the below email creation templates to send an
email to the page's owner asking them to upgrade the page to support W3C
standards.
If you are examining a bug report in Bugzilla and realize that it's
caused by these issues, please do the following:
-
Code the bug [LAYER] in the Status field so we can track which sites have
these problems.
-
Resolve the bug as INVALID.
-
Use the below template pages to send an email to the bug reporter and the
web site owner informing them of the need to upgrade the page to support
standards.
You can really help mozilla.org (and Vidur in particular) by finding
and INVALIDing these erroneous bug reports. This will help keep Vidur's
plate clean so he can focus on real DOM bugs.
If the page supports IE4/5 but not HTML 4.0/W3C DOM, use this template:
http://sites.netscape.net/ekrock/fixit/ie.html
If the page supports Nav4 but not HTML 4.0/W3C DOM, use this template:
http://sites.netscape.net/ekrock/fixit/layer.html
If the page is breaking because of user agent detection problems, use
this template:
http://sites.netscape.net/ekrock/fixit/useragent.html
Use the "user agent" template when a page doesn't work or has a JavaScript
error because the client-side JavaScript isn't detecting the Navigator
5 Mozilla/5.0 userAgent string, or when a server-side CGI is returning
the wrong page because it's not detecting the Mozilla/5.0 HTTP USER_AGENT
string or is choking on the HTTP 1.1 CONTENT_TYPE string (which is now
off by default, and may well stay that way).
Hint to avoid filing bogus bugs: if content on a page doesn't position
correctly or there's a JavaScript error, do a View Source and look (or
copy and paste and search in a text editor) for the strings document.all
and layer (case insensitive). If you find those strings in the JavaScript
or the HTML markup, think twice before filing a bug. Create a simplified
test case without the proprietary features and see if the problems still
occurs.
Update: Add the BugAThon Banner Ad to Your Site!
Glenn Davis of ProjectCool.com
has kindly given us this banner ad to help promote the BugAThon:

Please add the banner ad to your web pages! To add the banner ad to
a web page:
-
place the mouse cursor over the image, right-click the mouse button, and
choose "Save Image As ..." from the popup context menu that is displayed
-
save the image as bugathon.gif in the same directory as your web page
-
add the below HTML to your web page
<center><a href="http://www.mozilla.org/newlayout/bugathon.html">
<img SRC="bugathon.gif" height=60 width=468></a></center>
Update: Gecko BugAThon Deadline Eliminated!
The BugAThon is going great! Look at these displays of major heroism:
-
In just the first two weeks of the effort, we cut Chris Karnaze's open,
no status bug list from 164 on 6/23 to 47 on 7/6!
-
Ian Hickson stayed up until 5:40 a.m. and simplified 18 bugs the first
night of the BugAThon, and has processed over 42 bugs to date total!
-
Sam Allen's resolved 35 bugs as DUPs!
-
Look at all these test cases we've created for Tom,
Chris,
Eric,
and Kipp!
... and read these comments from participants:
-
"As a result of announcing the bug contest, I've gotten a bazillion bugzilla
notifications today." -- Chris Karnaze
-
"The thing is, I am quite happy to work for Mozilla just to get a decent,
free, standards compliant browser onto the market. That is an incentive
in itself. The rest is just a bonus...." -- Ian Hickson
-
"Glad I could help. I've made a recent move from HTML/JavaScript/CSS development
to QA and was glad to get some practice in. I would be happy to do some
beta testing in the future as well if you need it." -- Erin Pierce
Because the BugAThon is going so well and so many people have expressed
interest in participating going forward, we're eliminating the August 15th
deadline and making the BugAThon an ongoing effort. (Rick and Eric aren't
guaranteeing that we'll buy and mail stuffed Geckos until the end of time,
but we're eliminating the August 15th deadline and will keep awarding prizes
for the foreseeable future.) Welcome to all new Net contributors!
Disclaimers: Conditions subject to change without notice. Rewards subject
to substitution with goods of equivalent value. All decisions are final.
This is not an official contest. It is not sponsored by mozilla.org, Netscape
Communications, or America Online; it is an incentive program to recognize
Internet volunteers which is being run by Rick Gessner and Eric Krock directly.
|