Mejores prácticas en la automatización de pruebas de canalización de datos

Mejores prácticas en la automatización de pruebas de canalización de datos

Nodo de origen: 2035833

Los procesos de integración de datos se benefician de las pruebas automatizadas como cualquier otro software. Sin embargo, es raro encontrar un proyecto de canalización de datos con un conjunto adecuado de pruebas automatizadas. Incluso cuando un proyecto tiene muchas pruebas, a menudo no están estructuradas, no comunican su propósito y son difíciles de ejecutar.

Una característica de tubería de datos El desarrollo es la publicación frecuente de datos de alta calidad para obtener comentarios y aceptación de los usuarios. Al final de cada iteración de canalización de datos, se espera que los datos sean de alta calidad para la siguiente fase. 

Las pruebas automatizadas son esenciales para las pruebas de integración de canalizaciones de datos. Las pruebas manuales no son prácticas en entornos de desarrollo altamente iterativos y adaptables.

Problemas principales con la prueba manual de datos

Primero, toma demasiado tiempo y es un inhibidor crítico para la entrega frecuente de tuberías. Los equipos que dependen principalmente de las pruebas manuales terminan posponiendo las pruebas a períodos de prueba dedicados, lo que permite que se acumulen errores. 

En segundo lugar, las pruebas manuales de canalización de datos no son lo suficientemente reproducibles para las pruebas de regresión. 

La automatización de las pruebas de canalización de datos requiere una planificación inicial y diligencia continua, pero una vez que los equipos técnicos adoptan la automatización, el éxito del proyecto está más asegurado.

Variantes de canalizaciones de datos

  • Extraer, transformar y cargar (ETL)
  • Extraer, cargar y transformar (ELT)
  • Lago de datos, canalizaciones de almacenamiento de datos
  • Canalizaciones en tiempo real
  • Canalizaciones de aprendizaje automático

Componentes de la canalización de datos para la consideración de la automatización de pruebas

Las canalizaciones de datos constan de varios componentes, cada uno responsable de una tarea específica. Los elementos de una canalización de datos incluyen:

  • Fuentes de datos: El origen de los datos
  • Ingestión de datos: El proceso de recopilación de datos de la fuente de datos.
  • Transformación de datos: El proceso de transformar los datos recopilados en un formato que se puede utilizar para un análisis posterior.
  • Verificaciones/validaciones de datos: El proceso para asegurar que los datos sean precisos y consistentes.
  • Almacenamiento de datos: El proceso de almacenar los datos transformados y validados en un almacén de datos o lago de datos
  • Análisis de los datos: El proceso de analizar los datos almacenados para identificar patrones, tendencias e información

Mejores prácticas para automatizar las pruebas de canalización de datos

Qué y cuándo automatizar (o incluso si necesita automatización) son decisiones cruciales para el equipo de prueba (o desarrollo). La selección de las características adecuadas del producto para la automatización determina en gran medida el éxito de la automatización. 

Al automatizar pruebas para una canalización de datos, las mejores prácticas incluyen:

  • Definir objetivos de prueba claros y específicos: Antes de comenzar a probar, es esencial definir lo que quiere lograr a través de las pruebas. Si lo hace, lo ayudará a crear pruebas efectivas y eficientes que brinden información valiosa..
  • Pruebe todos los flujos de trabajo de la canalización de datos: Una canalización de datos generalmente consta de varios componentes: ingesta, procesamiento, transformación y almacenamiento de datos. Es importante probar cada componente para garantizar el flujo adecuado y fluido de datos a través de la canalización.
  • Use datos de prueba creíbles: Al probar una canalización de datos, es importante utilizar datos realistas que imiten escenarios del mundo real. Esto ayudará a identificar cualquier problema que pueda ocurrir al manejar diferentes tipos de datos.
  • Automatice con herramientas efectivas: Esto se puede lograr utilizando marcos y herramientas de prueba.
  • Supervise la canalización periódicamente: Incluso después de completar las pruebas, es esencial monitorear la tubería regularmente para asegurarse de que funcione según lo previsto. Esto ayudará a identificar problemas antes de que se conviertan en problemas críticos.
  • Involucrar a las partes interesadas: Involucre a las partes interesadas, como analistas de datos, ingenieros de datos y usuarios comerciales en el proceso de prueba. Esto ayudará a garantizar que las pruebas sean relevantes y valiosas para todas las partes interesadas.
  • Mantener la documentación: Es importante mantener documentos que describan las pruebas, los casos de prueba y los resultados de las pruebas. Esto ayudará a garantizar que las pruebas se puedan replicar y mantener a lo largo del tiempo.

Ten cuidado; Debe evitarse la automatización de cambios en las características inestables. Hoy en día, ninguna herramienta comercial conocida o conjunto de métodos/procesos puede considerarse una prueba completa de extremo a extremo de la canalización de datos. 

Considere sus objetivos de automatización de pruebas

La automatización de pruebas de canalización de datos se describe como el uso de herramientas para controlar 1) la ejecución de pruebas, 2) comparaciones de los resultados reales con los resultados previstos, y 3) la configuración de las condiciones previas de la prueba y otras funciones de control de la prueba y generación de informes de la prueba. 

En general, la automatización de pruebas implica la automatización de un proceso manual existente que utiliza un proceso de prueba formal.

Aunque las pruebas manuales de canalización de datos pueden revelar muchas fallas en los datos, son laboriosas y requieren mucho tiempo. Además, las pruebas manuales pueden ser ineficaces para detectar ciertos defectos. 

La automatización de la canalización de datos implica el desarrollo de programas de prueba que, de lo contrario, tendrían que realizarse manualmente. Una vez que se automatizan las pruebas, se pueden repetir rápidamente. Este suele ser el método más rentable para una canalización de datos que puede tener una larga vida útil. Incluso las correcciones o mejoras menores durante la vida útil de la canalización pueden hacer que las características que funcionaban antes se rompan.

La integración de pruebas automatizadas en el desarrollo de canalizaciones de datos presenta un conjunto único de desafíos. Las herramientas de prueba de desarrollo de software automatizadas actuales no se adaptan fácilmente a los proyectos de bases de datos y canalización de datos. 

La amplia variedad de arquitecturas de canalización de datos complica aún más estos desafíos porque involucran múltiples bases de datos que requieren una codificación especial para la extracción de datos, transformaciones, carga, limpieza de datos, agregaciones de datos y enriquecimiento de datos.

Las herramientas de automatización de pruebas pueden ser costosas y, por lo general, se usan junto con las pruebas manuales. Sin embargo, pueden volverse rentables a largo plazo, especialmente cuando se usan repetidamente en pruebas de regresión.

Candidatos frecuentes para la automatización de pruebas   

  • Pruebas de informes de BI 
  • Negocios, cumplimiento del gobierno
  • Procesamiento de agregación de datos
  • Limpieza y archivo de datos
  • Pruebas de calidad de datos
  • Reconciliación de datos (p. ej., origen a destino)
  • Transformaciones de datos
  • Cargas de datos de la tabla de dimensiones
  • Pruebas de extremo a extremo
  • ETL, ELT pruebas de validación y verificación
  • Cargas de datos de tablas de hechos 
  • Verificación de carga de archivos/datos
  • Pruebas de carga incremental
  • Pruebas de carga y escalabilidad
  • Faltan archivos, registros, campos
  • Pruebas de rendimiento 
  • Integridad referencial
  • Pruebas de regresión
  • Prueba de seguridad
  • Pruebas y perfiles de datos de origen
  • Puesta en escena, validaciones de datos ODS 
  • Pruebas unitarias, de integración y de regresión

La automatización de estas pruebas puede ser necesaria debido a la complejidad del procesamiento y la cantidad de fuentes y objetivos que deben verificarse. 

Para la mayoría de los proyectos, los procesos de prueba de canalización de datos están diseñados para verificar e implementar la calidad de los datos.

La variedad de tipos de datos disponibles en la actualidad presenta desafíos de prueba

Existe una amplia variedad de tipos de datos disponibles en la actualidad, que van desde tipos de datos estructurados tradicionales, como texto, números y fechas, hasta tipos de datos no estructurados, como audio, imágenes y video. Además, varios tipos de datos semiestructurados, como XML y JSON, se utilizan ampliamente en el desarrollo web y el intercambio de datos.

Con la llegada del Internet de las cosas (IoT), ha habido una explosión en varios tipos de datos, incluidos datos de sensores, datos de ubicación y datos de comunicación de máquina a máquina. A medida que estos tipos de datos se extraen y transforman, las pruebas pueden volverse más complicadas sin las herramientas adecuadas. Esto ha dado lugar a nuevas tecnologías de gestión de datos y técnicas analíticas como el procesamiento de flujo, la computación perimetral y el análisis en tiempo real.

La Figura 1 muestra ejemplos de tipos de datos ampliamente utilizados en la actualidad. La gran cantidad representa desafíos al probar si las transformaciones requeridas se realizan correctamente. Como resultado, los profesionales de datos deben estar bien versados ​​en una amplia gama de tipos de datos y ser adaptables para probar las tendencias y tecnologías emergentes.

Figura 1: Ejemplos de la variedad de fuentes de datos y destinos de datos

Evalúe los componentes de la tubería para posibles pruebas automatizadas

Un elemento clave de los desarrollos ágiles y modernos son las pruebas automatizadas. Podemos aplicar este conocimiento a la canalización de datos.

Un aspecto esencial de las pruebas de canalización de datos es que la cantidad de pruebas realizadas continuará aumentando para verificar la funcionalidad y el mantenimiento agregados. Figura 2 muestra muchas áreas en las que se puede aplicar la automatización de pruebas en una canalización de datos.

Figura 2: Prueba de "puntos calientes" desde el principio hasta el final de una canalización de datos

Al implementar la automatización de pruebas, los datos se pueden rastrear desde las capas de origen, a través del procesamiento de la canalización de datos, hasta las cargas en la canalización de datos y, finalmente, hasta las aplicaciones o informes front-end. Supongamos que se encuentran datos corruptos en una aplicación o informe front-end. En ese caso, la ejecución de suites automatizadas puede ayudar a determinar más rápidamente si los problemas individuales se encuentran en fuentes de datos, un proceso de canalización de datos, una base de datos/data mart de canalización de datos recién cargada o informes analíticos/de inteligencia comercial.

El énfasis en la identificación rápida de datos y problemas de rendimiento en arquitecturas de canalización de datos complejas proporciona una herramienta clave para promover la eficiencia del desarrollo, acortar los ciclos de construcción y cumplir con los objetivos de los criterios de publicación.

Decidir categorías de pruebas para automatizar

El truco es determinar qué se debe automatizar y cómo manejar cada tarea. Se debe considerar un conjunto de preguntas al automatizar las pruebas, tales como:

  • ¿Cuál es el costo de automatizar las pruebas?
  • ¿Quién es responsable de la automatización de pruebas (p. ej., desarrollo, control de calidad, ingenieros de datos)?
  • ¿Qué herramientas de prueba deben utilizarse (p. ej., fuente abierta, proveedor)?
  • ¿Las herramientas elegidas cumplirán con todas las expectativas?
  • ¿Cómo se informarán los resultados de las pruebas?
  • ¿Quién interpreta los resultados de la prueba?
  • ¿Cómo se mantendrán los scripts de prueba?
  • ¿Cómo organizaremos los guiones para un acceso fácil y preciso? 

La Figura 3 muestra ejemplos de duraciones de tiempo (para ejecución de pruebas, identificaciones de defectos e informes) para casos de prueba manuales versus automatizados de una experiencia de proyecto real.

Figura 3: Comparación de las duraciones de ejecución de pruebas manuales y automatizadas.

Las pruebas automatizadas de canalización de datos tienen como objetivo cubrir las funciones más críticas para cargar una canalización de datos: sincronización y reconciliación de datos de origen y destino.

Beneficios y limitaciones de las pruebas automatizadas

 Desafíos de automatización de pruebas

  • Prueba de informe: Prueba de inteligencia comercial o informes analíticos a través de la automatización
  • Complejidad de datos: Las pruebas de flujo de datos a menudo involucran estructuras y transformaciones de datos complejas que pueden ser difíciles de automatizar y requieren experiencia especializada.
  • Complejidad de la tubería: Las canalizaciones de datos pueden ser complejas y pueden involucrar múltiples etapas de procesamiento, lo que puede ser un desafío para probar y depurar. Además, los cambios en una parte de la tubería pueden tener consecuencias no deseadas aguas abajo.

Beneficios de la automatización de pruebas

  • Ejecuta casos de prueba más rápido: La automatización puede acelerar la implementación de escenarios de prueba.
  • Crea un conjunto de pruebas reutilizable: Una vez que los scripts de prueba se ejecutan con las herramientas de automatización, se pueden respaldar para recuperarlos y reutilizarlos fácilmente.
  • Facilita el informe de prueba: Una característica interesante de muchas herramientas automatizadas es su capacidad para producir informes y archivos de prueba. Estas capacidades representan con precisión el estado de los datos, identifican claramente las deficiencias y se utilizan en las auditorías de cumplimiento. 
  • Reduce los costos de personal y reprocesamiento: El tiempo dedicado a las pruebas manuales o a las nuevas pruebas después de corregir los defectos se puede dedicar a otras iniciativas dentro del departamento de TI.

Limitaciones potenciales

  • No se puede reemplazar completamente la prueba manual: Aunque la automatización se puede utilizar para diversas aplicaciones y casos de prueba, no puede reemplazar completamente las pruebas manuales. Todavía existirán casos de prueba complicados en los que la automatización no capturará todo, y para las pruebas de aceptación del usuario, los usuarios finales a menudo tienen que realizar las pruebas manualmente. Por lo tanto, tener la combinación correcta de pruebas automáticas y manuales en el proceso es vital. 
  • Costo de las herramientas: Las herramientas de prueba comerciales pueden ser costosas, según su tamaño y funcionalidad. En la superficie, una empresa puede ver esto como un costo innecesario. Sin embargo, la reutilización por sí sola puede convertirlo rápidamente en un activo. 
  • Costo de la capacitación: Los evaluadores deben estar capacitados no solo en programación sino también en la programación de pruebas automatizadas. Las herramientas automatizadas pueden ser complicadas de usar y pueden necesitar capacitación del usuario.
  • La automatización necesita planificación, preparación y recursos dedicados: El éxito de las pruebas automatizadas depende principalmente de los requisitos de prueba precisos y del desarrollo cuidadoso de los casos de prueba antes de que comience la prueba. Desafortunadamente, el desarrollo de casos de prueba sigue siendo principalmente un proceso manual. Debido a que cada aplicación de canalización de datos y organización puede ser única, muchas herramientas de prueba automatizadas no crearán casos de prueba.

Primeros pasos con la automatización de pruebas de canalización de datos

No todas las pruebas de canalización de datos son adecuadas para la automatización. Evalúe las situaciones anteriores para determinar qué tipos de automatización beneficiarían su proceso de prueba y cuánto se necesita. Evalúe sus requisitos de prueba e identifique las ganancias de eficiencia que se pueden lograr a través de pruebas automatizadas. Los equipos de canalización de datos que dedican un tiempo considerable a las pruebas de regresión serán los más beneficiados. 

Desarrolle un caso de negocios para pruebas automatizadas. TI primero debe presentar el caso para transmitir el valor al negocio. 

Evalúa las opciones. Después de evaluar el estado actual y los requisitos dentro del departamento de TI, determine qué herramientas se alinean con los procesos y entornos de prueba de la organización. Las opciones pueden incluir proveedores, código abierto, interno o una combinación de herramientas. 

Conclusiones

Dado que la automatización de pruebas se ha convertido rápidamente en una alternativa esencial a las pruebas manuales, cada vez más empresas buscan herramientas y estrategias para implementar con éxito la automatización. Esto ha llevado a un crecimiento significativo de las herramientas de automatización de pruebas basadas en Appium, Selenium, Katalon Studio y muchas otras. Sin embargo, los equipos de canalización de datos e ingenieros de datos, BI y control de calidad deben tener las habilidades de programación adecuadas para usar estas herramientas de automatización por completo. 

Muchos expertos en TI han predicho que la brecha de conocimiento entre los evaluadores y los desarrolladores debe y se reducirá continuamente. Las herramientas de prueba de canalización de datos automatizadas pueden reducir significativamente el tiempo dedicado a probar el código en comparación con los métodos manuales convencionales.

A medida que aumentan las capacidades de desarrollo de canalizaciones de datos, también aumenta la necesidad de pruebas de datos automatizadas más completas y modernas.

Sello de tiempo:

Mas de VERSIDAD DE DATOS