Testing Firefox OS Redirect 2

Given that Firefox OS is still under development, and support for new hardware is going to be forthcoming for the foreseeable future, it's important to know how to test it. This page offers articles that provide information about various aspects of testing Firefox OS, including running different tests, automation, and result reporting and tracking.

Getting started

Running tests on Firefox OS: A guide for developers
A quick, developer-focused guide to getting started with running the tests. This is where you should start if you are not experienced in running Mozilla's tests and automation systems. If you are, then you will probably have an idea of what tests you want to run and how, and you can skip on to the more specific detailed guides below.

Gaia tests

These articles cover the primary test suites designed to put Gaia through its paces.

Gaia UI tests
Python tests for Gaia UI interactions and features.
Gaia integration tests
JavaScript integration tests for Gaia, based on Marionette.
Gaia unit tests
Gaia unit tests with no UI interaction; written in JavaScript, not Marionette-based.
Gaia performance tests
Measures Gaia app performance based on internal instrumentation. The testing harness is in-tree.

B2G tests

The guides below cover a number of different test harnesses that test various aspects of B2G functionality.

Mochitests
Gecko functional and API tests; HTML & JS based.  No Gaia interaction.
Reftests
Gecko rendering correctness tests.
WebAPI tests
Gecko JS-based WebAPI tests; most of these require an emulator.
xpcshell tests
Headless tests of Gecko XPCOM APIs.
B2GPerf
Measures Gaia app performance based on internal instrumentation.
Eideticker
Provides performance measurements for Firefox OS based on video captures.
Endurance tests
Long-running repetitive tests designed to find memory leaks and stability problems.
MTBF test
This is a test framework based on non-restart gaia-ui-test. It tries to locate all kinds of issue prevents tests from running in a long time. (Currently, it is owned by Taiwan QA team and still a developing test framework)
Memory tests - coming soon
Repetitive tests run per-commit to mozilla-central, reporting to https://areweslimyet.com/, designed to find problems with memory usage.

Supporting documentation

This section provides links to some of the supporting technologies that underpin Mozilla's tests, which you may want to find more information about.

Marionette
A remote test driver based on Selenium WebDriver.
Marionette JavaScript tests
A node.js-based runner for Marionette.
Marionette Python tests
A Python runner for Marionette.

Continuous integration and result reporting

The following articles cover the continuous integration and result reporting mechanisms Mozilla uses to store and intepret test data.

TBPL
Understand the tests and builds that run on TBPL.
Jenkins
Understand the tests that are run on real devices via Jenkins.
Datazilla
Understand which performance tests are reporting to the Datazilla dashboard, and what those tests measure.
Test execution chart
A chart showing which tests are being run — on what devices and where — and which platforms are supported for each test.

Unit testing framework video

 

Document Tags and Contributors

Last updated by: teoli,