Mobile/Testing/Architectural Overview

< Mobile‎ | Testing
Revision as of 19:57, 20 August 2012 by Wlach (talk | contribs) (Created page with "= High-level overview = Automated testing of Firefox for Android involves two components: a device to actually run the tests on (currently this is only Tegra or Panda developmen...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

High-level overview

Automated testing of Firefox for Android involves two components: a device to actually run the tests on (currently this is only Tegra or Panda development boards, so we call them "Tegras" or "Pandas") and a machine (a.k.a. a "Foopie") that actually takes care of setting up these devices and running the test.

This is contrast with desktop firefox, where the software to control running the tests (the "test harness") is the same as the machine running the actual tests.

Details

Test Devices (a.k.a. "Tegras" or "Pandas")

The general principle here (arrived at through iteration) is to keep the logic on the hardware as simple as possible, as it's generally much easier to change things at the level of the test controller. The said, there are three basic layers to the test devices:

  • Hardware
  • Operating System Image
  • Device Application Software

Hardware / OS Image

Hardware and operating system images are really two different things, but we group them together because typically we build/qualify them as a unit (and there's very little overlap between the work we do to get an operating system running on one platform versus another).

Maintainers:

Tegra Platform

As of this writing, all automated Android testing is done on this hardware. This is an older board created by nvidia, and is no longer supported or sold. For this reason (as well as the fact that it only supports Android 2.2), it is being replaced by the Pandaboard platform.

The operating system is based on proprietary software provided to us by nVidia, with additional extensions/modifications added by us:

(FIXME: describe these).

Further info: ???

Panda Platform

This is the next generation of Android testing. It is based on a commodity board which can be freely ordered from Texas instruments.

The operating system is based on Linaro's flavour of the Android Open Source Project, with various modifications by us to make it work better as an automation target for Fennec (consistent resolution setting, applications built-in, etc.).

Further info:

Device Application Software

Maintainers: Automation and Tools

Watcher

The watcher is a small android application with just a few functions:

  • Ensure the Android lock screen never comes up
  • Periodically ping an external server and reboot if it is unreachable for too long (we currently disable this behavior as this is already taken care of by the foopies: we manually disable it in older versions and newer versions don't do this at all)
  • FIXME: There's other stuff that the watcher does too, but I can't remember offhand what it does. Maybe it allows updating the agent software?

Source code: The watcher source code is currently stored in mozilla-central in the `build/mobile/sutagent/android/watcher` subdirectory (web link).

Test Controller (a.k.a. "Foopies")