SQA abarca una amplia gama de actividades, que incluyen, entre otros::
1. Planificación y estándares:
* Definición de estándares de calidad: Establecer objetivos específicos, medibles, alcanzables, relevantes y vinculados en el tiempo (inteligentes) para los atributos de calidad del software (por ejemplo, rendimiento, seguridad, usabilidad).
* Creación de un plan de garantía de calidad: Describiendo los procesos, métodos y recursos necesarios para lograr los estándares de calidad definidos. Esto incluye definir roles y responsabilidades.
* Establecer un proceso de revisión: Definición de procedimientos para revisiones de código, revisiones de diseño y otras formas de controles de calidad.
* Definición y gestión de métricas: Seguimiento de indicadores de rendimiento clave (KPI) para monitorear la efectividad del proceso SQA.
2. Prevención y detección temprana:
* Análisis y revisión de requisitos: Asegurar que los requisitos sean claros, consistentes, completos y comprobables.
* Reseñas de diseño: Evaluar la arquitectura y el diseño del software para fallas potenciales antes de que comience la codificación.
* Reseñas de código (revisiones de pares): Hacer que otros desarrolladores examinen el código de errores, vulnerabilidades y cumplimiento de los estándares de codificación.
* Análisis estático: Uso de herramientas automatizadas para identificar posibles problemas en el código sin ejecutarlo realmente.
* Estrategias y planificación de prueba: Definición de una estrategia de prueba integral que cubra diferentes niveles de prueba (unidad, integración, sistema, aceptación) y tipos de pruebas (funcional, rendimiento, seguridad, usabilidad).
3. Prueba y verificación:
* Prueba unitaria: Prueba de componentes o módulos individuales del software.
* Prueba de integración: Prueba de la interacción entre diferentes módulos.
* Prueba del sistema: Prueba de todo el sistema de software en su conjunto.
* Prueba de aceptación del usuario (UAT): Hacer que los usuarios finales prueben el software para garantizar que satisfaga sus necesidades.
* Prueba de rendimiento: Evaluar la velocidad, escalabilidad y estabilidad del software bajo diferentes cargas.
* Pruebas de seguridad: Identificar y mitigar las vulnerabilidades de seguridad.
* Prueba de usabilidad: Evaluación de la facilidad de uso y la experiencia del usuario del software.
* Prueba de regresión: Asegurar que los nuevos cambios no hayan introducido nuevos errores o roto funcionalidad existente.
4. Mejora continua:
* Seguimiento y análisis de defectos: Identificar las causas fundamentales de los defectos para evitar que ocurran problemas similares en el futuro.
* Mejora del proceso: Evaluar y mejorar regularmente los procesos SQA para mejorar la efectividad y la eficiencia.
* Análisis de métricas: Análisis de datos recopilados en todo el proceso para identificar áreas de mejora.
En esencia, SQA se trata de construir calidad en el software desde el principio, en lugar de tratar de arreglarlo después. Implica un esfuerzo de colaboración en todo el equipo de desarrollo y se centra en prevenir defectos, garantizar el cumplimiento y, en última instancia, ofrecer software de alta calidad que satisfaga las necesidades y expectativas del usuario.