El ciclo de vida de una prueba ejecutada mediante Trade Federation se compone de cuatro etapas separadas, diseñadas en torno a interfaces definidas formalmente.
Interfaces definidas
- Proveedor de compilación : proporciona una compilación para probar y descarga los archivos apropiados si es necesario.
- Target Preparer : prepara el entorno de prueba, posiblemente incluyendo la instalación del software y la configuración del dispositivo.
- Prueba : ejecuta pruebas y recopila los resultados de las pruebas. Puede ser cualquier prueba JUnit, aunque nuestra interfaz IRemoteTest está diseñada específicamente para funcionar bien en el entorno de Trade Federation.
- Escucha de invocación de prueba (informes de resultados) : escucha los resultados de las pruebas, generalmente con el fin de reenviarlos a un repositorio o mostrarlos al ejecutor de pruebas.
La entidad de prueba fundamental en TF es una Configuración (config). Una configuración es un archivo XML que declara los componentes del ciclo de vida de una prueba.
Esta separación del ciclo de vida de la prueba tiene como objetivo permitir su reutilización. Con este diseño, el desarrollador puede crear una prueba una vez y luego el integrador puede crear diferentes configuraciones para ejecutar esa prueba en diferentes entornos. Por ejemplo, podrían crear una configuración que ejecutará una prueba en una máquina local y volcará el resultado a la salida estándar. Luego podrían crear una segunda configuración que ejecutaría esa misma prueba, pero usaría un oyente de invocación de prueba diferente para almacenar los resultados de la prueba en una base de datos. Se podría diseñar una tercera configuración para ejecutar esa prueba continuamente desde un laboratorio de pruebas en algún lugar.
Es conveniente señalar aquí que una Configuración junto con sus argumentos de línea de comandos (según los proporcionados por Test Runner) se conoce como Comando . Cuando TF empareja un Comando con un ITestDevice
y lo ejecuta, el objeto posterior se conoce como Invocación . En resumen, una Invocación abarca una ejecución completa de prueba TF, a lo largo de todo su ciclo de vida.
Componentes de configuración adicionales
- Recuperación del dispositivo : mecanismo para recuperar la comunicación del dispositivo si se pierde.
- Logger : recopila datos de registro comercializados.
Salida de escenario y errores
Cada etapa de una invocación se ejecuta secuencialmente y tiene un objetivo específico. Esta sección describe las salidas y errores habituales de cada etapa.
Proveedor de compilación
Esta etapa crea y genera un objeto IBuildInfo
que contiene todas las referencias de archivos necesarias para configurar y ejecutar las pruebas.
El error más común en esta etapa es no descargar o encontrar los archivos solicitados.
Un error en esta etapa da como resultado que se informe directamente del error y no se ejecuten pruebas.
Preparación del objetivo
Esta etapa establece los estados necesarios para el objetivo bajo prueba. Esta etapa puede alterar el dispositivo o la configuración del host según sea necesario para la invocación de prueba dada.
Los errores comunes en esta etapa generalmente implican no configurar el dispositivo en un estado determinado (por ejemplo, falla en el flasheo) y no encontrar los archivos necesarios para la configuración.
Un error en esta etapa da como resultado que se ejecute la limpieza del objetivo, se informe del error y no se ejecuten pruebas.
Pruebas
Esta etapa ejecuta las pruebas solicitadas en el objetivo previamente preparado e informa todos los resultados de la ejecución de las pruebas.
Los errores comunes en esta etapa generalmente implican que el objetivo bajo prueba no esté disponible o que algún error cause la ejecución parcial de las pruebas. Estos errores son problemas de infraestructura que afectan la ejecución de la prueba en sí, en lugar de una falla de un solo caso de prueba.
Un error en esta etapa da como resultado que se detenga la ejecución de la prueba, se ejecute la limpieza del objetivo, se informe el error y se obtengan resultados parciales.
Informe de resultados
Esta etapa informa los resultados y errores a los servicios configurados (por ejemplo, servidores y archivos locales).
Aunque los reporteros de resultados individuales pueden tener errores, están aislados unos de otros (un reportero no ve los errores de otro). Estos errores afectan solo los informes de resultados de un reportero individual y los errores se pueden ver en los registros.