QA/Mozmill Test Automation

From MozillaWiki
< QA
Jump to: navigation, search


This page is outdated since beginning of July 2011 when the Automation Services team has been formed. Check its team page for further details.


Mozmill is a test tool to run functional tests in an automated manner. It can be used by applications which are based on the Gecko platform or XulRunner.

Mozilla QA is using Mozmill to automate existing manual tests which were added to Litmus and folded into different testgroups, like Smoketests, Basic Functional Tests (BFT), and Full Funcional Tests (FFT). The primary goal is to lower the active testing time for any of our QA engineers and contributors. As a result we will be able to cover more than only one platform and locale for BFT testing. To get a better impression of the enhancements just compare those raw numbers: To run all the BFT tests manually it takes about one man day while running all the tests on every platform in parallel will eventually take about 40 minutes with Mozmill!

Team Details

Given the number of new features and regression fixes for any new Firefox major or security release, we will continuously enhance our functional testing framework by adding more tests of any type, increasing the number of platforms and locale builds to run the tests on, and by making the analysis of test reports more user friendly.

Mozmill Test Automation Map.png

Team Members and Assignments

Name Contact Availability Project Assignments
Henrik Skupin Employee Team Lead
(Details see Areas of Work)
Anthony Hughes Employee Fixing failures and writing new tests, Endurance Tests
Geo Mealer Employee MozMill testing, updating Shared APIs, Update Tests
Dave Hunt Employee Endurance Tests
Aaron Train Employee Fixing test failures, writing new tests, testing frameworks
Owen Coutts Employee (Intern) Revising Mozmill Dashboard
Vlad Maniac Contractor Mozmill tests
Alex Lakatos Contractor Fixing test failures, writing new tests, testing frameworks
Remus Pop Contractor Fixing test failures, writing new tests, testing frameworks

You can also get in contact with us by subscribing to the mozmill-dev list on Google or by joining the #mozmill channel on IRC.


You can subscribe to the Google calendar (ical) to see our events, milestones, and other deliverable dates.

Meetings, Work Weeks, and Dates

We have a bi-weekly public team project meeting. If you want to join the meetings, please check the meeting page for details.


The QA Test Automation team has a couple of ongoing projects. Priorities for each of those will be re-defined at the beginning of each quarter.

Q2 2011

  • Our high-level goal is to complete the work on the API refactoring project. It's necessary for a more streamlined and consistent way of creating Mozmill tests for Firefox. In combination with the basic API changes, new shared modules and ui maps have to be created for each single component our Mozmill tests cover. For this quarter we want to focus on the browser interface and the new Add-ons Manager.
  • With the new Add-ons Manager in-place for Firefox 4 there are needs for automating the existing manual tests on Litmus. We want to start with the tests for the Discovery Pane (Get Add-ons).
  • To follow-up on the great feedback we got for Endurance Tests last quarter, we will work on ways to retrieve even more performance and system related data. That's necessary to have a broader range of Endurance Tests (not only memory usage) and data for our own analysis.
  • With more and more parallel releases coming up in the future our internal testing strategy has to be improved by relying on the Pulse system for distributed messages. Those will be used to broadcast testing tasks across machines. It's useful for update testing but also for our functional tests.

Areas of Work

As you can imagine a project like Mozmill automation has a couple of areas where work is happening or at least planned for the future. The following chapter will give you a good overview about all of our projects.

Mozmill Tests

Project Description
New Mozmill Tests Create automated tests to minimize our manual testing efforts.
New Shared Modules Simplify Mozmill test scripting by using shared modules.
Endurance Tests Create Mozmill tests to ensure Firefox endurance and detection of behaviours under sustained use.
Handling of Broken Tests Making sure to always have a green test-run for Mozmill tests.
Shared Modules Refactor Exploring new ways to present the Shared API to simplify test scripts even further.
Test Modules Refactor Work in parallel with the Shared Modules Refactor project to simplify the test modules.
Software Update Tests Create Mozmill tests to ensure lesser problems during an upgrade of Firefox.
Add-ons Tests Create Mozmill tests to run functional tests against add-ons.
L10n Tests Create Mozmill tests to ensure that localized builds are not broken.

Automated Testing

Project Description
Crowd-sourced Testing Make it totally easy for everyone to run Mozmill tests from within Firefox.
Automated Test-runs Create scripts for a collection of automated test-runs.
Triggered Update Testing Perform nightly update testing triggered by landing of the build
On-Demand Update Testing Streamline how update testing is performed on releases


Project Leads Description
Web Dashboard Henrik Skupin
Anthony Hughes
Dashboard to visualize collected Mozmill test results from the automated test-runs and the Mozmill Crowd extension


Project Description
Shared Modules Documentation on how to use shared modules and their feature set.

On hold

Project Description
Accessibility Tests Create Mozmill tests to ensure Firefox is accessible by everyone.
Panorama Testing Create a high-quality suite of performance and functional tests to support the Panorama feature of Firefox 4

Finished Projects

Project Description
Result Data Collecting necessary result data of test-runs for each test type.


Each of the above mentioned sub-projects needs love from someone with passion to work on such a challenging task. There will be a project lead who will offer help in various ways.

If you are interested in helping us to push Mozmill a big step forward, please get in contact with Henrik Skupin. We will figure out what's the best way for your contribution.

First Steps

Joining an existing project can be hard especially when you see all the stuff in the mind map. To give you a handy guide for the first steps a rich documentation has been created. It covers the following areas:

All those documents should bring you into a state to be able to play around with Mozmill. At least by running those tests against nightly or release builds of Firefox and reporting failed tests would be a great help for us.


There are a couple of resources which are related to Mozmill. A nearly complete list you will find below: