QA/Desktop Firefox/Automation
UNDER CONSTRUCTION
This is being refactored from the old documentation here
If you are looking for the Automation Services team, please go to their team page.
Overview
Mozilla QA uses Mozmill, a tool developed for test automation of applications based on the Gecko Platform (XUL Runner).
We use this tool to automate our manual tests in Litmus. The primary goal is to lessen the time we spend actively testing Smoketest, Basic Functional, and Full Functional level regression tests; enabling us to focus our time more on deep testing of bleeding-edge features and bugs.
An added benefit of using automation is that we can run tests across multiple platforms and locales in parallel, thereby increasing the coverage of regression tests in a smaller amount of time. To put that all into perspective, a single person running the BFTs on one platform and one locale takes about 8 hours. Mozmill can run the same tests across all platforms and all locales in a couple of hours.
The Mozmill tool and APIs are maintained and developed by the Automation Services team. The relatively small Desktop Automation team is responsible for developing the tests. This is where we need you, the community.
The Team
Person | Photo | Location | Role |
Anthony Hughes IRC: ashughes |
Vancouver, Canada | Team Lead | |
Vlad Maniac IRC: vladmaniac |
Cluj, Romania | Contractor Lead | |
Alex Lakatos IRC: AlexLakatos |
Cluj, Romania | Developer | |
Remus Pop IRC: remuspop |
Cluj, Romania | Developer |
You can get in contact with us in a few different ways:
- Take part in a discussion on the mozmill-dev mailing list
- Join the #mozmill IRC channel to ask about Mozmill
- Join the #automation IRC channel to ask about test automation
Meetings
Every two weeks we meet to discuss the progress we have made, where we want to go, and how we are going to get there. You can learn a lot about what we do just by listening in to one of our meetings. These meetings are open to everyone.
Meeting Information:
When: Mondays, 8am PT / 4pm GMT Dial-in: +1 (800) 707-2533 Password 369 Conference 654
Areas of Work
Aurora Smoketest Automation
This project involves automating the smoketests we run with every Firefox release.
Test Run | Test cases | Automated | % COMPLETE |
Aurora Smoketests | 32 | 13 | 40.6% |
Functional Tests
This project entails development of tests for Firefox features, smoketests, and BFTs based on the manual tests we already have in Litmus. The following details the current areas of development we are focusing on.
Component | CHECKED-IN | BLOCKED | ASSIGNED | UNASSIGNED | % COMPLETE |
Add-ons Manager | 14 | 3 | 9 | 31 | 24% |
App Tabs | 2 | 0 | 0 | 1 | 66% |
Audio & Video | 0 | 0 | 1 | 5 | 0% |
Awesomebar | 10 | 0 | 1 | 5 | 62% |
Bookmarks | 2 | 0 | 4 | 4 | 20% |
Content Handling | 0 | 0 | 0 | 8 | 0% |
Cookies | 4 | 0 | 0 | 0 | 100% |
Downloading | 6 | 4 | 4 | 3 | 35% |
Feedback | 0 | 0 | 0 | 10 | 0% |
Find in Page | 1 | 0 | 0 | 4 | 20% |
Form Manager | 7 | 0 | 0 | 0 | 100% |
General | 6 | 1 | 0 | 9 | 37% |
Geolocation | 0 | 0 | 0 | 5 | 0% |
History | 0 | 0 | 2 | 8 | 0% |
Home Tab | 0 | 0 | 0 | 1 | 0% |
Import | 0 | 0 | 0 | 1 | 0% |
Installation | 1 | 3 | 0 | 5 | 11% |
Layout | 1 | 3 | 0 | 9 | 7% |
Library | 0 | 0 | 0 | 12 | 0% |
Lightweight Themes | 0 | 0 | 0 | 3 | 0% |
Menus | 0 | 0 | 0 | 13 | 0% |
Microsummaries | 0 | 0 | 3 | 0 | 0% |
Preferences | 8 | 0 | 0 | 0 | 100% |
Panorama | 2 | 13 | 6 | 2 | 8% |
Password Manager | 10 | 0 | 0 | 0 | 100% |
Plug-ins | 1 | 3 | 0 | 18 | 4% |
Pop-up Blocking | 2 | 0 | 1 | 7 | 20% |
Printing | 0 | 1 | 0 | 6 | 0% |
Private Browsing | 14 | 0 | 0 | 1 | 93% |
RSS | 0 | 1 | 0 | 5 | 0% |
Search | 10 | 0 | 0 | 2 | 83% |
Security | 16 | 2 | 0 | 1 | 84% |
Session Store | 1 | 0 | 0 | 15 | 6% |
Software Update | 3 | 0 | 0 | 2 | 60% |
Sync | 0 | 0 | 0 | 12 | 0% |
Tabbed Browsing | 5 | 7 | 0 | 9 | 23% |
Technical Tools | 1 | 0 | 0 | 3 | 25% |
Toolbar Customization | 0 | 0 | 0 | 5 | 0% |
Uninstall | 0 | 1 | 0 | 2 | 0% |
Web Console | 0 | 0 | 0 | 9 | 0% |
Discovery Pane | 6 | 6 | 1 | 0 | 46% |
Check out this spreadsheet for more details regarding active work.
Failing Tests
This project entails fixing tests which are currently failing. Tests fail for several reasons: a change in content, a change in the APIs, a change in Mozmill, a change in Firefox, or even a change in the host environment. It is of primary concern that we fix these failures in as little time as possible. Here are some useful links to get you started:
- Dashboard of results from recent automated testruns: functional, update, localization, endurance, remote, and addons tests
- Mercurial repository containing the tests: http://hg.mozilla.org/qa/mozmill-tests/
- Documentation about the tests, APIs, and Mozmill framework: https://developer.mozilla.org/en/Mozmill_Tests
- Life-cycle of a Failure
- Check the dashboard for recent failures
- Check if the failure is already captured in Bugzilla
- If not, file a new bug
- Once a bug is filed, assign it to a developer (you)
- Debug the failure (see our tips below) -- failures older than 24 hours need to be disabled first
- Code your fix and attach a patch to the bug
- Once your patch has passed the review process it will be checked in
Getting Started
To help you get started, we have put together a couple of guides:
- Learn about installing Mozmill
- Learn about the test repository
- Learn about running tests
- Learn about writing tests
Of course, if you have any questions, you can always reach us by:
- Joining the #automation channel on IRC
- Sending an email directly to Anthony Hughes