¿Cómo iniciar en automatización de pruebas?
Si has sido tester por bastante tiempo, debes estar pensando que ya no hay muchos puestos disponibles para testers “manuales”. Yo pienso que sí hay, pero también, aprender a automatizar es una de las mejores habilidades que podemos agregar a nuestro toolkit profesional.
Hoy día hay muchísimos cursos en distintas plataformas, una ruta de carrera que está publicada de forma gratuita y bastantes recursos que pueden ayudarnos a cumplir el objetivo de automatizar pruebas.
¿Toda la automatización requiere código?
La verdad es que no. Hay muchas herramientas hoy día, de pago por supuesto, que son low-code (requieren muy poco código) y no-code (no requieren conocimiento de programación). Muchas de estas herramientas utilizan el modelo record and play, en los que “grabamos” un test paso a paso, y luego corremos el test en modo “play” (una repetición de los tests anteriormente grabados).
Esta forma de automatizar tests tiene algunas limitaciones, podemos crear tests de API y de UI (interfaz de usuario), y aunque tiene sus detractores, yo considero que si una herramienta “record and play” cubre la necesidad de testing de un producto/equipo/organización con rapidez y confiabilidad y cumpliendo su objetivo de entregarnos feedback de cuál es el estado actual real de nuestros sistemas/aplicaciones/productos, no hay razones para no aprovechar estas herramientas.
Y ahora… Hablemos de código…
Si queremos iniciarnos en automatización de pruebas con código, necesitamos aprender:
- Bases de la programación
- Conceptos de pruebas automatizadas
- Un lenguaje de programación
- Bases de automatización de pruebas
- Un framework de automatización
- Herramientas de control de versiones
Bases de la programación
Que no están atados a un lenguaje en específico sino que son las bases para entender qué podemos hacer programando. Esto se refiere a diagramas de flujo, algoritmos, pseudocódigo, operadores, tipos de datos, variables, constantes, funciones, procedimientos, estructuras de control y de iteración, entre otros.
Conceptos de pruebas automatizadas
Test unitarios, de integración, regresión, end to end y familiarízate con conceptos de integración continua.
Un lenguaje de programación
Por supuesto que más adelante puedes trabajar con muchos más pero para iniciar, elige uno solo y enfócate en ese lenguaje para aprender. La elección dependerá de si quieres trabajar aplicaciones mobile, web o Desktop.
Quiero resaltar que no necesitas saber todo de un lenguaje de programación para poder colaborar en un proyecto de automatización de pruebas.
Bases de automatización de pruebas
Esto se refiere a lógica de pruebas, datos y configuraciones, patrones de diseño como Page Object Model y Screenplay, assertions, locators, locator strategies, retries y timeouts, parametrización de pruebas, Mocks/Stubs, logs, reportes, ejecución y orquestación, manejo de excepciones y mantenibilidad.
Te puedes apoyar en la web Test Automation University para explorar conceptos como Setting a Foundation for Successful Test Automation y Web Element Locator Strategies.
Un framework de automatización
Al igual que con el lenguaje, elige un solo framework y enfócate en aprender los fundamentos y mejor aún, especialízate en éste. Luego, será mucho más fácil aprender otros lenguajes y otros frameworks. La elección de éste también dependerá de si quieres trabajar aplicaciones mobile, web o Desktop.
Herramientas de control de versiones, como git por ejemplo, especialmente porque vamos a colaborar con otros desarrolladores y/o testers en el proyecto.
Uso de la IA
Hace unas semanas hice una presentación para Testing Venezuela en la que mostré cómo podemos usar la Inteligencia Artificial para crear un plan de pruebas y una suite automatizada con Playwright.
Cualquier inteligencia artificial que utilices va a ser capaz no sólo de escribir por tí el código sino que también te explica paso a paso cada línea del código que está construyendo. Es una herramienta perfecta de acompañamiento mientras vas aprendiendo y practicando más conceptos de automatización de pruebas y de código.
Aquí te dejo un par de videos, usando ChatGPT y Perplexity que puede guiarte a dar esos primeros pasos usando IA para automatizar pruebas.
Es muy importante que sepas también que debemos ser cuidadosos con la información que le brindamos a la IA, porque podrías estar exponiendo información privada de usuarios y clientes, o los modelos de negocio de la empresa que son propiedad intelectual. Si vas de lleno con estas herramientas, lo mejor es que la empresa tenga una cuenta pagada en la herramienta con la que decidan trabajar.
Herramientas Low-Code
Si quieres explorar herramientas low-code puedes comenzar con Codeless Test Automation with Selenium IDE que es gratuita.
Recursos a Considerar
Introducción a la Programación con Pseudocódigo en español para entender las bases de la programación, aún sin conocer aún ningún lenguaje de programación.
Programación y trabajo con código para testers: para iniciarte en la programación. Como decía antes, no necesitas saber todo de un lenguaje de programación pero sí sus bases, y con este curso lo consigues.
Test Automation University: tiene distintas rutas de aprendizaje dependiendo del lenguaje de programación y framework. También tiene otros como Locators Strategy, Git, Continuous Testing, Codeless with Selenium IDE, entre otros.
Creando una suite de Automatización con ChatGPT y Playwright.
Creando una suite de Automatización con Perplexity y Playwright.
Conclusiones
Podemos automatizar pruebas con código y sin código (acorde a los recursos que tenemos y a los objetivos y preferencias del equipo).
Hay muchísimo más que podríamos cubrir pero este post va de cómo iniciar en automatización pero enfoquémonos en lo más importante.
Si eres tester manual y no deseas entrar al área de automatización puedes seguir por el camino donde vas o aprender skills adicionales y cambiar de rol (como analista de negocio, scrum master, entre otros).
La IA es de gran ayuda en este proceso de aprendizaje. No dejes de usarla pero responsablemente (tomando en cuenta las restricciones de protección de datos y de propiedad intelectual a los que podemos exponer a usuarios, clientes y organizaciones).
Personalmente creo que automatizar es importante, para complementar el trabajo que hacemos día! Somos testers y la automatización es una herramienta más a dominar.