¿Cómo planificar la estrategia de QA automation en un proyecto?

April 14, 2021

¿Qué es QA Automation?

QA Automation refiere a una pieza separada de software para correr tests sobre una aplicación que tu equipo esté desarrollando.

En el pasado, estas tareas debían ser realizadas por testers humanos, con la ayuda de algunas herramientas para reducir la repetición. En este artículo vamos a desarrollar cómo funcionan las tecnologías que nos permiten optimizar el trabajo del QA y cómo iniciar un proyecto desde cero.

¿Por qué es importante?

Es importante para las empresas que practican la integración continua (CI), donde el software es desarrollado-testeado-deployado. Es decir, facilita la etapa de Testing, realizándola de forma eficiente.

Gracias a la automatización, se pueden encontrar Bugs en nuevas versiones, así como agujeros de seguridad (XSS por ejemplo), sin la necesidad de repetir manualmente los tests en cada una de ellas. 

¿Qué se puede automatizar?

En un software, por ejemplo web, podemos dividir dos capas para QA:

  • Front-end (UI): El bot replica la experiencia de usuario al utilizar la app.
  • Back-end (API): El bot reproduce el comportamiento de los servicios que no son visibles a los usuarios.

¿Cómo lo implementamos en GM2?

Para el proyecto de Airmap, planificamos la automatización para los servicios de Frontend y Backend. Esto lo hicimos comunicándonos de forma constante con el QA manual y los desarrolladores de cada área. También necesitamos al equipo de DevOps para el uso de la infraestructura. 

Herramientas utilizadas para automatizar cada capa:

Front-end:

  • Selenium Framework: Es el driver que maneja los browsers y permiten simular las acciones del usuario dentro de cada navegador (Chrome, Mozilla, Safari, etc). Sin esto, la automatización GUI no sería posible.

  • Java: El lenguaje de programación utilizado para desarrollar el proyecto. Con este nos comunicamos con el Selenium Webdriver y le indicamos que acciones debe realizar. También se utiliza con las librerías de TestNG para evaluar las aserciones.

Back-end:

  • Postman: Es la herramienta que se utiliza para enviar peticiones a las APIs del software a testear. Esta permite la ejecución de código Javascript pre/post request. Lo que significa que podemos realizar tests sobre la respuesta de la petición y armar la petición por código. También podemos guardar una colección de requests y automatizarlas utilizando Jenkins + Newman.

  • Jmeter: Se utiliza para las pruebas de performance, está basada en Java. Podemos realizar reportes, peticiones distribuidas y remotas. Podemos usar código embebido gracias a los samplers JSR223, que permiten la ejecución de scripts dentro de Java.

Herramientas auxiliares:

  • Google Sheets: Mediante código se extraen los datos que el bot vaya a utilizar en los tests. Esto los convierte en tests data-driven.

  • Test Rail: Es la plataforma utilizada para documentar los casos de prueba

  • Jenkins: Es una herramienta open source hecha en Java con plugins para la Integración Continua. Se utiliza para buildear y testear el software de forma programada. En QA lo usamos para correr los casos de prueba automáticamente en horarios específicos, en el ambiente de TEST.

  • Allure Report: Genera los reportes automáticamente desde el resultado final de la ejecución de una suite de casos. Nos ayuda a revisar diariamente si se encontraron bugs o si alguno de los casos necesita un mantenimiento de código.

¿Cómo se inicia un proyecto nuevo?

Al iniciar un proyecto nuevo, se deben tener en consideración algunos puntos:

  • Documentación del producto: Usuarios, permisos para cada uno de ellos según su rol. Features actuales y a futuro, Known Issues ya presentes…

  • Conocer al equipo: Tener buena comunicación con los Analistas Funcionales, QA manuales y Desarrolladores. Hay casos en los que no hay analistas funcionales, por lo que podemos acudir a los devs y QAs.

  • Ambientes: Conocer los ambientes que tiene el producto, específicamente, saber si existe un ambiente de TEST. Endpoints, URLs, URIs…

  • Deployments: Revisar la agenda de Deployments: Cuándo, cómo y qué features se suben a cada ambiente.

  • Testing Exploratorio: Es útil ya que nos empezamos a familiarizar con el software. Ayudan a encontrar algunos bugs e ir conociendo los comportamientos al reproducir ciertos casos.

  • Casos de prueba: En caso de haber existentes, automatizarlos. Si no, desarrollar casos de prueba nuevos, con la ayuda de los QA manual existentes. También se puede aprovechar los pasos que siguen estos integrantes.

    Es importante también extender la suite de casos a la mayor cantidad posible, para agregar valor al cliente.

¡Encontré un bug! ¿Y ahora qué?

Felicidades, ejecutaste los casos de prueba y al ver el allure report, encontraste un bug en uno de los tests.

Una vez hecho esto, debemos:

  • Re-ejecutar manualmente: En caso que no estemos seguros que sea posible reproducirlo.

  • Anotar el ambiente, versión y fecha en que se ejecutaron los tests.

  • Crear un Bug Ticket: Debemos escribir TODOS los detalles y evidencia del error posible, si hay imágenes, mejor. No importa excederse en detalle, mejor que sobre y que no falte. 

  • Informar del bug en algún canal: Slack, mail, etc… De ser urgente, comunicarse mediante la vía más rápida a los desarrolladores.


Es importante tener un flujo de trabajo ordenado, documentación para seguir los pasos de esta planificación y evitar los desvíos o demoras innecesarias en las entregas.

El trabajo de los QA es una parte muy importante de la etapa del ciclo de vida del software. Sin testing, las empresas perderían gran cantidad de recursos y eficiencia debido a fallas técnicas graves que se podrían haber atajado a tiempo.

Por Gabriel Caprarella,
QA automation en GM2.