Preguntas frecuentes sobre CTS

El Programa de compatibilidad de Android es el factor clave para mantener los comentarios positivos para el ecosistema de Android. CTS es la herramienta clave para garantizar la calidad de la compatibilidad en la báscula. El equipo de Android continúa mejorando la herramienta CTS y la cobertura de prueba. La adición regular de casos de prueba tiene una mejora significativa en la calidad de los dispositivos compatibles.

Este artículo proporciona preguntas frecuentes para ejecutar las pruebas CTS de manera más eficiente.

¿Cuál es la diferencia entre la fragmentación CTS y la fragmentación TF?

CTS Sharding y TF Sharding son planes de prueba totalmente diferentes impulsados ​​por una base de código de infraestructura de prueba diferente. Si bien el comando de ejecución es el mismo en diferentes versiones, el resultado de la fragmentación se comporta de manera diferente. CTS Sharding asigna estáticamente casos de prueba a dispositivos bajo prueba (DUT) de la siguiente manera:

TF Sharding asigna dinámicamente casos de prueba a DUT disponibles de la siguiente manera:

¿Qué se espera de un dispositivo compatible con varias ABI?

El dispositivo tiene que pasar todos los CTS/Verifier para cada modo ABI que afirma admitir. Por lo tanto, es necesario ejecutar una aplicación para las ABI particulares. Las pautas para múltiples ABI son las siguientes:

  • Para CTS/Verifier, existen versiones ARM y x86 para cada arquitectura. Cada uno de ellos puede admitir el modo de 32 o 64 bits.
  • Para las pruebas CTS, si un dispositivo es compatible con ARM y x86, debe ejecutar y aprobar las pruebas ARM y x86 CTS, respectivamente.

Ver DDC 3.3.1. Interfaces binarias de aplicación para requisitos de CDD en ABI.

¿Es suficiente ejecutar una prueba solo en la ABI principal (por ejemplo, 64 bits) para reducir el tiempo de ejecución de la prueba?

No. Una aplicación de Android se ejecuta en sus propios tiempos de ejecución de 32 o 64 bits. El código de máquina real, la ruta del código y el estado son diferentes entre 32 y 64. Si omite un modo, solo cubre el 50 % de la ABI del dispositivo.

¿Por qué hay tantos casos de prueba informados como no ejecutados?

Debe verificar el número de Módulo terminado en lugar del número de No ejecutado .

En las versiones anteriores, los módulos CTS se notificaban como Módulo terminado de manera demasiado agresiva antes de completarse. Por lo tanto, se informó un número de módulos terminados sin que todo el caso de prueba estuviera completo, incluso cuando algunos dispositivos tenían problemas. El nuevo arnés de prueba es más conservador e informa una mayor cantidad de pruebas no ejecutadas cuando ocurre un problema.

Un módulo que se ejecuta hasta su finalización informa Módulo no realizado en la invocación más reciente (done="false") en el informe durante lo siguiente:

  • Una ejecución de prueba para el módulo fue interrumpida por un problema de conexión del dispositivo.
  • No se realizaron todas las ejecuciones de prueba esperadas para el módulo.
  • Reintentado (con la opción -r/--retry ) con opciones de filtrado adicionales, como:

    • --incluir-filtro
    • --excluir-filtro
    • -t/--test (Opción aún no admitida en el reintento)
    • --tipo de reintento fallido
    • --subplan

Para obtener un estado de módulo terminado (done="true") para estos módulos, vuelva a intentar lo siguiente para la invocación más reciente:

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

Un módulo ejecutado sin ninguno de los problemas mencionados anteriormente (incluso con 0 pruebas restantes) se marca como Módulo Terminado en el nuevo informe.

Excepciones

  • CtsNNAPITestCases tiene un problema conocido debido a la limitación de argumentos de Linux/OS. El módulo se puede volver a ejecutar de forma aislada run cts -m CtsNNAPITestCases directamente.

¿Cómo puedo evitar que la preparación para el examen falle detrás del firewall corporativo?

Todos los conjuntos de pruebas automatizados intentan descargar los archivos de medios CTS o los archivos de lógica comercial durante el tiempo de ejecución. En muchos entornos corporativos, un servidor de seguridad/proxy es típico, lo que hace que la preparación de la prueba falle. Ejecute la siguiente línea o agréguela a .profile (en Ubuntu).

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

¿Necesito una tarjeta SIM para CTS para Secure Element?

La necesidad de una tarjeta SIM para la prueba depende de que se comprenda si la función es compatible con el dispositivo de prueba.

  • Si su dispositivo NO necesita admitir las aplicaciones de Android que acceden a elementos seguros, ya sea en la UICC (por ejemplo, una tarjeta SIM) distribuida por los operadores de redes móviles (portadores) o integrada en el dispositivo, puede configurar el manifiesto HIDL para que no incluya el elemento HAL android.hardware.secure_element . En este caso, la API android.se.omapi.SEService.getReaders() informará una lista vacía y la prueba CTS pasará automáticamente e informará que pasó la prueba CTS.
  • Si su dispositivo NECESITA admitir aplicaciones de Android que accedan a elementos seguros, ya sea en la UICC (por ejemplo, una tarjeta SIM) distribuida por los operadores de redes móviles (portadores) o integrada en el dispositivo, debe implementar el elemento seguro correctamente y probarlo en casa CTS Test for Secure Element describe cómo prepararse para ejecutar las pruebas CTS que garantizan que el paquete API android.se.omapi agregado en Android 9 sea funcional. También recomendamos realizar pruebas adicionales por su cuenta ya que la cobertura de la prueba CTS es mínima.

¿Dónde puedo obtener las tarjetas SIM para CTS para Secure Element?

Puede comunicarse con su proveedor SIM preferido.

¿Por qué aparece Orange SIM en la pantalla de bloqueo durante la ejecución de CTS con token sharding?

El caso de prueba no se inicia porque la prueba de la tarjeta SIM está bloqueada. Deshabilite la opción "Bloquear tarjeta SIM" en "Configuración de bloqueo de tarjeta SIM" antes de ejecutar el CTS con token sharding.