Pese a que cada vez son más las empresas que apuestan por el uso de metodologías ágiles en sus equipos de desarrollo de soluciones software, aún son muchos los que desconocen la flexibilidad, la agilidad y el ahorro de tiempo que supone implementar estos procedimientos.

La llegada de metodologías ágiles, tales como Scrum, permite abordar de forma ágil y rápida cada uno de los procesos que conforman la vida de un proyecto:

  • llevando a cabo desarrollos por etapas o sprints
  • realizando subidas a producción más cortas
  • incorporando herramientas de integración continua
  • fomentando la comunicación directa con el cliente para contrastar los resultados periódicamente

El objetivo principal no es otro que detectar errores en fases tempranas para rectificar en cualquier etapa previa a la subida a producción.

Pero sin lugar a duda, una de las mayores ventajas aportadas por las metodologías ágiles es la creación de productos de calidad que logren la completa satisfacción del usuario final. Esto ha dado visibilidad a la importante labor que realizan los responsables de calidad de soluciones software.

 

ENTONCES, ¿QUIÉN NECESITA QA?

A pesar de la visibilización de la que hablábamos, hoy en día, las personas que trabajamos en equipos de QA seguimos percibiendo un gran desconocimiento de nuestras responsabilidades por parte del resto de participantes de un proyecto. Nos encontramos a menudo con preguntas del tipo: ¿Qué es QA? ¿A qué te dedicas exactamente? ¿En qué fase del proyecto entra tu labor?

Es preciso saber, que la labor del QA no sólo tiene lugar tras la fase de desarrollo, como ocurría con las metodologías tradicionales. La figura de los responsables de calidad está presente durante todo el proceso, validando la aptitud del producto en cada una de las etapas.

 

¿QUÉ LABOR DESEMPEÑA UN EQUIPO DE QA?

Como decíamos, al contrario de lo que se piensa de forma generalizada, el equipo de QA no solo se limita a detectar fallos en el sistema. Su labor va mucho más allá: se analizan comportamientos, se anticipan defectos y se verifica que el funcionamiento y la usabilidad de una solución sean correctos.

El equipo de QA se sitúa entre el cliente y el equipo de desarrollo. Ayuda al primero a traducir sus requisitos y objetivos en pruebas, y al segundo a verificar cada una de sus acciones antes de que el producto llegue al usuario. De este modo, el equipo de QA aportará al cliente una visión real del trabajo realizado por el equipo y el estado en que se encuentra el proyecto en cada etapa.

El hecho de estar presente en todo el proceso, permitirá al QA optimizar y mejorar procedimientos ya existentes dentro del equipo, aportando soluciones que tengan como fin último aumentar la calidad de la solución.

Todo esto se traduce en la disminución considerable del tiempo de desarrollo, pudiendo reducir el número de revisiones y permitiendo validar el funcionamiento de la solución en cada una de las etapas.

Pero, ¿cuáles son los puntos fuertes del equipo de QA?

  • Su figura intermedia permite gestionar directamente el feedback del cliente en cada sprint. Permite corregir posibles errores y encontrar soluciones de forma ágil e inmediata.
  • Realiza todo el proceso de pruebas desde la perspectiva del usuario final. Aporta soluciones ante defectos de usabilidad o experiencia de usuario en fases tempranas.
  • Cuenta con un gran conocimiento funcional de la aplicación. Reduce las dudas que los desarrolladores suelen encontrar en la fase de desarrollo.
  • Su labor fomenta el análisis, la documentación y la recopilación de información que será de vital importancia en la fase de desarrollo.
  • Gracias a su manejo de herramientas de integración continua, podrá realizar la automatización de pruebas. Este proceso le llevará, en cualquier caso, a agilizar las pruebas de calidad y rendimiento de la solución desarrollada.

 

EL PROCESO DE PRUEBAS

El proceso de pruebas llevado a cabo por el equipo de QA a lo largo de un proyecto no solo darán lugar a un producto fiable y de calidad, sino que también permitirá establecer un control permanente sobre todos los procesos, evitando los problemas que suponen la detección de errores en fases más avanzadas.

Pero si por por algo se caracteriza el trabajo del equipo de QA es por la completa planificación de sus labores en cada una de las fases de un proyecto:

  1. Análisis
  2. Diseño y desarrollo
  3. Validación y entrega

 

FASE DE ANÁLISIS

En esta etapa verificaremos que tanto los objetivos como los requisitos planteados por el cliente sean correctos y precisos. Con ellos elaboramos un plan de pruebas.

Aquí nos serán de ayuda herramientas que nos permitan crear, ejecutar y dar reporte de los planes de prueba y su adecuación a los requisitos. Entre ellos destacan: TestRail, Zephyr para Jira, Teslink y Mantis.

Identificaremos también los casos de prueba que más tarde se convertirán en test automáticos. El objetivo es ejecutar pruebas de manera repetitiva y detectar posibles incidencias en etapas tempranas.

 

FASE DE DISEÑO Y DESARROLLO

En esta etapa el QA será el encargado de velar por el cumplimiento de cada uno de los requisitos, vigilando que la solución se adapta a la propuesta funcional y de diseño creada entre el equipo y el cliente.

Aquí entran en acción las herramientas de integración continua que permitirán a desarrolladores y QA trabajar en armonía:

  • Se automatizan de procesos de compilación
  • Se revisa del código generado
  • Y se realizan entregas continuas

Así se logra identificar fallos rápidamente. Una de las principales herramientas para hacerlo es Jenkins.

 

FASE DE VALIDACIÓN Y ENTREGA

En la fase final ejecutaremos el plan de pruebas, revisando que la solución ya desarrollada respeta los requisitos fijados y la entrega al cliente se hace en las condiciones adecuadas. Aquí podremos entregar al cliente reportes e informes de nuestro plan de pruebas.

Todos estos procedimientos se llevarán a cabo sprint tras sprint, formando parte importante del proceso iterativo que tanto defienden las metodologías ágiles.

 

 

EN RESUMEN

Decir que las metodologías ágiles han puesto en alza el valor de los equipos QA es innegable. No obstante, no hay que olvidar la responsabilidad que conlleva su participación en cada una de las fases de un proyecto.

Sus labores forman parte de un proceso continuo, que los convierte en los encargados finales de asegurar que el producto funcione correctamente y que logre superar las expectativas, de un cada vez más exigente, usuario final.

Después de todo esto, ya no hagas a un QA la pregunta de ¿a qué te dedicas? Sino ¿cuando empezamos a trabajar juntos?