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

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

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

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

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

The CTS tests that all of the supported Android strong-typed APIs are present and behave correctly. The CTS also tests other non-API system behaviors such as app lifecycle and performance.

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

The CTS is licensed under the same Apache Software License 2.0 that the bulk of Android uses.

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

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

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

This section provides FAQs that help run CTS tests more efficiently.

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

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

TF Sharding dynamically assigns test cases to available DUTs as follows:

What is expected from a device supporting multiple ABIs?

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

  • For CTS and CTS Verifier, there are ARM and x86 releases for each architecture. Each of them can support to 32- or 64-bit mode.
  • For CTS tests, if a device supports both ARM and x86, it has to run and pass both ARM and x86 CTS tests respectively.

See CDD 3.3.1. Application Binary Interfaces for CDD requirements on ABI.

Is it sufficient to run a test only on the primary ABI (for example, 64 bits) to reduce test execution time?

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

Why are there so many test cases reported as Not Executed?

You should check the Module Done number instead of Not Executed number.

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

A module run to completion reports Module Not Done in the most recent invocation (done="false") in the report during the following:

  • A test run for the module was interrupted by a device connection issue.
  • Not all expected test runs for the module were performed.
  • Retried (using option -r/--retry ) with additional filtering options, such as:

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

To obtain a status of Module Done (done="true") for these modules, retry the following for the most recent invocation:

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

A module executed without any of the problems mentioned previously (even with 0 remaining tests) is marked Module Done in the new report.

Исключения

  • CtsNNAPITestCases has a known issue due to linux/OS limitation of args. The module can be rerun in isolation through run cts -m CtsNNAPITestCases directly.

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

Все автоматизированные наборы тестов пытаются загрузить либо медиафайлы 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 минимально.

Where can I get the SIM cards for CTS for Secure Element?

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

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

The test case doesn't start because testing the SIM card is locked. Disable the Lock SIM card in **SIM card lock settings before executing the CTS with token sharding.

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

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