Proceso de manejo de la calidad de software
La gestión de la calidad del software (SQM) se define como el conjunto integral de procesos diseñados para garantizar que los productos y servicios cumplan con los objetivos organizacionales y las expectativas de los interesados a lo largo de todo el ciclo de vida. Esta disciplina se estructura en cuatro subcategorías clave: la planificación, que establece estándares y metas; el aseguramiento (SQA), que evalúa la adecuación de los procesos; el control (SQC), que examina la conformidad de los artefactos técnicos; y la mejora de procesos (SPI), orientada a elevar la eficiencia y eficacia operativa. En conjunto, estas actividades utilizan mediciones, canales de retroalimentación y una gestión de riesgos disciplinada para proporcionar visibilidad a la gerencia y asegurar que la implementación de los planes resulte en un software de alta calidad.
2.1 Aseguramiento de la Calidad del Software (SQA)
El SQA no se trata de probar el código, sino de auditar los procesos para dar confianza a la organización.
- Propósito: Proporcionar evidencia de que los procesos utilizados son apropiados y se están siguiendo correctamente.
- Actividades clave: Evaluar si los planes de desarrollo, gestión y configuración son adecuados y si el equipo está adhiriendo a ellos.
- Independencia: El SWEBOK resalta que para que el SQA sea efectivo, debe tener un grado de independencia técnica respecto a los grupos de desarrollo para evitar conflictos de interés.
2.2 Verificación y Validación (V&V)
Estos son los dos pilares que determinan si el software es "correcto".
- Verificación: Evalúa si los productos de una fase cumplen con las condiciones impuestas al inicio de esa fase. Responde a: "¿Estamos construyendo el producto correctamente?".
- Validación: Evalúa si el software final satisface los requisitos específicos para su uso previsto. Responde a: "¿Estamos construyendo el producto correcto?".
- V&V Independiente (IV&V): En sistemas críticos, se recomienda que una organización ajena al desarrollador realice estas tareas.
2.3 Revisiones y Auditorías (Reviews and Audits)
Son técnicas de examen de productos y procesos para identificar anomalías o medir el progreso.
- Revisiones Administrativas (Management Reviews): Evalúan el estado de un proyecto en relación con el plan de gestión. Se enfocan en el progreso, cronograma y presupuesto.
- Revisiones Técnicas (Technical Reviews): Un grupo de profesionales evalúa un producto de software (como el diseño o código) para asegurar que es técnicamente adecuado.
- Inspecciones: Es la forma más rigurosa de revisión técnica. Incluye roles específicos (moderador, lector, registrador) y un proceso formal de búsqueda de defectos basado en listas de verificación.
- Walkthroughs (Recorridos): Una revisión más informal donde el autor del producto guía a los demás a través del documento para explicar su lógica.
- Auditorías: Son exámenes independientes para determinar el cumplimiento de software con requisitos, estándares, contratos o reglamentaciones.
2.4 Medición de la Calidad del Software
Para gestionar la calidad, es necesario cuantificarla.
- Métricas de Producto: Miden características del software (ej. complejidad ciclomática, densidad de defectos).
- Métricas de Proceso: Evalúan la efectividad de las actividades de calidad (ej. eficiencia en la eliminación de defectos).
- Análisis de Datos: Los resultados de las mediciones se utilizan para tomar decisiones correctivas, como decidir si un módulo necesita ser reescrito debido a una alta tasa de errores.
2.5 Gestión de Defectos
Esta parte del proceso se enfoca en el ciclo de vida de un problema detectado.
- Identificación y Registro: Todo defecto encontrado debe ser documentado formalmente.
- Clasificación: Se categorizan por severidad (impacto en el sistema) y prioridad (urgencia de reparación).
- Seguimiento: El proceso garantiza que cada defecto pase por un estado de "abierto", "reparado", "verificado" y finalmente "cerrado".