Часто задаваемые вопросы по CTS

Программа обеспечения совместимости Android является ключевым фактором поддержания положительной обратной связи для экосистемы Android. CTS — это ключевой инструмент для обеспечения качества совместимости в масштабах. Команда Android постоянно совершенствует инструмент CTS и расширяет охват тестов. Регулярное добавление тестовых случаев значительно улучшает качество совместимых устройств.

Общие вопросы

В этом разделе представлены общие часто задаваемые вопросы по CTS.

Какие именно параметры проверяет CTS?

CTS проверяет наличие и корректную работу всех поддерживаемых Android строго типизированных API. CTS также проверяет другие системные аспекты, не связанные с API, такие как жизненный цикл приложения и производительность.

Как осуществляется лицензирование CTS?

CTS распространяется под той же лицензией Apache Software License 2.0, что и большая часть программного обеспечения Android.

Проходят ли кодеки проверку в CTS?

Да. Все обязательные кодеки проверены CTS.

Вопросы, специфичные для данного теста.

В этом разделе представлены часто задаваемые вопросы, которые помогут более эффективно запускать тесты CTS.

В чём разница между CTS Sharding и TF Sharding?

CTS Sharding и TF Sharding — это совершенно разные планы тестирования, основанные на разной кодовой базе тестовой инфраструктуры. Хотя команда запуска одинакова для разных версий, результаты сегментирования различаются. CTS Sharding статически назначает тестовые случаи тестируемым устройствам (DUT) следующим образом:

TF Sharding динамически назначает тестовые примеры доступным тестируемым устройствам следующим образом:

Что ожидается от устройства, поддерживающего несколько ABI?

Устройство должно пройти все тесты CTS и CTS Verifier для каждого режима ABI, который оно, как утверждается, поддерживает. Поэтому необходимо запустить приложение для конкретного ABI. Рекомендации для нескольких ABI следующие:

  • Для CTS и CTS Verifier существуют версии для архитектур ARM и x86 . Каждая из них поддерживает 32- или 64-битный режим.
  • Для тестов CTS, если устройство поддерживает как ARM, так и x86, оно должно успешно пройти оба теста CTS: для ARM и для x86.

См. CDD 3.3.1. Интерфейсы двоичных файлов приложений для получения информации о требованиях CDD к ABI.

Достаточно ли запустить тест только на основном ABI (например, 64-битном), чтобы сократить время выполнения теста?

Нет. Приложение Android работает в собственной 32-битной или 64-битной среде выполнения. Фактический машинный код, путь выполнения кода и состояние различаются между 32- и 64-битными системами. Если вы пропускаете один режим, вы охватываете только 50% ABI устройства.

Почему так много тестовых случаев отмечены как «Не выполнено»?

Следует проверять номер выполненного модуля , а не номер невыполненного .

В предыдущих версиях модули CTS слишком агрессивно отображались как "Модуль выполнен" до завершения. Поэтому число "Модули выполнены" отображалось без завершения всех тестовых случаев, даже если у некоторых устройств были проблемы. Новая тестовая среда более консервативна и сообщает большее количество "Невыполненных тестов" при возникновении проблемы.

При завершении выполнения модуля в отчете в следующих случаях отображается сообщение "Модуль не завершен " (done="false"):

  • Тестовый запуск модуля был прерван из-за проблемы с подключением устройства.
  • Не все запланированные тестовые запуски модуля были выполнены.
  • Повторная попытка (с использованием опции -r/--retry ) с дополнительными параметрами фильтрации, такими как:

    • --include-filter
    • --исключить-фильтр
    • -t/--test (Опция пока не поддерживается при повторной попытке)
    • --retry-type failed
    • --подплан

Чтобы получить статус " Модуль завершен " (done="true") для этих модулей, повторите следующую команду для последнего вызова:

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

Модуль, выполненный без каких-либо из упомянутых ранее проблем (даже при отсутствии оставшихся тестов), помечается в новом отчете как "Модуль выполнен" .

Исключения

  • В модуле CtsNNAPITestCases обнаружена известная проблема, связанная с ограничениями Linux/ОС по количеству аргументов. Модуль можно повторно запустить отдельно, run cts -m CtsNNAPITestCases напрямую.

Как избежать сбоев при подготовке к тестированию за корпоративным брандмауэром?

Все автоматизированные наборы тестов пытаются загрузить либо медиафайлы CTS, либо файлы бизнес-логики во время выполнения. Во многих корпоративных средах обычно используются брандмауэр и прокси-сервер, что приводит к сбою подготовки тестов. Выполните следующую строку или добавьте ее в файл .profile (в Ubuntu).

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

Нужна ли мне SIM-карта для CTS для Secure Element?

Необходимость использования SIM-карты для теста зависит от того, поддерживается ли данная функция в тестируемом устройстве.

  • Если вашему устройству НЕ требуется поддерживать доступ приложений Android к защищенным элементам — будь то в UICC (например, SIM-карте), распространяемом операторами мобильной связи, или встроенным в устройство, — вы можете настроить манифест HIDL таким образом, чтобы он не включал элемент HAL android.hardware.secure_element . В этом случае API android.se.omapi.SEService.getReaders() выдаст пустой список, и тест CTS автоматически пройдет успешно, сообщив о прохождении теста.
  • Если вашему устройству необходимо поддерживать приложения Android, обращающиеся к защищенным элементам — либо в UICC (например, SIM-карте), распространяемом операторами мобильной связи, либо встроенным в устройство, — вам необходимо правильно реализовать защищенный элемент и протестировать его собственными силами. В руководстве CTS Test for Secure Element описано, как подготовиться к запуску тестов CTS, которые гарантируют работоспособность пакета API android.se.omapi , добавленного в Android 9. Мы также рекомендуем провести дополнительное тестирование самостоятельно, поскольку покрытие тестов CTS минимально.

Где можно приобрести SIM-карты для CTS for Secure Element?

Вы можете обратиться к выбранному вами поставщику SIM-карт.

Почему во время выполнения CTS с использованием сегментирования токенов на экране блокировки отображается SIM-карта Orange?

Тестовый пример не запускается, потому что SIM-карта заблокирована для тестирования. Отключите блокировку SIM-карты в настройках блокировки SIM-карты перед выполнением CTS с сегментированием токенов.

Тест выполняется, когда флаги функций отключены в устройстве.

Для всех флагов в релизных сборках аннотация @RequiresFlagsEnabled или @RequiresFlagsDisabled использует значения флагов из конфигурации бинарного релиза CTS, а не из конфигурации релиза устройства. Отключение флагов на устройстве не отключает тест, поскольку набор тестов CTS, запускаемых для данного релиза, привязан к конфигурации релиза платформы AOSP.