Te va a interesar!

6/recent/ticker-posts

ETL Testing: Qué es y qué salida laboral tiene?


 Oh, es acá? Abrí la puerta correcta? Estoy escribiendo de nuevo en el blog de The Free Range Tester? ASI ES! Estuve algo desaparecido porque, como sabrán si hacen click en Cursos allá arriba en el menú (háganlo después de leer la nota!) estuve bastante ocupado creando los cursos en Udemy sobre Programación para Testers y el más solicitado: Selenium con Java y Cucumber!

Pero bien, ahora me tomo un descanso de la creación de cursos y les vengo con un artículo sobre una forma de Testing que no es tan popular, pero su demanda crece todo el tiempo y es muy solicitada! 

De qué estoy hablando? De ETL Testing! Pero... qué? Hay demanda en el mercado? Por qué es tan importante? Todo eso y más, en este artículo! 


Qué es el ETL Testing?


Este tipo de Testing en particular viene de la sigla ETL: Extract, Transform, Load. Básicamente apunta a la digestión de datos para ser presentados de una manera específica pedida por el business en cuestión. A ver, veamos esto con un ejemplo para que se entienda mejor: 

Digamos que tenemos una empresa de salud y recolectamos toneladas de información de nuestros pacientes. Dirección, peso, altura, tipo de trabajo, que si se atiende todos los meses con un psiquiatra, que si está en tratamiento por X enfermedad, etc. 

Digamos que, después de una reunión con la gerencia, llegamos a la conclusión que estaría bueno conocer un segmento en particular para ver cómo fue afectado por, por ejemplo, la pandemia. Vamos a querer hacer queries específicas a todos esos datos para que nos presente la data de una manera que podamos interpretarla a través de otros sistemas que van a ser alimentados con todo esto. 

Vamos a juntarnos a definir qué datos, dónde, cómo y por qué. Luego un equipo se encargará de construir las consultas a las bases de datos, que pueden estar interactuando entre un sinfín de tablas para poder acceder a todo esto. 

Pero... dónde entra Testing en todo esto?


Bueno, Testing va a entrar en donde siempre, aunque con un par de particularidades. Va a ser el encargado de verificar que la data digerida es la que se espera para el fin que se planeó. Que se está obteniendo correctamente desde las bases de datos, que la calidad de la data es la esperada y no que estamos rascando el fondo de la olla y no viendo secciones enteras... se hacen una idea, no? 

Obviamente todo esto sería una locura hacerlo mediante testing manual, por lo que se automatiza para mayor eficiencia. Vieron cuando hablamos de API Testing, UI Testing, Performance Testing? Bueno, ninguna de ellas tiene lugar (salvo una, pero ya lo vamos a ver en un segundo!) completamente acá. 

Generalmente va a ser una cuestión de conectarse a bases de datos y hacer las consultas requeridas para luego comprobar que los datos son los esperados y no hay repeticiones, duplicados, faltantes, etc. 

Pero antes de todo esto... hay un tipo de testing que los testers no hacemos CASI nunca y en esta oportunidad sí! Unit Testing...

Así es, el Unit Testing va a ser una pieza fundamental a la hora de tener una buena cobertura y asegurar que lo que estamos construyendo al menos está bien construido. Si después en vez de volar, flota, es otra cosa que va a ser verificada en otra fase, pero el Unit Testing de cada objeto, clase, método, interfaz que se hace para poder obtener esta data, masticarla y convertirla en lo que el negocio pide va a ser la verdadera pieza fundamental. 

Y si digo Unit Testing habrán adivinado... no hay integración con la base de datos! Pero entonces... qué estamos probando? Tranquilos... estamos probando que las funciones que van a ser las verdaderas estrellas de la obra hagan lo que tienen que hacer. Para eso, inicialmente, no necesitamos data de verdad, por lo que vamos a hacer mocks con data que nosotros mismos pasamos a los tests para ver que todo se comporta como queremos. Eso nos da una buena flexibilidad para hacer tests positivos y negativos, repetirlos, etc ya que no vamos a depender de nada más que nuestra propia data generada y enviada por mocks. 

La otra pieza fundamental es la integración y validar que, justamente, estamos transformando la data procesada en lo que nos pidieron en las historias. Ahí vamos a estar probando las consultas contra la verdadera base de datos, alimentando datos "de verdad" a la automatización y, adivinarán, sufriendo las consecuencias de no tener control sobre eso. Es el fino balance entre probar los tests bajo condiciones reales y que estas condiciones rompan al tener sus limitaciones. 

Hay demanda en el mercado?


Hay y mucha! Imaginarán que prácticamente todo el sector privado basa muchísimas de sus decisiones en el análisis de patrones de datos. Para eso necesita hacer este tipo de procesos y obtener datos de calidad sobre los que apoyarse. Un sector en constante auge y que hace uso intensivo de esto es el de fintech (tecnología aplicada a finanzas). Medicina también, el propio gobierno de todo país y sus departamentos asumo que también! Después de todo, el mundo actual se rige por toda esta data que es incesantemente recolectada sobre los usuarios. 

Son puestos muy bien remunerados, muy solicitados y... no muy divertidos honestamente. De los tipos de testing que hay, es el que menos te hace "pensar" digamos. Obtener un requerimiento te deja a dos pasos de armar la query y luego la creación de los unit tests y tests de integración son algo mecánico prácticamente. Si lleva a otras cosas muy interesantes, como data analysis o data science, que trabaja consumiendo todo esto y hace la parte más intelectual si se quiere. 

Conclusión.


Hoy les quería hablar de un tipo de testing del que no se habla lo suficiente y siento que vale la pena traer a la primera plana para contarles cómo es, qué tan demandado está en el mercado y qué pueden esperar en caso que se quieran meter en ese baile! Espero que les haya gustado! 

Ahora si...pueden hacer click en Cursos allá arriba y ver lo que les dejé preparado! No se olviden, además, de suscribirse al Newsletter donde cada semana les traigo artículos de interés y un resumen de lo que estuve haciendo para la comunidad, como este artículo, los videos de YouTube o los cursos de Patreon y Udemy! 

Nunca dejen de aprender.

Publicar un comentario

0 Comentarios