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

AOSP предоставляет несколько инструментов и наборов тестов для тестирования различных частей вашей реализации. Прежде чем продолжить изучение этого раздела, вы должны быть знакомы со следующими терминами:

Android-совместимое устройство
Устройство, на котором можно запускать любое стороннее приложение, написанное сторонними разработчиками с использованием Android SDK и NDK. Android-совместимые устройства должны соответствовать требованиям Документа определения совместимости (CDD) и пройти набор тестов на совместимость (CTS) . Устройства, совместимые с Android, имеют право участвовать в экосистеме Android, что включает потенциальное лицензирование Google Play Store, потенциальное лицензирование набора приложений и API Google Mobile Services (GMS) , а также использование товарного знака Android. Любой может использовать исходный код Android, но чтобы считаться частью экосистемы Android, устройство должно быть совместимо с Android.
артефакт
Артефакты — это журналы сборки, которые позволяют локально устранять неполадки.
Документ определения совместимости (CDD)
Документ, в котором перечислены требования к программному и аппаратному обеспечению для Android-совместимого устройства.
Набор тестов совместимости (CTS)

Бесплатный набор тестов коммерческого уровня, доступный для загрузки в виде двоичного файла или исходного кода в AOSP. CTS — это набор модульных тестов, предназначенных для интеграции в ваш ежедневный рабочий процесс. Целью CTS является выявление несовместимостей и обеспечение совместимости программного обеспечения на протяжении всего процесса разработки.

CTS и тесты платформы не исключают друг друга. Вот некоторые общие рекомендации:

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

Коллекция приложений и API Google, которые можно предустановить на устройствах.

ГуглТест (GTest)

GTest — это среда тестирования и макетирования C++. Двоичные файлы GTest обычно обращаются к уровням абстракции нижнего уровня или выполняют необработанный IPC для различных системных сервисов. Подход к тестированию GTest обычно тесно связан с тестируемым сервисом. CTS содержит структуру GTest.

контрольно-измерительные приборы

Инструментальный тест предоставляет специальную среду выполнения теста, запускаемую командой am instrument , где целевой процесс приложения перезапускается и инициализируется с использованием базового контекста приложения, а внутри виртуальной машины процесса приложения запускается поток инструментирования. CTS содержит инструментальные испытания.

Логкат

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

Ведение журнала

Ведение журнала означает использование журнала для отслеживания событий компьютерной системы, таких как ошибки. Вход в Android сложен из-за множества используемых стандартов, объединенных в инструменте Logcat.

постотправочный тест

Тесты после отправки Android выполняются, когда новый патч фиксируется в общей ветке ядра. Введя aosp_kernel в качестве частичного имени ветки, вы увидите список ветвей ядра с доступными результатами. Например, результаты для android-mainline можно найти по адресу https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid .

предварительный тест

Предварительные тесты используются для предотвращения появления сбоев в общих ядрах.

Торговая Федерация

Trade Federation, также называемая Tradefed, представляет собой среду непрерывного тестирования, предназначенную для проведения тестов на устройствах Android. Например, Tradefed используется для запуска тестов Compatibility Test Suite и Vendor Test Suite.

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

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

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

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

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

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

Что дальше?

Ниже приводится список следующих документов, которые вы можете прочитать: