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

Проект 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-тестами.

Что дальше?

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