Tools & Processes
for ensuring
software quality
at Mozilla
Jared Wein
@weinjared
5 December 2012
Jared Wein
@weinjared
5 December 2012
Everything we do at Mozilla revolves around Bugzilla
{automated tests, code reviews, super reviews, backouts}
{qawanted, dogfooding, built-in profiler, filing bugs}
{mozregression, regression, regressionwindow-needed}
{release manager, trickle releases, chemspills, crash reporting}
Code changes should be paired with unit tests when possible
Continuous integration (build with each push, and run all the tests)

{automated tests, code reviews, super reviews, backouts}
{qawanted, dogfooding, built-in profiler, filing bugs}
{mozregression, regression, regressionwindow-needed}
{release manager, trickle releases, chemspills, crash reporting}
Opt-in service that monitors usage statistics and reports back to Mozilla
Keeps track of
Built-in profiler that is compiled in Nightly and Aurora builds
Can be used to find issues of jank while using Firefox in daily practice or in stress testing
Bugzilla Helper form

Needs to be super-easy to file bugs against products
Better to file a dupe than to not file
{automated tests, code reviews, super reviews, backouts}
{qawanted, dogfooding, built-in profiler, filing bugs}
{mozregression, regression, regressionwindow-needed}
{release manager, trickle releases, chemspills, crash reporting}
a keyword that people can add to a bug to request that someone narrow down the window of changes that caused the regression
if a narrow window can be determined, fixing the bug can become trivial
Uses binary search on Nightly builds to narrow down cause/fix of bugs
Can track down the cause of a three year old bug in Firefox with 9-10 Nightly builds
bugs that are regressions get the regression keyword
they are often great candidates for some automated testing to make sure that the particular regression doesn't occur again
{automated tests, code reviews, super reviews, backouts}
{qawanted, dogfooding, built-in profiler, filing bugs}
{mozregression, regression, regressionwindow-needed}
{release manager, trickle releases, chemspills, crash reporting}
release driver is someone responsible for the stability of the product
provide guidance to developers as to which bug fixes are important for a given release and also make a range of tree management decisions
tracked bugs are associated with specific releases and monitored closely to make sure that progress is ongoing and that a resolution won't slip past the release
nominated patches are fixes for bugs that need to get uplifted and reach users quicker (higher risk, need sanity check)
Auto-update about 5-10% of users and watch for large spikes in crash reports, stability, and incompatibilities
When release seems strong enough, open the flood gates
In the long run, it would be better to have the Aurora and Beta channels with larger audiences so this is not needed as much
And so the cycle continues…
jaws@mozilla.com
http://msuja.ws/quality-at-mozilla