A lo largo de estos años, hemos visto como el desarrollo de software ha ido evolucionando, y los equipos de aseguramiento de calidad no hemos estado exentos de esta evolución. La mayoría de las pruebas se realizaban manualmente y había muy pocas herramientas, una práctica “artesanal”. Para apoyar este proceso, hemos reconvertido esta práctica, en un proceso de ingeniería con altos niveles de automatización y una infinidad de herramientas que permiten detectar de mejor manera los defectos en el software.
Por otra parte, las metodologías ágiles, han cambiado la forma en que abordamos el testing, no solo en cómo nos organizarnos, sino en cómo planteamos las pruebas. Hacer las pruebas necesarias, ni más ni menos, sin perder la calidad, es el balance que día a día buscamos en todo proceso de pruebas, lo que se traduce en un testing más eficiente que colabora con el time to market del negocio.
Sin embargo, a pesar de haber avanzado en aspectos como los mencionados, anteriormente, hemos perdido el hecho de llevar cierto “control de la calidad” en los activos desarrollados por los equipos de QA, generando una infinidad de casos de prueba duplicados y que no se reutilizan, automatizando casos de prueba que no entregan valor, por no contar con una estrategia y políticas de automatización. Por otra parte, la deficiente gestión del conocimiento, que hace muy dependiente a las personas, sobre todo en conocimientos de negocio complejos.
Dado lo anterior, es que se hace necesario contar con un gobierno o administración de los equipos y procesos de QA, para que la evolución y los cambios que se vayan incorporando, sean transversales y aprovechados por todos.
Para ello, se plantea que este gobierno sea construido sobre estos 4 pilares que a continuación detallamos:
1.Metodología y procesos
Definir un modelo operativo de QA que se ajuste a la metodología o el SDLC de la empresa, es fundamental, dado que se marca el alcance; cuándo y cómo interviene el área de QA. En este procedimiento, deben definirse: Roles y responsabilidades, el flujo general del proceso, subprocesos de defectos e interacción de pruebas automatizadas y no funcionales.
2.Herramientas y automatización de pruebas
Definir una herramienta que soporte y controle el ciclo de vida de QA, que permita aunar los flujos y esquemas de trabajo para una administración ordenada y centralizada de las tareas y actividades, teniendo un repositorio común de pruebas asociado a las funcionalidades de negocio y que permita su reutilización por parte de los equipos de QA. Respecto a la automatización de pruebas, no sólo consiste en automatizar su ejecución, sino automatizar el ciclo completo de la prueba, es decir, se debe incluir las tareas “administrativas” que realiza el analista, como la gestión de evidencia y cambios de estado. Adicionalmente, se debe definir una estrategia de automatización donde se incluya el alcance y objetivos ¿Para qué quiero automatizar?
3.Métricas e indicadores
Deben ser claras y asociadas a los objetivos del área de QA y de la organización, no es sólo medir por medir. Identificar los stakeholders y asociados a ellos, son los niveles de métricas que se deben construir. Por otra parte, definir el alcance y generar un plan para corregir desviaciones hasta llegar a los niveles o indicadores esperados.
4.Colaboradores y gestión del conocimiento
Gestionar el conocimiento en repositorios centralizados y con accesos globales, es muy importante, permite una transferencia de conocimiento de forma autodidacta y con menos impacto en términos de tiempo que, a su vez, se convierte en un plan de formación para los nuevos o la movilidad de colaboradores dentro de la organización.
Finalmente, y no menos importante, la gestión del cambio. Este es un aspecto fundamental que se ocupa de la comprensión y aceptación de los colaboradores para que apoyen e incentiven los cambios desde su sitio de trabajo, por medio de un conjunto de actividades orientadas a mejorar los procesos de transformación.
Este artículo, no solo busca en resumidas palabras dar respuesta a las problemáticas que hemos visto en muchos de nuestros clientes, sino que, aporta soluciones concretas para lograr un área de calidad mucho más madura, eficiente y que soporte las nuevas tecnologías que vendrán. Hoy está en boga la inteligencia artificial, machine learning, entre otros; pero si no somos capaces de tener un cierto orden en estos 4 aspectos que hemos mencionado, implementar estas nuevas tecnologías será mucho más costoso y con muchísima fricción.
Vicente de Paul Martínez Ojeda
Responsable Servicios Aseguramiento de la Calidad del Software