¿Qué es un QA y por qué no debe faltar en un proyecto de desarrollo web?

Fernando F. Coelho04-Ago, 2019

Cuando uno piensa en crear un proyecto de desarrollo web tiene establecidos cuáles son los perfiles a contratar, pero ¿qué es lo que ocurre cuando las cosas no salen bien o aparecen errores?

Lo normal es contratar los servicios de un experto en calidad. No hablamos solamente de desarrollar correctamente un proyecto, hablamos también de evitar el máximo número de errores posibles durante todo el desarrollo. Para evitar esta situación se contrata lo servicios de un experto QA. 

¿Qué es un QA? 

QA significa Quality Assurance y su función no solo abarca el control de calidad del desarrollo del software sino también ayudar a todo el equipo para que las cosas funcionen correctamente. Con las pruebas de Automatización se ha conseguido evitar la mayoría de errores, consiguiendo así ahorrar mucho dinero durante todo el proceso.

Cualquier equipo de desarrollo de software debe contar con al menos un responsable QA que se va a encargar del correcto funcionamiento del software que se está desarrollando. Normalmente utilizar una metodología ágil equivale a usar Kanban, scrum o la combinación de ambas; comúnmente conocido como scrumban.

Metodologías ágiles: dónde ubicar a un QA

Si no has trabajado con un método scrum seguramente te estés preguntando dónde se ubica un QA. La respuesta es muy sencilla, durante todas las fases del proyecto. Desde la parte inicial, un QA debe estar presente para obtener el máximo número de datos posibles y así poder contrastar en todo momento cómo está evolucionando todo el proceso.

Cuando el jefe del proyecto tenga una duda y no sepa cómo está la fase de desarrollo, va a necesitar a una persona por debajo que le asesore y supervise lo que está ocurriendo. Este trabajo lo puede desarrollar perfectamente un QA y así evitar que los programadores utilicen su tiempo para esta gestión. 

Respecto a los tiempos, normalmente con una metodología ágil se utilizan sprints de 1-4 semanas, para conseguir los objetivos que se han planteado desde el primer momento. Es complicado escoger el tiempo máximo del desarrollo de un proyecto, pero se debe comenzar con una estimación a alto nivel y a partir de ahí, ir poco a poco hasta cambiarlo a bajo nivel. Si por un casual todo el equipo entiende que un proyecto se complica más de lo habitual, se hace SCRUM Poker para ayudar en este proceso y que así todo el equipo entienda el tiempo necesario para cada gestión.

Es importante entender que, si se avanza sin revisar todos los errores que se están acumulando, cada paso que se avance será peor. Acumulando errores del pasado, del presente y del futuro.

Como hemos visto en Introducción a Selenium, dependiendo de las responsabilidades y skills del QA, se encargará de más o menos procesos incluyendo toda la parte del control de calidad. 

Un QA supervisa a todo el mundo

El cliente o product owner del proyecto va a solicitar unos requisitos que se deben cumplir durante los Sprints y dependiendo del tipo de desarrollo de software, se puede utilizar un testeo manual, automatización o combinar ambas.

Un QA debe colocarse entre la parte técnica y la parte de negocio. ¿Por qué motivo? La idea es entender al cliente y explicarle al equipo técnico lo que quiere realizar durante el desarrollo de software. 

En este aspecto podemos encontrar cierto parecido al perfil de Project Manager o Big Data Business Consultant pero que no te engañen los parecidos sutiles de estos perfiles. El verdadero objetivo de un QA es anticiparse a los posibles errores o bugs del futuro. De esta manera también supervisará al resto de componentes de todos los departamentos para comprobar que todo se realiza correctamente.

QA y los entornos de pruebas

Un experto QA también debe desarrollar un entorno de pruebas adecuado. Muchos programadores prefieren trabajar con un entorno de preproduccion – staging, dependiendo del equipo de desarrollo de software, un QA trabajará conjuntamente para definir algunos procesos. De esta manera cuando estemos en la parte de producción todo será más sencillo, ya que ayudará a ahorrar dinero incluso después de haber finalizado el proceso de desarrollo de software.

Cada equipo prefiere trabajar a su manera y a lo largo de los años he comprobado que cada maestrillo tiene su librillo. Si tuviera que definir los procesos que debe desarrollar un QA, lo resumiría de la siguiente manera:

  • Briefing (preparación): conocer el producto. Nos reunimos con el cliente para entender qué es lo que quiere y luego lo trasladamos al equipo técnico. Esta parte es fundamental porque si conseguimos que quede todo bien registrado, tanto el cliente como el equipo técnico van a tener bien especificado el trabajo a realizar y así se reduce al máximo las posibles malinterpretaciones en el futuro.
  • Planificación: comprobamos las herramientas que se van a utilizar, el tiempo que va a requerir realizar el trabajo y los perfiles que tenemos disponibles. En este caso, si no podemos cubrir alguna de las partes, comprobamos costes y decidimos si continuar o no con el proyecto.
  • Diseño: normalmente recibimos dos tipos de clientes en este aspecto, los que tienen muy claro lo que quieren y los que no tienen ni idea y quieren que les sorprendas con un diseño maravilloso. Bien, pues esta parte del proceso se centra en demostrarle al cliente cuál es el mejor diseño para lo que está solicitando o explicarle sí se puede o no desarrollar lo que está solicitando por el precio que está pagando. Normalmente utilizamos Test A/B, Wirefrime, etc.
  • Desarrollo: normalmente la parte del proyecto que más tiempo requiere tanto para los programadores como para el QA. El equipo técnico se centrará en adecuar el proyecto implementando los lenguajes de programación idóneos, bases de datos, contenidos web (en caso de requerirlos), etc.
  • Lanzamiento: fase crucial del proyecto. Todo debe ejecutarse correctamente y se debe comprobar una y otra vez que cada pequeño detalle aparece tal cual se solicitaba en las fases anteriores. El perfil del QA es fundamental en este proceso ya que no solo debe realizar un control de calidad exhaustivo, también debe coordinar a todo el equipo y comunicarse con el cliente para que dé el visto bueno y el proyecto salga al mercado.
  • Mantenimiento: que saquemos el producto al mercado no implica la retirada completa del equipo. Precisamente las mejores marcas apuestan muy fuerte en este sentido para conseguir que la gran mayoría de usuarios tengan opiniones positivas en este aspecto. Reportes analíticos, revisión y control de calidad, soporte técnico, actualizaciones, test de usuarios reales con los debidos reportes de errores, etc. 

Por otro lado, un QA debe supervisar, y en muchas ocasiones realizar, los test de regresión para confirmar que esté todo correcto. Hoy en día vemos que muchos proyectos, cuando finalizan, no tienen la calidad necesaria para salir al mercado y cuando la calidad del software no es la prioridad principal, acaba costando muy caro.

Piensa que, al contratar los servicios de un QA, estarás obteniendo muchos beneficios: seguimiento, reducción del tiempo de trabajo, mayor productividad, control de calidad, menor coste de mantenimiento, mayor satisfacción del cliente, etc.

Como puedes comprobar, el perfil del QA es necesario en todas las fases de un proyecto de desarrollo web y las mejores compañías del mundo tienen muy claro que este trabajador es muy necesario en todo el proceso.

Fernando F. Coelho

QA, Tester & Digital Marketing