To shorten the times for QA while running tests against upcoming Firefox releases, Mozmill is used to run existing automated tests. The remaining tests still have to be run manually but their number is growing smaller over time. Test results are reported to Brasstacks, where they can be analyzed and synchronized with Litmus later.
The tests which are run for release testing of Firefox are:
- Smoketests, BFT's, and parts of FFT's against release candidate builds
- Software Update tests against the latest release and the first release of the same branch
In the following sections, both procedures of testing will be described in detail.
Smoketests and BFT test-run
For new Firefox release candidate builds, QA is running Smoketests and BFT's against that build. For an example of this, see the results of the Firefox 3.5.8 test plan. To speed-up the test-run, Mozmill is used to run all existing automated tests from the Smoketests and BFT testgroups in Litmus. These automated tests are run on each of the supported platforms. The results are then reported to Brasstacks directly and then manually synchronized with Litmus.
The automated test-run is separated into two independent Mozmill test-runs. The first of these is for normal Mozmill tests and the second run runs tests which require a browser restart. Both runs are started with the command line Mozmill client (see here for installation details).
Follow the notes in the test plan and obtain the release candidate builds from the FTP server. Store them locally and install the builds within the operating systems to be tested.
To start the test-run for normal tests, run the command given below (depending on your platform):
mozmill --binary=/Applications/Firefox.app --test=mozmill-tests/firefox --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report mozmill --binary=/home/mozilla/Desktop/firefox/firefox --test=mozmill-tests/firefox --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report mozmill --binary=/c/firefox/firefox.exe --test=mozmill-tests/firefox --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report
To start the test-run for restart tests, run the command given below (depending on your platform):
mozmill-restart --binary=/Applications/Firefox.app --test=mozmill-tests/firefox/restartTests --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report mozmill-restart --binary=/home/mozilla/Desktop/firefox/firefox --test=mozmill-tests/firefox/restartTests --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report mozmill-restart --binary=/c/firefox/firefox.exe --test=mozmill-tests/firefox/restartTests --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report
If you do not want to run those commands for both kinds of test-runs you can also use the firefox-automation scripts which are located in the Mozmill repository on Github. Clone that repository or simply download the latest version of the master to your local disk. Then check-out the testrun_bft.py script.
To start the test-run for all kinds of BFT tests, run the command given below:
testrun_bft.py --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report /Applications/Firefox.app testrun_bft.py --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report /home/mozilla/Desktop/firefox/firefox testrun_bft.py --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report /c/firefox/firefox.exe
QA lab machine
There is a machine in the QA lab which runs daily automated tests and has a pre-configured environment for the automation. This machine is also used for release testing. To run all the Mozmill tests, do the following steps:
- Download all builds to '
/data/testing/release/%version%/download' within the master OS X system.Open a shell and execute the following commands:
$ cd /data/testing/release/%version% (Mac OS X) $ cd /z/data/testing/release/%version% (Windows) $ cd /mnt/hgfs/data/testing/release/%version% (Linux) testrun_bft.py --report=http://brasstacks.mozilla.com/couchdb/mozmill/_design/reports/_update/report download/%installer%
All reports are sent to Brasstacks. Open the summary page and scroll down to the bottom of the page to find the latest results. Link those results from the test plan results page.
Software Update tests
For new Firefox releases, QA tests all possible update paths to make sure users on the beta and release channels will receive the right updates. Automated Software Update tests are run on selected platforms. During these test-runs, the results are displayed within the shell or can be written to a log file.
The Software Update tests are separated into two independent test-runs for each build. The first of these checks and updates Firefox in the normal way and the second run updates with the fallback case. The Software Update tests use the command line Mozmilll client (see here for installation details).
Follow the notes in the test plan and download the specified Firefox releases from the FTP server to a local folder within the operating system being tested, e.g. '
During the release test cycle, tests will be run with the betatest, beta, releasetest, and release channels. For each of those channels the following command is executed:
$ python mozmill-tests/scripts/update.py --install=%destination% --channel=%channel% --type=minor %folder%
mozmill-tests/scripts/update.py --install="c:\firefox" --channel=beta --type=minor "d:\builds\" mozmill-tests/scripts/update.py --install=/Applications/ --channel=beta --type=minor "/Users/john/Desktop/builds/" mozmill-tests/scripts/update.py --install=/home/mozilla/Desktop/firefox/ --channel=beta --type=minor "/home/john/Desktop/builds"
QA Lab Machine
The machine in the QA lab which runs our daily automated tests will also be used for software update tests. It has a pre-configured environment for testing. To run the tests, follow these steps:
- Download all the builds to '
- Open a shell and execute the following commands with the operating system to be tested:
$ cd /data/testing/release/%branch%/updates/ (Mac OS X) $ cd /z/data/testing/release/%branch%/updates/ (Windows) $ cd /mnt/hgfs/data/testing/release/%branch%/updates/ (Linux) $ ./update_%os%.sh %channel% %type%
The results for all update tests will be available under the '
logs' folder as separate text files. Open each log and scroll to the bottom to find the results. These can be copied to the results wiki page of the release.