Проект 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.
Что дальше?
Вот список документов, с которыми вы можете ознакомиться для получения более подробной информации:
Если вы не изучали архитектуру Android, см. Обзор архитектуры .
Если вы создаете Android-совместимое устройство, см. обзор программы совместимости Android .
Чтобы интегрировать инструментальные, функциональные, метрические и хост-тесты JAR в службу непрерывного тестирования платформы, см. Рабочий процесс разработки тестов .
Чтобы обнаружить и защитить ваши устройства от уязвимостей, см. Тестирование безопасности .
Дополнительные сведения о тестировании реализации HAL и ядра см. в разделе Vendor Test Suite (VTS) и инфраструктура .
Для тестирования приложений прочтите «Основы тестирования приложений Android» и проведите курс «Продвинутый Android в Kotlin 05.1: основы тестирования», используя предоставленные образцы .
Узнайте о базовом тестировании перед отправкой, доступном вам через перехватчики репо. Эти перехватчики можно использовать для запуска линтеров, проверки форматирования и запуска модульных тестов перед продолжением, например, при загрузке коммита. Эти хуки отключены по умолчанию. Дополнительную информацию см. в разделе «Перехватчики предварительной загрузки AOSP» .
Дополнительные сведения о ведении журнала см. в разделе Общие сведения о ведении журнала .
Чтобы понять, как отлаживать код Android, см. раздел Отладка собственного кода платформы Android .