Pruebas de plataforma Android

Este contenido está dirigido a desarrolladores de plataformas Android. Antes de comprender cómo se realizan las pruebas en la plataforma Android, consulte la arquitectura de la plataforma Android para obtener una descripción general.

Luego, profundice en las tecnologías precisas disponibles para usted en esta sección, como Vendor Test Suite (VTS) y sus innumerables tutoriales en video y codelab .

Tenga en cuenta también los mecanismos de prueba específicos de seguridad disponibles para detectar y proteger sus dispositivos contra vulnerabilidades.

Para probar aplicaciones, comience con los fundamentos de las pruebas y realice el Codelab de pruebas de Android utilizando los ejemplos proporcionados.

Finalmente, tenga en cuenta que las pruebas básicas previas al envío están disponibles a través de Repo Hooks que pueden ejecutar linters, verificar el formato y activar pruebas unitarias antes de continuar, como cargar una confirmación. Tenga en cuenta que estos enlaces están deshabilitados de forma predeterminada. Consulte la introducción a Repo Hooks para obtener más detalles.

Que y como probar

Una prueba de plataforma generalmente interactúa con uno o más de los servicios del sistema Android, o capas de Capa de abstracción de hardware (HAL), ejercita las funcionalidades del sujeto bajo prueba y afirma la exactitud del resultado de la prueba.

Como tal, una prueba de plataforma puede:

  1. ejercitar las API del marco a través del marco de la aplicación; Las API específicas que se ejercen pueden incluir:
    • API públicas destinadas a aplicaciones de terceros
    • API ocultas destinadas a aplicaciones privilegiadas, concretamente API del sistema
    • API privadas (@ocultar, o proteger, paquete privado)
  2. invocar servicios del sistema Android a través de proxies raw binder/IPC directamente
  3. interactuar directamente con HAL a través de API de bajo nivel o interfaces IPC

Los tipos 1 y 2 generalmente se escriben como pruebas de instrumentación , mientras que los tipos 3 generalmente se escriben como GTests .

Para obtener más información, consulte nuestros ejemplos de un extremo a otro:

Familiarícese con estas herramientas, ya que son intrínsecas a las pruebas en Android.

Conjunto de pruebas de compatibilidad (CTS)

Android Compatibility Test Suite es un conjunto de varios tipos de pruebas que se utilizan para garantizar la compatibilidad de las implementaciones del marco de trabajo de Android entre socios OEM y entre versiones de plataformas. La suite también incluye pruebas de instrumentación y el marco GTest.

Las pruebas CTS y de plataforma no se excluyen mutuamente y aquí se ofrecen algunas pautas generales:

  • Si una prueba afirma la exactitud de las funciones/comportamientos de la API del marco y debe aplicarse a todos los socios OEM, debe estar en CTS.
  • Si una prueba está destinada a detectar regresiones durante el ciclo de desarrollo de la plataforma, y ​​puede requerir un permiso privilegiado para llevarse a cabo, y puede depender de los detalles de implementación (como se publica en AOSP), solo deben ser pruebas de plataforma.

Conjunto de pruebas de proveedores (VTS)

Vendor Test Suite (VTS) automatiza las pruebas del kernel HAL y del sistema operativo. Para usar VTS para probar una implementación integrada del sistema Android, configure un entorno de prueba y luego pruebe un parche usando un plan VTS.

Infraestructura de prueba de la Federación de Comercio

Trade Federation (Tradefed o TF para abreviar) es un marco de prueba continuo diseñado para ejecutar pruebas en dispositivos Android. TF puede ejecutar pruebas funcionales localmente, en su escritorio, dentro de la caja de su plataforma. Hay dos archivos necesarios para ejecutar una prueba en TF, una fuente de prueba de Java y una configuración XML. Consulte RebootTest.java y reboot.xml para ver ejemplos.

Depuración

La sección Depuración resume herramientas útiles y comandos relacionados para depurar, rastrear y crear perfiles del código integrado de la plataforma Android al desarrollar funciones a nivel de plataforma.