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