NORMAS
Las normas de calidad de software son documentos técnicos oficiales emitidos por organismos de estandarización internacional (principalmente ISO, IEC e IEEE) que establecen principios, procesos, actividades, roles, requisitos, métricas y productos de trabajo para gestionar y asegurar la calidad del software durante todo su ciclo de vida. Están redactadas de manera que puedan ser verificadas, auditadas y aplicadas de forma uniforme en distintas organizaciones y contextos.
Sus rasgos distintivos son:
- Publicación y mantenimiento por entidades reconocidas.
- Contenido consensuado por comités técnicos.
- Estructura orientada a la auditoría (requisitos, entradas, salidas, registros).
- Estabilidad en el tiempo y versiones identificables.
- Neutralidad metodológica (pueden aplicarse con enfoques predictivos o ágiles, siempre que se conserven las evidencias).
Finalidad
Las normas tienen como propósito principal:
- Establecer un lenguaje técnico común entre las partes interesadas (desarrollo, pruebas, cliente, interventoría, auditoría).
- Proporcionar prácticas repetibles que reduzcan la variabilidad del proceso de desarrollo y mantenimiento.
- Garantizar la trazabilidad entre requisitos, diseño, implementación, verificación, validación y operación.
- Disminuir el riesgo técnico y organizacional, al exigir planificación, control de cambios, registros e indicadores.
- Habilitar auditorías de conformidad frente a referencias internacionalmente aceptadas.
- Facilitar la mejora continua, al definir qué debe medirse y qué productos de trabajo deben generarse.
Familia SQuaRE (ISO/IEC 25000–25010): calidad del producto y su evaluaciónLa familia ISO/IEC 25000, denominada SQuaRE (Software product Quality Requirements and Evaluation), define el marco para especificar, medir y evaluar la calidad del software.Componentes principales:
ISO/IEC 25000: documento de referencia general de la familia; describe la estructura y la relación entre las demás partes. ISO/IEC 25010: define el modelo de calidad del producto software y el modelo de calidad en uso. ISO/IEC 2502x: establece los principios para la medición de la calidad, la definición de medidas, datos y métodos de evaluación. ISO/IEC 2503x: detalla la especificación de requisitos de calidad de manera medible. ISO/IEC 2504x: describe el proceso de evaluación de calidad y los informes correspondientes. En algunos casos, se complementa con ISO/IEC 25012 para calidad de datos.Modelo de calidad del producto (ISO/IEC 25010)
Incluye ocho características, cada una con subcaracterísticas:
Adecuación funcional
Completitud funcional Corrección funcional Pertinencia/Idoneidad funcional Eficiencia de desempeño
Comportamiento temporal Utilización de recursos Capacidad Compatibilidad
Coexistencia Interoperabilidad Usabilidad
Reconocibilidad de idoneidad Aprendibilidad Operabilidad Protección frente a errores del usuario Estética de la interfaz de usuario Accesibilidad Fiabilidad
Madurez Disponibilidad Tolerancia a fallos Recuperabilidad Seguridad
Confidencialidad Integridad No repudio Trazabilidad/Responsabilidad Autenticidad Mantenibilidad
Modularidad Reusabilidad Analizabilidad Modificabilidad Testeabilidad Portabilidad
Adaptabilidad Instalabilidad ReemplazabilidadModelo de calidad en uso (ISO/IEC 25010)
Define las siguientes propiedades cuando el sistema es utilizado en un contexto real:
Eficacia Eficiencia Satisfacción (incluye utilidad percibida, confianza, agrado) Ausencia de riesgo Cobertura del contextoUso típico de la familia SQuaRE
Selección de las características de calidad aplicables al producto. Especificación de requisitos de calidad no funcionales mediante ISO/IEC 2503x. Definición de medidas e indicadores con ISO/IEC 2502x. Ejecución de la evaluación y elaboración del informe según ISO/IEC 2504x.
Normas de ciclo de vida y procesos (ISO/IEC/IEEE 12207 y relacionadas)La norma ISO/IEC/IEEE 12207 define los procesos del ciclo de vida del software, sus objetivos, actividades y productos de trabajo. Su propósito es ofrecer un marco completo que permita a una organización mapear su proceso de desarrollo, operación y mantenimiento contra una referencia reconocida.La norma agrupa los procesos en las categorías siguientes:
Procesos de acuerdo
Proceso de adquisición Proceso de suministro Procesos técnicos
Análisis de requisitos Diseño de la arquitectura y del software Implementación/Construcción Integración Pruebas Instalación Operación Mantenimiento Procesos de soporte
Gestión de la configuración Gestión de la información y documentación Verificación Validación Revisión conjunta Auditoría Aseguramiento de la calidad Medición Procesos de gestión y organización
Gestión de proyectos Gestión de riesgosNormas relacionadas:
ISO/IEC/IEEE 15288: ciclo de vida de sistemas, aplicable cuando el software forma parte de un sistema mayor. ISO/IEC/IEEE 15289: información del ciclo de vida; establece qué documentos o artefactos deben producir los procesos. ISO/IEC 15939: proceso de medición para software y sistemas; define cómo establecer objetivos de medición, indicadores y análisis. ISO/IEC/IEEE 24748: guías de aplicación para 12207 y 15288.Uso típico
Mapeo del proceso organizacional (predictivo o ágil) frente a los procesos de 12207. Definición de plantillas de los productos de trabajo descritos en 15289. Establecimiento de un proceso de medición conforme a 15939. Evidencia de ejecución de procesos para auditoría o interventoría.
Normas de pruebas de software (ISO/IEC/IEEE 29119)
La serie ISO/IEC/IEEE 29119 establece un marco internacional para los procesos, la documentación y las técnicas de prueba de software.
Componentes principales:
-
Parte 1: conceptos y definiciones de pruebas.
-
Parte 2: procesos de prueba (planificación, supervisión y control, análisis y diseño, implementación, ejecución, evaluación de criterios de salida y cierre).
-
Parte 3: documentación de pruebas; define plantillas y contenidos mínimos para planes de prueba, especificación de casos, procedimientos, informes de incidentes e informes de resultados.
-
Parte 4: técnicas de diseño de pruebas, incluyendo particiones de equivalencia, valores límite, tablas de decisión, pruebas de transición de estados y otras.
-
Parte 5: pruebas basadas en palabras clave (keyword-driven testing) para apoyar la automatización.
Uso típico
-
Estructuración del área o proceso de aseguramiento de calidad (QA) con roles, actividades y artefactos definidos.
-
Uniformidad en los informes de prueba.
-
Selección justificada de técnicas de diseño de prueba de acuerdo con los requisitos.
-
Trazabilidad entre requisitos, casos de prueba y resultados.
Normas de gestión de la calidad, seguridad y apoyo
Además de las normas específicas de software, existen normas transversales que suelen exigirse en proyectos de TI:
- ISO 9001 (gestión de la calidad): define requisitos para un sistema de gestión de la calidad basado en procesos, orientación al cliente y mejora continua. Para el ámbito del software puede complementarse con ISO/IEC 90003.
- ISO/IEC 27001 y ISO/IEC 27002 (seguridad de la información): establecen requisitos y controles para proteger la confidencialidad, integridad y disponibilidad de la información en los procesos de TI.
- ISO/IEC 27034 (seguridad de las aplicaciones): orientada a incorporar seguridad en las aplicaciones desde el diseño y a lo largo del ciclo de vida.
- IEEE 730 (Software Quality Assurance): especifica el contenido de un plan de aseguramiento de la calidad del software, incluyendo actividades de revisión, auditoría, informes, métricas y responsabilidades.
- IEEE 1012 (Verification and Validation): establece niveles y actividades de verificación y validación según la criticidad del sistema.
- ISO/IEC/IEEE 828 (gestión de la configuración): define la identificación, control, estado y auditoría de los ítems de configuración del software.
- IEEE 29148 (ingeniería de requisitos): define la estructura y los atributos de una especificación de requisitos de software (SRS), así como las características de un buen requisito (correcto, completo, verificable, trazable, no ambiguo).