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

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

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

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

Для тестирования приложений начните с Основ тестирования и проведите Codelab тестирования 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 — это набор различных типов тестов, используемых для обеспечения совместимости реализаций платформы 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 и reboot.xml .

Отладка

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