Проект Android Open Source Project (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, которые можно предустановить на устройства.
- GoogleTest (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 .- предварительная отправка теста
Тест, используемый для предотвращения внесения ошибок в стандартные ядра операционной системы.
- Торговая федерация
Также известный как Tradefed, это фреймворк для непрерывного тестирования, предназначенный для запуска тестов на устройствах Android. Например, Tradefed используется для запуска тестов Compatibility Test Suite и Vendor Test Suite.
- Набор тестов от поставщика (VTS)
Широкий набор возможностей для тестирования Android, способствующий внедрению процесса разработки через тестирование (TDD) и автоматизации тестирования уровня аппаратной абстракции (HAL) и ядра операционной системы.
Типы тестов платформы
Тестирование платформы обычно взаимодействует с одной или несколькими системными службами Android или уровнями HAL, проверяет функциональность тестируемого объекта и подтверждает корректность результатов тестирования. Тестирование платформы может включать в себя:
- (Тип 1) Проверка API фреймворка с использованием фреймворка Android. В качестве примеров проверяемых API могут выступать:
- Общедоступные API, предназначенные для сторонних приложений.
- Скрытые API, предназначенные для привилегированных приложений, а именно системные API или частные API (
@hide,protected,package private).
- (Тип 2) Вызов системных служб Android с использованием прямого связывания или IPC-прокси.
- (Тип 3) Прямое взаимодействие с HAL с использованием низкоуровневых API или интерфейсов межпроцессного взаимодействия.
Тесты 1-го и 2-го типов обычно представляют собой инструментальные тесты, тогда как тесты 3-го типа обычно являются GT-тестами.
Что дальше?
Вот список документов, с которыми вы можете ознакомиться для получения более подробной информации:
Если вы не изучали архитектуру Android, ознакомьтесь с обзором архитектуры .
Если вы создаете устройство, совместимое с Android, ознакомьтесь с обзором программы обеспечения совместимости с Android .
Для интеграции инструментальных, функциональных, метрических тестов и тестов хоста JAR-файлов в сервис непрерывного тестирования платформы см. раздел «Рабочий процесс разработки тестов» .
Для обнаружения уязвимостей и повышения их защиты см. раздел «Тестирование безопасности» .
Чтобы узнать о тестировании ваших реализаций HAL и ядра, см. раздел «Набор тестов поставщика (VTS) и инфраструктура» .
Для тестирования приложений ознакомьтесь с разделом «Основы тестирования приложений Android» и проведите тестирование по курсу «Расширенные знания Android в Kotlin 05.1: Основы тестирования», используя предоставленные примеры .
Узнайте о базовом тестировании перед отправкой, доступном через репозиторийные хуки. Эти хуки можно использовать для запуска линтеров, проверки форматирования и запуска модульных тестов перед продолжением, например, перед загрузкой коммита. По умолчанию эти хуки отключены. Для получения дополнительной информации см. раздел «Хуки предварительной загрузки AOSP» .
Чтобы узнать больше о логировании, см. раздел «Понимание логирования» .
Чтобы понять, как отлаживать код Android, см. раздел «Отладка нативного кода платформы Android» .