Тестирование платформы Android

Этот контент предназначен для разработчиков платформы Android. Прежде чем понять, как проводится тестирование на платформе Android, ознакомьтесь с обзором архитектуры платформы Android .

Затем углубитесь в конкретные технологии, доступные вам в этом разделе, такие как Vendor Test Suite (VTS) и множество видеоуроков и руководств по лабораторным работам .

Также обратите внимание на механизмы тестирования безопасности , доступные для обнаружения и защиты ваших устройств от уязвимостей.

При тестировании приложений начните с «Основ тестирования» и проведите кодовую лабораторию по тестированию Android , используя предоставленные образцы .

Наконец, обратите внимание, что базовое тестирование перед отправкой доступно вам через Repo Hooks , которые могут запускать линтеры, проверять форматирование и запускать модульные тесты перед продолжением, например, загрузкой коммита. Обратите внимание, что эти хуки отключены по умолчанию. Более подробную информацию смотрите во введении в Repo Hooks .

Что и как тестировать

Тест платформы обычно взаимодействует с одной или несколькими системными службами Android или уровнями уровня абстракции оборудования (HAL), реализует функциональные возможности тестируемого объекта и подтверждает правильность результатов тестирования.

Таким образом, тест платформы может:

  1. использовать API-интерфейсы платформы через платформу приложений; конкретные используемые API могут включать в себя:
    • общедоступные API, предназначенные для сторонних приложений
    • скрытые API, предназначенные для привилегированных приложений, а именно системные API
    • частные API (@hide, или protected, package Private)
  2. вызывать системные службы Android напрямую через необработанные связующие/IPC-прокси
  3. взаимодействовать напрямую с HAL через низкоуровневые API или интерфейсы IPC.

Типы 1 и 2 обычно записываются как инструментальные тесты , а тип 3 обычно записываются как GTests .

Чтобы узнать больше, посмотрите наши комплексные примеры:

Познакомьтесь с этими инструментами, поскольку они необходимы для тестирования в Android.

Набор тестов совместимости (CTS)

Android Compatibility Test Suite — это набор различных типов тестов, используемых для обеспечения совместимости реализаций платформы Android от OEM-партнеров и между выпусками платформ. В комплект также входят инструментальные тесты и среда GTest.

CTS и тесты платформы не являются взаимоисключающими, и вот несколько общих рекомендаций:

  • если тест подтверждает правильность функций/поведения API платформы, и он должен применяться всеми OEM-партнерами, он должен быть в CTS
  • если тест предназначен для выявления регрессий во время цикла разработки платформы, для его выполнения может потребоваться привилегированное разрешение и он может зависеть от деталей реализации (как они опубликованы в AOSP), это должны быть только тесты платформы.

Набор тестов поставщиков (VTS)

Vendor Test Suite (VTS) автоматизирует тестирование ядра HAL и ОС. Чтобы использовать VTS для тестирования встроенной реализации системы Android, настройте среду тестирования, а затем протестируйте исправление, используя план VTS.

Инфраструктура тестирования Торговой федерации

Trade Federation (сокращенно Tradefed или TF) — это среда непрерывного тестирования, предназначенная для запуска тестов на устройствах Android. TF может запускать функциональные тесты локально, на вашем столе, в рамках проверки вашей платформы. Для запуска теста в TF необходимы два файла: исходный код теста Java и конфигурация XML. Примеры см. в RebootTest.java и restart.xml .

Отладка

В разделе «Отладка» собраны полезные инструменты и связанные команды для отладки, отслеживания и профилирования встроенного кода платформы Android при разработке функций уровня платформы.