Si estás siguiendo nuestras notas habrás visto las notas sobre tipos de pruebas y el primer acercamiento al testing funcional. En esta ocasión, es momento de hablar sobre el testing automatizado y su aporte al trabajo de los equipos.

La transformación digital impulsa cambios en nuestra sociedad y en la forma de desarrollar software. El testing también evoluciona: la automatización permite agilizar tareas y obtener información sobre el comportamiento de los productos con mayor frecuencia.

¿Qué es el testing automatizado?

La automatización de pruebas funcionales consiste en utilizar software para controlar la ejecución de pruebas y comparar los resultados obtenidos con los esperados.

En un sentido más amplio, la automatización también puede asistir en otras actividades del testing, como la preparación de datos y entornos o la generación de reportes.

Las empresas enfrentan exigencias de calidad en productos que se mantienen y mejoran continuamente. Muchos funcionan sobre múltiples plataformas, sistemas operativos, navegadores y bases de datos. En este contexto, la automatización puede ayudar a ejecutar pruebas repetidamente y reducir el esfuerzo necesario para obtener sus resultados.

Automatización y pruebas de regresión

Una de las principales aplicaciones del testing automatizado son las pruebas de regresión. Estas implican volver a ejecutar pruebas para detectar si un cambio afectó el comportamiento de funcionalidades que antes funcionaban como se esperaba.

El cambio puede ser una nueva funcionalidad, la corrección de un defecto o la actualización de componentes de software o hardware.

robot automatizador

En cualquier caso, no alcanza con probar únicamente la modificación: también es necesario evaluar su posible impacto en otras partes del producto.

Un ejemplo práctico

Supongamos que una empresa desarrolla una aplicación de finanzas utilizada por cientos de clientes. El equipo incorpora un nuevo reporte que facilita la visualización de los registros.

Es necesario probar ese reporte, pero también volver a ejecutar pruebas sobre otras funcionalidades para comprobar que el cambio no haya alterado su comportamiento esperado.

Si se cuenta con un conjunto de pruebas automatizadas, podrán ejecutarse las veces que sea necesario, siempre que estén preparados los datos y el entorno correspondiente. Mientras tanto, los testers podrán explorar las áreas de mayor riesgo o probar nuevos escenarios.

Las pruebas también pueden programarse para ejecutarse durante la noche. Al comenzar la jornada, el equipo podrá analizar los resultados, investigar las fallas y diseñar nuevas pruebas.

El papel de las personas en el testing automatizado

La automatización complementa el trabajo de los testers y requiere criterio para decidir qué probar, qué automatizar y cómo interpretar los resultados.

Las herramientas pueden asistir en el diseño de pruebas, la generación de datos, la ejecución y la elaboración de reportes. Sin embargo, el equipo sigue siendo responsable de revisar esos aportes y evaluar si las pruebas responden a los riesgos y objetivos del proyecto.

Cuando una prueba automatizada falla, también es necesario investigar la causa. El problema puede estar en el producto, en los datos, en el entorno o en la propia prueba.

Además, las pruebas automatizadas necesitan mantenimiento para seguir siendo útiles a medida que el software cambia.

¿Cuándo conviene automatizar pruebas?

La automatización suele aportar valor cuando las pruebas deben ejecutarse con frecuencia y sus resultados pueden comprobarse mediante verificaciones automatizadas.

Para decidir qué automatizar, conviene considerar la estabilidad de las funcionalidades, los riesgos que se busca cubrir y el esfuerzo de construcción y mantenimiento. El objetivo es seleccionar pruebas que aporten información útil de forma sostenible.

La pirámide de automatización

En su libro Succeeding with Agile, Mike Cohn presenta la pirámide de automatización. Este modelo agrupa las pruebas automatizadas en tres capas: pruebas unitarias, pruebas de servicios y pruebas de interfaz de usuario.

pirámide de automatización

La forma de la pirámide representa una distribución orientativa: una base amplia de pruebas unitarias, una capa intermedia de servicios y una cantidad menor de pruebas a través de la interfaz gráfica. Su aplicación debe adaptarse al contexto del proyecto.

  • Pruebas unitarias
    • Evalúan unidades pequeñas de código de forma aislada, controlando sus dependencias cuando corresponde.
    • Suelen ejecutarse rápidamente y ayudan a detectar problemas cerca del momento en que se introduce un cambio. Esto facilita la investigación y corrección de defectos durante el desarrollo.
  • Pruebas de servicios
    • Verifican funcionalidades sin pasar por la interfaz gráfica de usuario. Permiten evaluar, por ejemplo, reglas de negocio o interacciones entre componentes a través de sus interfaces.
    • En esta capa pueden encontrarse pruebas de componentes, de integración y de API, según la arquitectura y el alcance definido para cada prueba. API es la sigla en inglés de interfaz de programación de aplicaciones.
  • Pruebas de interfaz de usuario
    • Interactúan con la interfaz gráfica para comprobar el comportamiento del producto. Algunas recorren flujos completos del sistema y constituyen pruebas de extremo a extremo o end to end, aunque ambos conceptos no son equivalentes.
    • Las pruebas que recorren el sistema completo a través de la interfaz suelen requerir más tiempo de ejecución y esfuerzo de mantenimiento. Por eso, conviene seleccionar los escenarios que aporten mayor valor y utilizar buenas prácticas de diseño para facilitar su adaptación a los cambios.

La visión de un experto

Leonardo, uno de nuestros expertos y docente de la Especialización en Automatización de Pruebas Funcionales, comparte su visión:

“La automatización de tareas es cada vez más utilizada por todos, en todo tipo de ambiente. La tecnología avanza con esta característica, vamos desde una simple configuración de tareas en un calendario hasta las pruebas de sistemas.

En un mundo sumamente atravesado por la tecnología, se vuelve cada vez más importante la automatización. La velocidad con la que los sistemas informáticos avanzan nos obliga a tener nuevas estrategias para llevar a cabo un testing paralelo, y contar con la capacidad de automatizarlo se vuelve fundamental.

Por este motivo, invito a profundizar en qué es la automatización, para qué y cuándo sirve, cómo nos ayuda y complementa nuestro trabajo diario como testers. Cada vez son más las empresas que apuestan por integrar a sus equipos automatizadores con el fin de que sus sistemas logren obtener la calidad que se espera dentro de un mercado que avanza tan rápido”.

Para profundizar, te invitamos a ver esta charla de Leonardo sobre pruebas automatizadas y su utilidad.

charla sobre automatización

Esperamos que esta nota te haya ayudado a conocer qué es el testing automatizado y cómo complementa el trabajo de los equipos. Puedes contarnos en nuestras redes sociales qué temas te gustaría que abordemos.

LinkedIn · X (Twitter) · Instagram · Facebook