Cómo ejecutar pruebas de CTS

Trade Federation es un framework de pruebas continuas para ejecutar pruebas en dispositivos Android. Para ejecutar el Conjunto de pruebas de compatibilidad (CTS), primero lee la descripción general de Trade Federation para obtener una explicación del framework de pruebas de Tradefed.

Para ejecutar un plan de pruebas, sigue estos pasos:

  1. Configura los dispositivos en prueba (DUT) según la configuración de dispositivos Android.
  2. Asegúrate de haber instalado las versiones recientes de Android Debug Bridge (adb) y Android Asset Packaging Tool (AAPT), y de haber agregado la ubicación de esas herramientas a la ruta de acceso del sistema de tu máquina. Para obtener información sobre cómo instalar esas herramientas, consulta Cómo configurar CTS: ADB y AAPT.
  3. Descarga las compilaciones de CTS publicadas en tu máquina anfitrión de Linux y descomprime la compilación en la ubicación del host.
  4. Conecta al menos un dispositivo. Para preparar el DUT, haz lo siguiente:
    • Presiona el botón de inicio para configurar el dispositivo en la pantalla principal.
    • No uses el DUT para ninguna otra tarea.
    • Mantén el DUT en una posición estacionaria para evitar activar la actividad del sensor.
    • Apunta la cámara del dispositivo hacia un objeto que se pueda enfocar.
    • No presiones ninguna tecla del dispositivo mientras se ejecuta el CTS. Si presionas teclas o tocas la pantalla de un DUT, se interfiere con las pruebas en ejecución y puede provocar fallas.
  5. Inicia la secuencia de comandos cts-tradefed de la consola de CTS desde la carpeta en la que se descomprimió el paquete de CTS. En la shell de línea de comandos del host, ejecuta lo siguiente:

    ./android-cts/tools/cts-tradefed
  6. Ejecuta el plan de prueba predeterminado (contiene todos los paquetes de prueba):

    cts-tradefed > run cts
    • Si deseas mejorar el tiempo de ejecución de las pruebas, puedes fragmentarlas en varios dispositivos. El fragmentación requiere que el host conecte al menos dos dispositivos, pero se recomiendan seis o más dispositivos para mejorar la eficiencia. Cuando se fragmenta más de 1 dispositivo, ocurre lo siguiente:

      • En el caso de Android 9 y versiones posteriores, usa la opción de comando

        --shard-count number_of_shards
      • Para Android 8.1 y versiones anteriores, usa la opción de comando

        --shards number_of_shards
    • Si no quieres ejecutar todo el conjunto de pruebas, puedes ejecutar el plan CTS que prefieras desde la línea de comandos:

      run cts --plan test_plan_name

      Para encontrar el nombre del plan de prueba, sigue estos pasos:

      • Para ver una lista de los módulos de prueba en Android 7.0 y versiones posteriores, ingresa

        list modules
      • En el caso de Android 6.0 y versiones anteriores, para ver una lista de planes de prueba en el repositorio, ingresa

        list plans
      • En el caso de Android 6.0 y versiones anteriores, para ver una lista de paquetes de prueba en el repositorio, ingresa

        list packages
    • Si deseas obtener opciones de comandos adicionales según las versiones de CTS, consulta la referencia de comandos de la consola o en "Ayudar a todos" en la consola de Tradefed.

  7. Ejecuta varias sesiones de Reintento hasta que se completen todos los módulos de prueba y los números de pruebas fallidas sean los mismos en las últimas dos sesiones de reintento.

    • En Android 9 y versiones posteriores, usa

      run retry --retry session_number --shard-count number_of_shards
    • Para Android 7.0 a 8.1, usa

      run cts --retry session_number --shards number_of_shards
    • Para obtener opciones adicionales del comando Retry según la versión de CTS, consulta la Consola de comandos de CTS v2.

    • Para comprender los detalles de implementación del reintento de CTS, consulta Reintento del paquete de Federación de Comercio.

  8. Ejecutar una sesión de reintento solo en las pruebas parametrizadas con errores Las pruebas parametrizadas aprobadas no se reintentan.

    • En Android 11 y versiones posteriores, la siguiente opción de comando de reintento está habilitada de forma predeterminada en el comando run cts:

      run retry --retry  --new-parameterized-handling
  9. Consulta el progreso y los resultados de las pruebas que se informan en la consola.

Ejecuta CTS con Android Test Station

Android Test Station es una herramienta de automatización de pruebas que los desarrolladores y los ingenieros de pruebas de Android pueden usar para emplear una interfaz de usuario para ejecutar conjuntos de pruebas estándar. Funciona con el Conjunto de pruebas de compatibilidad (CTS) de Android.

La herramienta está disponible para el público a través de la Guía del usuario de ATS, y su código es de código abierto en AOSP (multitest_transport, tradefed_cluster).

Cómo ejecutar CTS para modos alternativos

La versión R4 de CTS 10 agrega un plan de prueba para dispositivos con modos alternativos o con más de una pantalla. Ejecuta el plan de prueba de modos alternativos con run cts-foldable.

Los casos de prueba aprobados o fallidos para el modo de pantalla alternativo se agregan con el valor de display_mode, por ejemplo, testcase1[display_mode=0].

En CTS 13, la API de DeviceStateManager permite que los módulos de prueba con la siguiente opción de configuración se ejecuten en diferentes estados de un dispositivo plegable. La ejecución de pruebas es automática en CTS según los estados de plegado de la pantalla definidos en el dispositivo sin necesidad de ejecutar el plan de pruebas de cts-foldable.

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

Pruebas multidispositivo en CTS

Android 13 y versiones posteriores admiten pruebas multidispositivo. Las pruebas que requieren varios dispositivos se ejecutan automáticamente durante la ejecución de CTS. El CTS 13 incluye algunas pruebas multidispositivo que se activan automáticamente cuando se usa la fragmentación. Si bien las pruebas no requieren cambios adicionales en la configuración física, virtualenv debe instalarse para que las pruebas se ejecuten correctamente. Para obtener más información, consulta Paquetes multidispositivo.

Ejecuta pruebas multidispositivo

Para ejecutar pruebas multidispositivo de forma independiente, usa el siguiente código:

  cts-tradefed > run cts-multidevice
  

Se admiten todas las opciones normales. Para segmentar los anuncios para dispositivos específicos, agrega --serial <serial1> --serial <serial2> y así sucesivamente para la cantidad de dispositivos segmentados.

Para activar pruebas multidispositivo automáticamente, usa el fragmentación, como en --shard-count 2.