Seguramente se ha preguntado antes cuál es el tipo de testing que debe utilizar para su proyecto, ¿verdad?. Antes de comenzar, debemos aclarar, de forma general, qué es el testing manual, qué es el testing automatizado, cuáles son las ventajas que representa cada uno y en qué medida es recomendable automatizar.

Imagen de Christina Morillo en Pexels

¿Qué es el Testing Manual? 

Este tipo de testing consiste en pruebas manuales, es decir, que son ejecutadas por testers que tienen interacción directa con el software, en muchos casos, utilizando herramientas adecuadas para cada propósito.

Los testers se encargan de configurar un entorno en el que se llevará a cabo la ejecución de pruebas, por supuesto, haciendo un recorrido exhaustivo y completamente interactivo con el software objetivo de las pruebas.

Es importante destacar que este tipo de pruebas se encuentran expuestas a errores humanos, como la omisión de alguno de los pasos en el ciclo de prueba o un error de tipeo al cargar datos.

¿Cuándo se deben implementar las Pruebas Manuales?

Sabiendo que las pruebas manuales son parte importante durante todo el ciclo de vida del desarrollo y tomando en cuenta que se necesitan habilidades como experiencias humanas para su planificación y ejecución, resultan apropiadas para los siguientes casos: pruebas exploratorias, pruebas de usabilidad, pruebas ad-hoc entre clasificaciones de pruebas relacionadas.

Ventajas del Testing Manual

  • No se requiere conocimiento sobre programación o desarrollo de software.
  • Se obtienen resultados desde una perspectiva humana en condición de usuario final. 
  • Ejecución de pruebas exploratorias (estas son ejecutadas sólo de forma manual).
  • Comprensión y percepción directa del problema.
  • Ejecución de pruebas en dispositivos móviles utilizando gestos. 
  • Recomendable para diseños GUI que cambian o actualizan de forma dinámica. 
  • El costo generado en las pruebas manuales es menor, ya que no se requieren herramientas y procesos de automatización.

¿Qué es el Testing Automatizado?

Las pruebas automatizadas consisten en utilizar una o varias herramientas de software para hacer pruebas a otro software. Estas herramientas permiten regular la ejecución de pruebas según las necesidades o planificación del tester, permitiendo comparar los resultados obtenidos con los resultados esperados.

La intervención de la automatización en el proceso de pruebas da como resultado la reducción del tiempo requerido para ejecutar casos de pruebas entre otros beneficios.

¿Cuándo se deben implementar las Pruebas Automatizadas?

Teniendo en cuenta que existen diversos contextos respecto a cuándo y qué se debe automatizar, en este caso hablaremos del tipo de pruebas más relevantes para implementarla:

  • Pruebas de Regresión: para asegurar que las mejoras y correcciones realizadas en el software funcionan de manera eficiente y no afectan la funcionalidad existente del software.
  • Pruebas de Carga: para simplificar las complicaciones involucradas en la generación de la carga y la simulación de las condiciones de carga de datos.
  • Ejecución Repetitiva: para las pruebas que implican la ejecución de una sola tarea una y otra vez
  • Pruebas de Rendimiento: para simular la interacción de miles de usuarios simultáneos a la vez.

Ventajas del Testing Automatizado

  • Fiabilidad técnica en procesos y en operación de equipos.
  • Reducción del tiempo empleado en procesar la información.
  • La automatización no requiere de intervención humana, por lo que se puede ejecutar la prueba automatizada de forma desatendida.  
  • Aumenta la velocidad de ejecución de la prueba.
  • Es lo más recomendable cuando se necesitan ejecutar diversos casos de prueba de manera repetitiva y por un período de tiempo extenso.
  • Pueden ejecutarse una y otra vez luego de ser creadas.
  • Minimiza los errores humanos al momento de la ejecución del testing. 
  • Facilita la integración de trabajo entre desarrolladores y testers.

Es importante destacar que, según el manifiesto de automatización de pruebas, propuesto por Gerard Meszaros, Shaun Smith y Jennitta Andrea, toda prueba automatizada debe cumplir con el siguiente conjunto de propiedades:

  • Concisa
  • Auto-verificable
  • Repetible
  • Clara
  • Específica
  • Independiente
  • Mantenible
  • Rastreable

¿En qué medida es recomendable automatizar?

Llegados a este punto, es importante hablar de la Pirámide de Cohn, mejor conocida como la ‘pirámide de testing’, en la que se ve reflejada la estructura ideal de cómo deberían manejarse los distintos niveles del testing.

Según el libro de Mike Cohn «Succeeding with Agile«, estos son los niveles de integración del testing y las metodologías ágiles:

Pirámide de MIke Cohn: Niveles de automatización de las Pruebas de Software

Ahora bien, ¿en qué medida es recomendable automatizar? Es muy importante saber que no todas las pruebas se pueden ni deben automatizar, la automatización no se trata únicamente de hacer más óptimo o eficiente el proceso de ejecución de pruebas, sino de hacer que el trabajo manual del equipo de QA, se invierta en las pruebas que requieren mayor dedicación y atención al detalle.

Es por ello que siempre ha existido una premisa respecto lo que se debe automatizar y qué son las pruebas repetitivas, como lo son las pruebas de regresión, por ejemplo.

Testing Manual o Automatizado: ¿cuál es mejor?

Como es predecible, es importante aclarar que no estaría bien emitir un juicio que dicte qué tipo de testing es mejor para cualquier ocasión. Lo ideal es que el equipo teniendo la información suficiente y adecuada, pueda responder a interrogantes como: ¿cuál testing es mejor y para qué?, ¿qué tipo de testing necesitamos? o ¿cuándo aplicar un tipo sobre otro?

No hay un mejor testing que otro, ambos pueden ser buenos si se implementan de forma adecuada, o bien ser improductivos si se aplican en el momento o caso equivocado.

Sin embargo, hoy existe algo llamado ROI (Return of Investment o Retorno de la inversión) que aplicado a la automatización de pruebas, será un punto clave tanto para decidir si se debe llevar a cabo, como para presentar resultados y sustentar la inversión que conlleva aplicar o no, este tipo de testing.

ROI: factor clave para implementar la Automatización

Para calcular el ROI de la automatización de pruebas específicamente, se tomarán en cuenta factores como el número de pruebas de regresión (en los que se aplicará la automatización de pruebas), tiempos aproximados de ejecución de estas pruebas si se hicieran de forma manual, el ahorro que representa la ejecución automatizada y el tiempo invertido en la automatización.

Este post de Sofía Palamarchuk puede ampliar su visión sobre cómo el ROI de la automatización, es significativo tanto para el área comercial como de TI.

¿Conoce algún otro beneficio clave de las pruebas manuales o automatizadas que nos haya quedado fuera de esta lista? ¡Escríbalo en los comentarios y lo agregaremos!


Otros contenidos relacionados

La ruta hacia el Test Automation

Mejores prácticas de testing para equipos ágiles: La Pirámide de Automatización

Cómo evitar falsos positivos y negativos en la Automatización de Pruebas