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

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

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

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

Какие типы вещей тестирует CTS?

CTS проверяет, что все поддерживаемые строго типизированные API Android присутствуют и ведут себя правильно. 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 динамически назначает тестовые случаи доступным DUT следующим образом:

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

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

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

Требования CDD к ABI см. в разделе CDD 3.3.1. Двоичные интерфейсы приложений.

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

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

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

Вам следует проверить номер выполненного модуля вместо номера не выполненного модуля .

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

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

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

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

Чтобы получить статус «Модуль выполнен» (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

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

Исключения

  • CtsNNAPITestCases имеет известную проблему из-за ограничения args в Linux/OS. Модуль можно перезапустить изолированно, напрямую 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 автоматически проходит и сообщает о прохождении для CTS.
  • Если вашему устройству НУЖНО поддерживать приложения Android, получающие доступ к защищенным элементам — либо в UICC (например, SIM-карте), распространяемой операторами мобильной связи (операторами), либо встроенным в устройство, — вам необходимо правильно реализовать защищенный элемент и протестировать его внутри компании. Тест CTS для защищенного элемента описывает, как подготовиться к запуску тестов CTS, которые гарантируют, что пакет API android.se.omapi , добавленный в Android 9, функционирует. Мы также рекомендуем провести дополнительное тестирование самостоятельно, поскольку покрытие тестом CTS минимально.

Где я могу получить SIM-карты для CTS для Secure Element?

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

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

Тестовый случай не запускается, так как тестирование SIM-карты заблокировано. Отключите функцию Lock SIM-карты в **SIM card lock settings перед выполнением CTS с шардингом токенов.