Proyecto Pruebas automatizadas
Semana 6: Pruebas de regresión visual
Estimado equipo de pruebas, TSDC ha visto los avances en la automatización de pruebas E2E sobre la ABP y han expresado su interés por continuar con su trabajo para detectar “crashes”, excepciones y errores inesperados sin intervención humana. Particularmente, están interesados en la identificación de errores y garantizar la calidad de la aplicación a lo largo del tiempo.
En este momento, su equipo ha estado utilizando una versión reciente de la ABP (versión candidata para release, o versión rc) para llevar a cabo la implementación y ejecución de pruebas. Sin embargo, dado que TSDC todavía mantiene y ofrece soporte a versiones anteriores, se ha expresado la necesidad de que el trabajo de automatización realizado también cubra dichas versiones. Por otra parte, la persona que diseñó los cambios de la ABP para la versión más reciente no realizó ninguna documentación, por lo que tenemos incertidumbre sobre los cambios en la interfaz y el impacto que esto tendrá sobre las pruebas.
Resumen de las actividades
Debido a las preocupaciones sobre los cambios de la versión rc, usted junto con su equipo deben instalar una versión anterior que utilizarán como base (versión base) para ayudarnos a garantizar la calidad de la aplicación a lo largo del tiempo mediante la ejecución de prueba de regresión visual (VRT). Para ello, le solicitamos a su equipo:
-
Implementar la toma de screenshots al interior de las pruebas ya existentes (tanto en Kraken como la herramienta de su elección). Tengan en cuenta que el objetivo final de esta fase es realizar comparación de dichos screenshots, por lo que estos deben ser tomados después de cada paso ejecutado.
-
Ejecutar los 40 escenarios modificados en la versión actual (versión rc).
-
Utilizar la versión 4.5
de la ABP (GHOST) como la versión base. Les recomandamos utilizar Docker para deplegar las diferentes versiones de la aplicación (tutorial Cómo desplegar Ghost utilizando Docker)
- Seleccionar 10 escenarios para implementarlos y ejecutarlos en la versión base. Preferiblemente, los escenarios deben pertenecer a funcionalidades diferentes, para que sean ejecutados en modo de regresión visual a nivel de paso ejecutado.
- Nota: Los escenarios de prueba deben ser implementados en Kraken y la otra herramienta de su elección.
- Construir scripts para las pruebas de regresión visual; Dadas dos carpetas de ejecución de pruebas (screenshots), el script debe analizar de forma automática los resultados de cada paso y presentar un reporte HTML con: los pasos, los screenshots en ambas versiones y las diferencias visuales.
- Deben haber 2 scripts, uno por herramienta de automatización (Kraken y herramienta de su elección).
- Deben utilizar 2 de las siguientes herramientas para la comparación de imágenes: ResembleJS, PixelMatch, o BackstopJS. (por ejemplo ResembleJS para Kraken y BackstopJS para la herramienta de su elección).
-
Si encuentran diferencias visuales, estas deben ser reportadas en el sistema de registro de incidencias (una incidencia por diferencia encontrada).
-
Redactar un resumen de los pros y los contras de cada herramienta. Este resumen debe estar en el reporte de la actividad
- Actualizar la estrategias de pruebas para incluir pruebas de regresión visual, al igual que la retroalimentación de las semanas anteriores.
Detalles de la entrega
a entrega debe ser realizada utilizando el repositorio de trabajo dado por el equipo docente (en caso de no poder acceder a la organización del curso, Uniandes-MISW4103, contacten al equipo docente). Su equipo debe crear un release en el repositorio (ver cómo crear un release) con los siguientes elementos:
- La carpeta
./e2e
- Los 40 escenarios de prueba modificados (versión
rc
) para la captura de imágenes.
- Los 10 escenarios de prueba en la versión
base
.
- Los README de cada herramienta deben ser actualizados para garantizar que el equipo docente pueda instalar, ejecutar y ver los resultados (imágenes) de las pruebas.
- Nota: Deben utilizar todos los patrones vistos para E2E en ambas herramientas (Page Object, Given-When-Then).
- La carpera
./vrt
con los dos scripts para ejecutar las regresiones visuales (leer el README de la carpeta para entender cómo configurar las herramientas).
- Los README de cada herramienta deben ser actualizados para garantizar que el equipo docente pueda instalar, ejecutar las regresiones.
- Deben utilizar 2 de las siguientes herramientas para la comparación de imágenes: ResembleJS, PixelMatch, o BackstopJS.
- El archivo
./actividades/actividad-semana-6
debe tener tener como mínimo:
- Información de los integrantes que participaron en la actividad.
- Listado de las funcionalidades que seleccionaron de su estrategia de prueba. Debe incluir, como mínimo, un identificador, un nombre, y una descripción.
- Listado de escenarios de prueba. Cada escenario debe tener, por lo menos, un identificador único, la funcionalidad asociada, una descripción, y las versiones en las que está disponible (
base
, rc
).
- Enlace al sistema de registro de incidencias del equipo (se recomienda utilizar los issues del repositorio) en donde se reportan las diferencias visuales identificadas.
- Enlace a la estrategia de pruebas (*), la cual debe incluir el uso de pruebas de regresión visual y las mejoras a partir de la retroalimentación recibida de las actividades anteriores.
- Enlace al video explicando el procedimiento realizado para la toma de screenshots, las decisiones tomadas respecto al reporte generado y los resultados del proceso de VRT.
- El resumen de los pros y los contras de cada herramienta de regresión visual seleccionada.
(*) Los videos y documentos que incluyan en su entrega deben estar alojado en algún gestor de contenido (Google drive, OneDrive, Youtube, etc), deben ser públicos o deben permitir el acceso a cuentas de la Universidad de Los Andes (@uniandes.edu.co
). Para el caso de documentos, estos deben estar en formato .pdf
.
Criterios de evaluación:
-
“Fatalities”.
Nota: el incumplimiento de cualquiera de los aspectos mencionados a continuación puede incurrir en una penalización sobre la calificación de la actividad.
- El repositorio del equipo (org Uniandes-MISW4103) NO cuenta con un release, creado dentro del plazo establecido, en donde se incluyen todos los entregables de la actividad. [-15 puntos]
- Se incluyen archivos multimedia (videos, logs, imágenes, etc.), documentos no-planos (.pdf, .xlsx) o dependencias/librerías (node_modules) dentro del release o el repositorio. [-20 puntos]
- El enlace a la estrategia de pruebas NO se encuentra en el repositorio del equipo (
./actividades/actividad-semana-4
), NO es público, o NO permite el acceso a cuentas de la universidad. [-30 puntos]
- Uno o más documentos realizados por el equipo se encuentran en formatos distintos a
.pdf
. [-5 puntos]
- El enlace al video NO se encuentra en el repositorio del equipo (
./actividades/actividad-semana-4
), NO es público, o NO permite el acceso a cuentas de la universidad. [-10 puntos]
- Estrategia de Pruebas. [15 puntos]
- Se actualiza la estrategia de pruebas con la retroalimentación de la entrega anterior. La estrategia utiliza el formato indicado. [5 puntos]
- La estrategia de pruebas incluye el uso de pruebas de regresión visual. La estrategia es coherente respecto al presupuesto, el TNT, y la distribución de esfuerzo. [10 puntos]
- Pruebas E2E para regresión visual. [35 puntos]
- El repositorio cuenta con los 40 escenarios de prueba de la semana pasada (versión rc) modificados para la toma de screenshots. Los escenarios se ejecutan exitosamente. [15 puntos]
- El repositorio cuenta con los 10 escenarios de prueba modificados para la versión base de la ABP. Las pruebas se implementan tanto en Kraken como en la herramienta de su elección. Los escenarios se ejecutan exitosamente. [15 puntos]
- Los escenarios de prueba utilizan correctamente los patrones Page Object y Given-When-Then. [5 puntos]
-
Pruebas de regresión visual. [30 puntos]
Nota: cada herramienta para regresiones visuales debe (1) realizar la comparación automática de los screenshots obtenidos luego de ejecutar las pruebas E2E en la versión base y rc, y (2) debe generar un reporte HTML con los resultados obtenidos (se deben evidencias las comparaciones visuales). La comparación visual se debe hacer al nivel de cada paso de los escenarios de prueba.
- El repositorio del equipo (
./vrt/*
) cuenta con el primer script para realizar regresiones visuales de las pruebas E2E en el framework de automatización de su elección (Cypress, Playwright, Puppeteer). El README detalla las instrucciones de instalación y ejecución del script. [15 puntos]
- El repositorio del equipo (
./vrt/*
) cuenta con el segundo script para realizar regresiones visuales de las pruebas E2E en Kraken. El README detalla las instrucciones de instalación y ejecución del script. [15 puntos]
-
Reporte de la Actividad. [10 puntos]
El reporte de la actividad de su repositorio de equipo (./actividades/actividad-semana-6
):
- Se listan las funcionalidades seleccionadas para las pruebas E2E. Cada funcionalidad cuenta con un identificador único, un nombre, y una descripción. [2 puntos]
- Se listan los escenarios pruebas E2E. Cada escenario cuenta con un identificador único, una descripción, la funcionalidad asociada, y las versiones en las que está disponible (
base
, rc
). [3 puntos]
- El resumen de los pros y los contras de las herramientas de regresión visual seleccionada es coherente con las herramientas. [5 puntos]
- Video. [10 puntos]
- El video incluye los ajustes a la estrategia de pruebas. La explicación de la estrategia es coherente. [5 puntos]
- El video incluye el procedimiento realizado para la toma de screenshots, las decisiones tomadas respecto al reporte generado y los resultados del proceso de VRT. [5 puntos]
La evaluación tendrá en cuenta la inclusión de la totalidad de componentes solicitados y la calidad de cada uno de acuerdo con la rúbrica establecida.