El rol del QA Manager
Mucho ha cambiado el proceso de desarrollo software desde la metodología en cascada, en la que las pruebas se hacían mayoritariamente al final de dicho proceso. A día de hoy, la mayoría de desarrollos siguen una metodología software ágil.
Bajo estas metodologías, los intervinientes en el proceso de QA (Quality Assurance) están formados para centrarse en la calidad y se les ofrecen las herramientas necesarias para la detección de errores lo más temprano posible. Al fin y al cabo, todo el mundo conoce los estudios que relacionan la tardanza en encontrar un error con el coste -mayor cuanto más tarde- de arreglarlo, ¿verdad?
Coste relativo de arreglar errores basado en el tiempo de detección:
Un QA Manager, o Quality Assurance Manager, es un líder esencial en el ámbito del desarrollo de software, encargado de asegurar la calidad del producto final. Este profesional, también conocido como QA Lead o Líder QA, desempeña un papel crucial estableciendo y supervisando los estándares de calidad, metodologías y procedimientos a seguir durante el proceso de desarrollo. El QA Manager no solo lidera el equipo de especialistas en QA, sino que también define su alcance y responsabilidades, seleccionando las herramientas de gestión y supervisando los procesos y metodologías QA. Además, trabaja en estrecha colaboración con diferentes roles dentro de la organización, incluidos los equipos de desarrollo y arquitectura, para garantizar que los productos de software cumplen con los criterios de calidad establecidos, ofreciendo así soluciones óptimas y eficientes.
¿Qué es el QA y qué funciones asume un gestor de calidad?
Aquí es donde entran en juego los QA Manager, "gerentes del aseguramiento de la calidad".
Principalmente, estos QA Managers actúan como expertos en la materia que establecen directrices, normas, metodologías, procedimientos y métricas. Son la referencia y la autoridad final en todas las cuestiones de calidad, de los proyectos y productos software de un área o una empresa.
Veamos cuáles son las funciones y responsabilidades de un gestor de calidad en las organizaciones ágiles:
- Componer al equipo de especialistas en QA y determinar su alcance
- Definir los estándares de calidad y las herramientas de gestión
- Supervisar la metodología y los procesos QA
En este vídeo podrás encontrar las 7 características clave que define a buen QA Manager.
Seleccionar al equipo de QA
Aquí, la labor del QA Manager es entender las diferentes naturalezas presentes en los aplicativos de la organización. El objetivo es componer un equipo de especialistas en QA en las distintas tecnologías necesarias para poder cubrir la calidad en los diferentes componentes de las aplicaciones, determinadas por su naturaleza y por la arquitectura de diseño de las mismas.
No es lo mismo un especialista en pruebas explorativas, que en automatización de interfaces de usuario web, que móviles y, si estos son diferentes entre sí, la diferencia es aún mayor con un especialista en pruebas de backend con APIs Web, o un especialista en pruebas de rendimiento.
Por tanto, esta es la primera labor crítica que requiere un análisis cuidadoso para determinar las necesidades de composición del equipo y sus dimensiones para, más adelante, tratar de seleccionar dichos perfiles en el mercado laboral.
Posteriormente, el coordinador QA tendrá que determinar tareas, responsabilidades, áreas de colaboración y sincronización, así como el desarrollo y uso de herramientas para la gestión integral del proceso QA en la empresa.
Definición de los estándares de calidad
Esta tarea, que debería ser relativamente simple de acuerdo a la teoría, es decir, la verificación de que las funcionalidades se adecúan a lo especificado en los requisitos, en la práctica no lo es tanto. Dado que en la mayor parte de los casos (sobre todo en agile), estos requisitos no se especifican de manera formal, sino que se basan en supuestos tácitos, comunicados verbales, que todo el mundo cree compartir, en el momento de definir e implementar la funcionalidad.
Análisis funcional como punto de partida
El proceso QA parte en muchas ocasiones de la necesidad de realizar y plasmar ese análisis funcional para la definición de los casos de prueba y la posibilidad de conocer la cobertura. Este proceso debe ser planificado y supervisado. Por ello, el uso de una herramienta de gestión de casos de prueba con capacidad de integración con otras herramientas del proceso de QA y de generación de informes, histórico… es necesario a efectos de registro, trazabilidad y visibilidad de la evolución.
De acuerdo con la relación esfuerzo/beneficio, es importante sopesar una estructura parecida a la propuesta en la pirámide del testing para optimizar el esfuerzo dedicado a garantizar la calidad.
Indicadores de calidad
Respecto de las métricas que seleccionar para que actúen como indicadores de la calidad, las opciones son amplias, algunas de las más comunes son:
- Cobertura por aplicativo (desglosable por tipo de test), nos muestra cómo evoluciona la cobertura de pruebas unitarias, de servicios o de funcionalidades en nuestro aplicativo. Por supuesto, si nos falta cobertura, siempre trabajaremos en las funcionalidades críticas para el negocio primero.
- Recursos por test, tiempo, personas, dinero, hardware empleados en el desarrollo de cada tipo de prueba, siempre es bueno conocerlos para tener referencia y saber optimizar.
- Tiempos de ejecución y tiempos de espera, ¿Cuánto tarda en ejecutarse cada tipo de pruebas en total? ¿y unitariamente?, ¿Cuánto tiempo tiene que esperar la persona que necesita los resultados para obtenerlos?, ¿puede ejecutarlos el mismo?, ¿depende de otras personas / procedimientos / automatismos?
- Resultados de las pruebas. No sólo que pruebas fueron pasadas o fallidas, ¿hubo pruebas que no pudieron ejecutarse?, ¿por qué?, ¿hubo falsos positivos/negativos?, ¿son nuestras pruebas robustas?, ¿Qué tiempo dedicamos a revisar las ejecuciones? ¿y a mantener los test?
- Ciclo de vida de los defectos, ¿Cuándo se detectó cada uno?, ¿Cuánto tardo en arreglarse?, ¿es recurrente?, ¿en qué área funcional del aplicativo surgen la mayor parte de los errores?, ¿Cuál es la distribución de la criticidad de los defectos encontrados?
Relación con el resto de roles
Las pruebas son sólo una parte del proceso de QA, entre sus atribuciones más importantes se encuentra la supervisión de la metodología y los procesos. Por ello, es importante una comunicación fluida con los distintos roles de negocio y tecnología dentro de la compañía para conseguir que todos estén al unísono en relación a la construcción de un producto software de calidad.
Cooperación entre QA y desarrollo
Especialmente importante es la integración del proceso de QA con el proceso de desarrollo, trabajando codo con codo desde las etapas más tempranas. Estas incluyen el ‘Definition of Ready’, ejemplificando una petición de una nueva funcionalidad, para estar considerada lista para su implementación debería cumplir criterios de calidad, como una especificación clara, formal y no ambigua de sus requisitos de negocio y funcionales, y criterios de prueba definidos. Esto forma parte de la metodología de trabajo y es labor de los roles de QA saber transmitir y demostrar en la práctica los beneficios de esta forma de trabajo en estrecha cooperación y sincronía.
Colaboración con Arquitectura
Igualmente es importante la colaboración con los roles de arquitectura, ya que sus recomendaciones de tecnologías, herramientas y diseño, orientan y condicionan la estrategia óptima de testing. Así pues, suele ser recomendable consensuarla con este tipo de roles, que además aportan visión, conocimiento y profundidad.
Evidencias medibles del proceso de QA
Los roles de negocio presentan diferentes inquietudes dependiendo de su cercanía al producto desarrollado, cuanto más cerca están, más les suelen preocupar los pormenores de la metodología de trabajo y el día a día del proceso de entrega de nuevas versiones. Cuanto más alejados, más les preocupa tener una visión basada en información fiable del control de calidad y de los procesos de los aplicativos. En cualquier caso, lo que se pide al responsable de QA es ese control de la metodología, los procedimientos, y ser capaz de hacer patente mediante evidencias medibles que el proceso de QA tiene bajo un control férreo la calidad del desarrollo y la entrega de los productos.