Contáctenos

Cómo implementar la automatización al desarrollar pruebas en paralelo con los sprints de desarrollo

Al realizar muchas tareas de automatización de pruebas con una gran cantidad de clientes, nos preguntan esta pregunta con mucha frecuencia.   

¿La clave? Construir las cosas de forma modular y bien estructurada, trabajando desde lo general hacia lo específico. En la mayoría de los casos, el framework que estás utilizando te proporcionará los componentes fundamentales que necesitas para navegar por la aplicación o el sistema en el que estás trabajando, como hacer clic en un hipervínculo o enviar una solicitud de API. Luego, debes construir sobre ello para realizar acciones comunes o factores en tu sistema, como realizar verificaciones específicas para asegurarse de que el valor devuelto es correcto y de que el sistema no ha generado un error. Luego, puedes construir sobre ello nuevamente con componentes más enfocados en escenarios específicos.  

Esto puede ser un contexto más parecido a un escenario de negocio, con cosas como el inicio de sesión como ejemplo clásico, o incluso la realización de actividades clave como la búsqueda de un producto o la opción de ‘agregar al carrito’ en un contexto de comercio electrónico. O puede ser un contexto de evento del sistema si estamos hablando de interfaces B2B: una solicitud entrante a través de una API que desencadena un comportamiento específico, algo así.  

Estos pueden ser agrupados en una biblioteca de acciones o eventos comunes que tienen un significado. y Pueden convertirse en declaraciones clave para el Desarrollo Basado en Comportamiento (BDD) utilizando la estructura Given-When-Then.  

Por ejemplo: dado que soy un usuario conectado al sistema, cuando busco un producto y cuando hago clic en él, me se muestra la descripción correcta y el nivel de inventario correcto. Tendrías un código en la parte posterior que maneja el inicio de sesión, la búsqueda, la selección de productos y, en última instancia, comprueba la información mostrada en función del valor objetivo, que podría ser un valor predefinido o una comparación del valor mostrado con la información actual en la base de datos.  

Podría incluso crear una versión de demostración o un prototipo para no tener que acceder a la base de datos real. Esto ilustra otro beneficio potencial de la automatización: puede eliminar las dependencias con terceros o otros componentes del sistema, lo que simplifica la ejecución de los tests y permite realizar tests que de otro modo tendrían que esperar hasta que se entregue algo más.  

¿La clave? Entender cómo está construido el sistema y luego ver cómo se puede aislar el comportamiento que se quiere testear. Este tipo de pruebas muy enfocadas en la ingeniería pueden tener muchas ventajas.