Regression Range Finder for Firefox Nightly Builds

regression range finder in action on Windows

project page·github

UPDATE: mozregression has been polished up see

Last week I came across a bug that had snuck into Firefox sometime after 3.0. I went to go find the regression range using hg bisect but quickly realized this wouldn’t work for a regression that occurred so long ago – the dependencies for Linux had changed and building the old source was a pain. So I went to go start pinning down the range using the mozilla-central nightlies. This usually takes a couple hours and I was tired of doing this and miscalculating the bisect steps, so I wrote a python script to do practically all the work for me.

The script takes a ‘good’ date and a ‘bad’ date as arguments and will narrow down the range by executing a binary search on the mozilla nightlies, it will download each build, install it, then pop open a new window in the nightly. You do whatever you have to do to verify the bug’s presence, then enter ‘good’ or ‘bad’ into the command prompt depending on whether the bug appeared in that nightly. It will do this a few times to narrow down the range.

When you’ve checked enough nightlies (about log n nightlies, if your initial regression range is n days), you’ll see something like:
Last good nightly: 2009-06-12 First bad nightly: 2009-06-13
Which you can then paste into bugs to make people very happy (-:

Check out the installation instructions. Some future plans include:

* Automatic tests. Using them to find the regression range with no interaction required (targeting Mozmill tests first, then mochitest and the others)
* [done] Other Applications. Run other Mozilla nightlies like Thunderbird (this shouldn’t be too hard because the script uses mozrunner <3)
* Other branches. Not just mozilla-central.
* [done] Mac. Get it working on here.

8 thoughts on “Regression Range Finder for Firefox Nightly Builds

  1. Nice! Would it be an idea to (optionally?) download the next two builds it could have to fetch in the background, while you’re testing if the nightly is or isn’t right? It’d save you time, assuming good network connectivity.

    1. That is another fantastic idea! It might be a bit complicated code-wise, but that would cut down on the wait time a lot.

  2. hi,
    i’m sorry to interrupt the discussion here.. but i found this as currently active thread..
    I need some help in bugzilla.. I have to integrate bugzilla and HP QC . This is my first project and i have little knowledge on webservices.. how do i start off..

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s