Обзор торговой федерации

Trade Federation (сокращенно Tradefed или TF) — это среда непрерывного тестирования, предназначенная для запуска тестов на устройствах Android. Например, Tradefed используется для запуска Compatibility Test Suite (CTS) и Vendor Test Suite (VTS) .

Trade Federation — это Java-приложение, которое запускается на хост-компьютере и обменивается данными с одним или несколькими устройствами Android с помощью ddmlib (библиотеки, лежащей в основе DDMS) через adb.

Ниже мы перечислили некоторые из основных функций TF, а также несколько примеров использования. Тем не менее, если вы хотите сразу же приступить к работе, вы можете сразу перейти на страницу « Начать здесь ».

Функции

  • модульная, гибкая, масштабируемая конструкция
  • имеет встроенную поддержку запуска многих различных типов тестов Android: инструментирование , uiautomator , native/gtest, хост-ориентированный JUnit и т. д.
  • обеспечивает надежность и механизмы восстановления поверх adb
  • поддерживает планирование и запуск тестов на нескольких устройствах параллельно

См. Testing Through TF для получения самой актуальной информации о том, как запускать существующие тесты, такие как Instrumentation .

Сценарии использования

Модульность Trade Federation упрощает встраивание в среды с существующей инфраструктурой сборки, тестирования и отчетности. Ниже мы перечисляем несколько демонстрационных вариантов использования, в которых tradefed может обеспечить эффективные и масштабируемые методы тестирования.

Во-первых, полезно рассмотреть ландшафт потенциальных вариантов использования с точки зрения вопроса «какие части изменяемы, а какие статичны?» Например, OEM-производитель устройств может модифицировать платформу, систему и аппаратное обеспечение, но практически не влияет на существующие приложения. С другой стороны, разработчик приложения может модифицировать приложение, но практически не контролирует большинство аспектов системы или фреймворка.

В результате объект в каждом варианте использования будет иметь разные цели тестирования и будет иметь разные варианты в случае набора неудачных тестов. Несмотря на эти различия, Trade Federation может помочь сделать каждый из процессов тестирования эффективным, гибким и масштабируемым.

ОЕМ устройство

OEM-производитель устройств создает аппаратное обеспечение и часто настраивает систему и фреймворки Android, чтобы они хорошо работали на этом оборудовании. OEM-производитель может стремиться к достижению этих целей, сохраняя при этом стабильность и производительность на аппаратном и системном уровнях и следя за тем, чтобы изменения инфраструктуры не нарушали совместимость с существующими приложениями.

OEM-производитель может внедрить модуль прошивки устройства, который будет выполняться на этапе Target Setup жизненного цикла . Этот модуль будет иметь полный контроль над устройством в течение периода его выполнения, что потенциально позволит ему принудительно перевести устройство в загрузчик, прошить, а затем принудительно перезагрузить устройство обратно в режим пользовательского пространства. В сочетании с модулем для привязки к системе непрерывной сборки это позволит OEM-производителям запускать тесты на своем устройстве по мере внесения изменений в прошивку системного уровня и платформы уровня Java.

После полной загрузки устройства OEM-производитель сможет использовать существующие тесты на основе JUnit или написать новые для проверки интересующей функциональности. Наконец, они могут написать один или несколько модулей отчетов о результатах для привязки к существующим репозиториям результатов тестирования или для прямого отчета о результатах (например, по электронной почте ).

Разработчик приложений

Разработчик приложений создает приложение, которое должно хорошо работать на различных версиях платформ и различных устройствах. Если проблема возникает на определенной версии платформы и/или устройстве, единственное решение — добавить обходной путь и двигаться дальше. Для более крупных разработчиков процесс тестирования может быть включен в последовательность непрерывной сборки. Для небольших разработчиков он может запускаться периодически или вручную.

Большинство разработчиков приложений будут использовать модули тестовой установки apk, которые уже существуют в TF. Существует версия, которая устанавливается из локальной файловой системы , а также версия, которая может устанавливать apks, загруженные из службы сборки . Важно отметить, что последняя версия будет продолжать работать правильно с любым количеством экземпляров TF, работающих на одном и том же хост-компьютере.

Из-за того, что TF умеет работать с несколькими устройствами, было бы просто классифицировать каждый результат теста по типу устройства, которое использовалось для этого теста. Таким образом, TF потенциально может генерировать двумерную (или многомерную) матрицу совместимости для каждой сборки приложения.

Служба тестирования

Служба тестирования может, например, позволить разработчикам приложений отправлять приложения и запускать тесты на устройствах, оснащенных инструментами измерения энергопотребления, чтобы определить энергопотребление приложения. Это отличается от двух предыдущих вариантов использования тем, что построитель служб не контролирует устройства или запущенные приложения.

Поскольку Trade Federation может запускать любой класс Java, реализующий простой интерфейс IRemoteTest , несложно написать драйверы, которые могут координировать некоторые внешние аппаратные средства с тестовым набором, выполняемым на устройстве. Сам драйвер может создавать потоки, отправлять запросы на другие серверы или делать что-либо еще, что ему может понадобиться. Кроме того, простота и универсальность интерфейса отчета о результатах, ITestInvocationListener , означает, что также легко представить произвольные результаты тестирования (включая, например, числовые показатели мощности) в стандартный конвейер отчета о результатах.