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

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

Android-совместимое устройство
Устройство, на котором можно запускать любое стороннее приложение, написанное сторонними разработчиками с использованием Android SDK и NDK. Android-совместимые устройства должны соответствовать требованиям Документа определения совместимости (CDD) и пройти набор тестов на совместимость (CTS) . Android-совместимые устройства имеют право участвовать в экосистеме Android, которая включает потенциальное лицензирование Google Play, потенциальное лицензирование набора приложений и 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)

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

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

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

Логкат

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

регистрация

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

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

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

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

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

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

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

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

Набор обширных возможностей для тестирования Android, продвижения процесса разработки на основе тестирования и автоматизации уровня абстракции оборудования (HAL) и тестирования ядра ОС.

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

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

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

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

Что дальше?

Вот список документов, с которыми вы можете ознакомиться для получения более подробной информации: