CTS desarrollado por desarrolladores

En esta página, se describen los lineamientos de uso del CTS desarrollado por desarrolladores (CTS-D).

Cobertura de la prueba

CTS-D, al igual que CTS y el verificador de CTS, solo puede aplicar lo siguiente:

  • Todas las APIs públicas que se describen en el SDK para desarrolladores (developer.android.com) para un nivel de API determinado
  • Todos los requisitos OBLIGATORIOS que se incluyen en el Documento de definición de compatibilidad de Android (CDD) para un nivel de API determinado.

Los requisitos que no son OBLIGATORIOS, como ALTAMENTE RECOMENDADO, DEBERÍA, PUEDE, son opcionales y no se pueden probar con CTS.

Debido a que todas las APIs y los requisitos del CDD están vinculados a un nivel de API específico, todas las pruebas de CTS (CTS, CTS-D y CTS Verifier) están vinculadas al mismo nivel de API que sus APIs o requisitos asociados. Si una API específica deja de estar disponible o se modifica, la prueba correspondiente debe quedar obsoleta o debe actualizarse.

Reglas de creación de pruebas de CTS

  • Una prueba debe producir el mismo resultado objetivo de forma coherente.
  • Una prueba debe determinar si un dispositivo es aprobado o no probándolo una vez sin configurarlo.
  • Los creadores de pruebas deben quitar todos los factores posibles que puedan afectar los resultados de las pruebas.
  • Si un dispositivo necesita una condición, un entorno o una configuración de hardware específicos, esa configuración debe definirse claramente en el mensaje de confirmación. Para obtener instrucciones de configuración de ejemplo, consulta Cómo configurar CTS.
  • La prueba no debe ejecutarse durante más de 6 horas a la vez. Si necesita ejecutarse durante más tiempo, incluye el razonamiento en tu propuesta de prueba para que podamos revisarla.

El siguiente es un ejemplo de un conjunto de condiciones de prueba para probar una restricción de app:

  • La red Wi-Fi es estable (para una prueba que depende de Wi-Fi).
  • El dispositivo permanece inmóvil durante la prueba (o no, según la prueba).
  • El dispositivo está desconectado de cualquier fuente de alimentación con un X por ciento del nivel de batería.
  • No se están ejecutando apps, servicios en primer plano ni servicios en segundo plano, excepto por CTS.
  • La pantalla está apagada mientras se ejecuta CTS.
  • El dispositivo NO es isLowRamDevice.
  • No se cambiaron las restricciones del Ahorro de batería ni de las apps desde el estado "listo para usar".

Cómo probar la elegibilidad

Aceptamos pruebas nuevas que apliquen un comportamiento que no se pruebe con las pruebas existentes de CTS, CTS Verifier o CTS-D. Se rechazará cualquier prueba que verifique un comportamiento fuera del alcance de nuestra cobertura de pruebas.

Proceso de envío de CTS

  1. Escribir una propuesta de prueba: Un desarrollador de apps envía una propuesta de prueba con la herramienta de seguimiento de errores de Google, en la que describe el problema que se identificó y propone una prueba para verificarlo. La propuesta debe incluir el ID de requisito de la CDD asociado. El equipo de Android revisa la propuesta.
  2. Desarrolla una prueba del CTS: Después de que se aprueba una propuesta, el remitente crea una prueba del CTS en la rama principal (AOSP/principal). El equipo de Android revisa el código.
  3. Prueba de publicación: Envía tu CL en AOSP/main y, luego, selecciónala en la rama androidx-tests-dev más reciente. La prueba ahora está disponible para el público.

Lineamientos para la redacción de pruebas de CTS-D

  • Sigue la Guía de estilo de código Java.
  • Sigue todos los pasos que se describen en Desarrollo de CTS.
  • Agrega tus pruebas al plan de pruebas adecuado:
    • Usa include-filters para agregar tus pruebas nuevas al plan de pruebas de CTS-D: platform/cts/tools/cts-tradefed/res/config/cts-developer.xml.
    • Usa exclude-filters para excluir tus pruebas nuevas del plan de pruebas principal de CTS: platform/cts/tools/cts-tradefed/res/config/cts-developer-exclude.xml.
  • Controla todas las advertencias y sugerencias de errorprone en build_error.log.
  • Vuelve a basar los cambios en head. Esto incluye los planes de prueba cts-developer.xml y cts-developer-exclude.xml.
  • Trabaja con tu contacto de Ingeniería de Google para determinar si tu caso de prueba puede incluirse en un módulo de CTS existente. Si no puede, te ayudarán a crear un módulo nuevo.
  • Para cada módulo de prueba nuevo, crea un archivo OWNERS en el nuevo directorio del módulo de prueba.
    • Tu archivo OWNERS debe contener la siguiente información, que se obtiene del propietario de prueba de Google con el que estás trabajando:
    • # Bug component: xxx
    • LDAP del propietario de prueba de Google
  • En AndroidTest.xml, especifica los siguientes parámetros. Consulta los archivos de muestra (1, 2) para obtener ejemplos:
    • Instant_app o not_instant_app
    • secondary_user o not_secondary_user
    • all_foldable_states o no_foldable_states
  • Para especificar el minSDK correcto, consulta la documentación de <uses-sdk>.
  • Cuando revises métodos, clases o módulos de prueba nuevos, agrégalos al plan de pruebas de CTS-D y exclúyelos del plan de pruebas principal de CTS de la misma manera que lo haces con las pruebas nuevas.

Ejecuta tu prueba de CTS-D

Ejecuta el plan de pruebas de CTS-D desde la línea de comandos con run cts --plan cts-developer.

Para ejecutar un caso de prueba específico, usa run cts --include-filter "test_module_name test_name".

Para obtener información sobre cómo ejecutar el CTS completo, consulta Cómo ejecutar pruebas de CTS.

Aceptación y lanzamiento

Una vez que se envíe una solicitud de prueba, un equipo interno la revisará para asegurarse de que pruebe un requisito de CDD o un comportamiento documentado de la API. Si se determina que la prueba está verificando un requisito o comportamiento válido, el equipo reenviará este caso de prueba a un ingeniero de Google para que lo revise en más detalle. El ingeniero de Google se comunicará contigo para darte comentarios sobre cómo se puede mejorar la prueba antes de que pueda aceptarse en CTS.

Consulta la sección Información de las ramas y el programa de lanzamientos para obtener detalles sobre el programa de lanzamientos de CTS.