La historia de la calidad del software es un relato interesante que abarca varias décadas y ha
evolucionado junto con la industria de la tecnología de la información. A continuación, te
proporcionaré una breve cronología de los hitos más importantes en la evolución de la calidad del
software:
Década de 1960
En esta época, la informática estaba en sus primeras etapas de desarrollo. La calidad del software no
era una preocupación principal, ya que los proyectos eran relativamente pequeños y simples en
comparación con los estándares actuales.
Década de 1970
Se desarrollaron los primeros estándares de calidad de software, como el modelo de madurez de
capacidad (CMM, por sus siglas en inglés), que fue propuesto por el Departamento de Defensa de los
Estados Unidos. El CMM establecía niveles de madurez para evaluar la capacidad de una organización
para desarrollar software de alta calidad.
Década de 1980
Aparecieron las metodologías de desarrollo de software estructurado, como el modelo de desarrollo de
sistemas (SDLC). Estas metodologías tenían como objetivo mejorar la calidad del software al
proporcionar un enfoque estructurado para el desarrollo.
Década de 1990
El enfoque en la calidad del software se intensificó con la popularización de las metodologías ágiles,
como Scrum y Extreme Programming (XP). Estas metodologías pusieron énfasis en la colaboración, la
retroalimentación y la entrega continua para mejorar la calidad del software.
Década de 2000
La certificación ISO 9001 se expandió para incluir estándares específicos para la calidad del software,
como ISO 9001:2000 e ISO/IEC 90003. Estos estándares proporcionaron directrices para la gestión de la
calidad del software en organizaciones.
Década de 2010
La automatización de pruebas y la integración continua se convirtieron en prácticas comunes para
mejorar la calidad del software. También se popularizaron marcos de desarrollo y gestión, como
DevOps, que enfatizan la colaboración entre equipos de desarrollo y operaciones para lograr una
entrega más rápida y confiable.
Década de 2020 y más allá
La calidad del software sigue evolucionando con la creciente adopción de la inteligencia artificial y el
aprendizaje automático en el desarrollo y pruebas de software. La ciberseguridad se ha vuelto una
preocupación fundamental, y se están desarrollando estándares y prácticas para garantizar la
seguridad del software.
MODELOS DE CALIDAD DE SOFTWARE
Existen varios modelos y marcos de referencia para evaluar y gestionar la calidad del software. Algunos
de los modelos de calidad de software más conocidos incluyen
Modelo ISO 25000 (SQuaRE)
ISO/IEC 25000 es una serie de estándares internacionales que definen un marco de calidad de software
conocido como SQuaRE (Software product Quality Requirements and Evaluation). Esta norma
proporciona un conjunto de características de calidad y subcaracterísticas que se pueden utilizar para
evaluar la calidad del software.
Modelo ISO 9126
Este modelo se utiliza para evaluar la calidad del software en función de características como la
funcionalidad, la confiabilidad, la usabilidad, la eficiencia, la mantenibilidad y la portabilidad.
Modelo CMMI (Capability Maturity Model Integration)
CMMI es un modelo de mejora de procesos que aborda no solo la calidad del producto, sino también la
calidad del proceso. Se centra en la mejora de la capacidad de una organización para desarrollar
software de alta calidad.
Modelo TQM (Total Quality Management)
TQM es un enfoque de gestión de calidad que se aplica no solo al software, sino a toda la organización.
Se centra en la mejora continua de la calidad a través de la participación de todos los miembros de la
organización.
Modelo Six Sigma
Six Sigma es un enfoque de mejora de calidad que busca reducir defectos y variabilidad en los procesos
de desarrollo de software. Se basa en métodos estadísticos y herramientas de calidad.
Modelo IEEE 730
Este es un estándar del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) que se centra en la
calidad del proceso de software. Proporciona directrices para la gestión de la calidad del software.
Modelo de Garvin para la Calidad de Software
Basado en el modelo de calidad de David Garvin, se centra en cinco enfoques principales de calidad:
calidad transcendental, calidad de productos, calidad de usuarios, calidad de fabricación y calidad de
valor.
Modelo de McCall
Este modelo se centra en tres aspectos principales de la calidad del software: la operación, la revisión
y la transición. Cada uno de estos aspectos se subdivide en características y subcaracterísticas
específicas.
Modelo de Boehm (Modelo de Calidad del Producto en Espiral)
Este modelo se basa en el Modelo de Espiral de Barry Boehm y se enfoca en la calidad del producto en
relación con la evolución del ciclo de vida del software.
Modelo de FURPS+
Este enfoque se centra en cinco atributos de calidad: Funcionalidad, Usabilidad, Fiabilidad,
Rendimiento y Soporte del sistema, y se utiliza para especificar los requisitos de calidad del software.
ASEGURAMIENTO CALIDAD DE SOFTWARE
El aseguramiento de la calidad del software (SQA, por sus siglas en inglés, Software Quality Assurance)
es un conjunto de actividades planificadas y sistemáticas que se llevan a cabo en el proceso de
desarrollo de software para garantizar la calidad del producto final. El objetivo principal del SQA es
asegurar que el software cumple con los estándares de calidad establecidos y satisface las necesidades
y expectativas de los usuarios. Aquí hay algunos conceptos clave relacionados con el aseguramiento de
la calidad del software
Plan de Calidad
El SQA comienza con la creación de un plan de calidad que define los estándares, procesos y
procedimientos que se seguirán para garantizar la calidad del software. Este plan establece las metas,
los recursos, los plazos y las responsabilidades relacionadas con la calidad.
Auditorías y Revisiones
Se realizan auditorías y revisiones periódicas del proceso de desarrollo de software para asegurarse de
que se estén siguiendo los procedimientos y estándares definidos. Esto ayuda a identificar y corregir
posibles desviaciones o problemas en una etapa temprana del desarrollo.
Estándares y Normativas
El SQA implica el establecimiento y cumplimiento de estándares y normativas de calidad en todo el
ciclo de vida del software. Estos estándares pueden abordar aspectos como la documentación, el
diseño, la codificación y las pruebas
Pruebas de Calidad
Las pruebas de software son esenciales para garantizar la calidad del producto. Esto incluye pruebas
funcionales, pruebas de rendimiento, pruebas de seguridad y otros tipos de pruebas, dependiendo de
las necesidades del proyecto
Gestión de Configuración
La gestión de configuración implica el control y seguimiento de los cambios realizados en el software.
Esto garantiza que se pueda rastrear y verificar cualquier cambio en el software a lo largo del tiempo
Gestión de Defectos
El SQA también involucra la gestión de defectos. Los defectos encontrados durante el proceso de
desarrollo se registran, se investigan y se corrigen de manera oportuna.
Capacitación y Mejora Continua
El personal involucrado en el desarrollo de software debe recibir capacitación en las prácticas de SQA.
Además, se debe fomentar la mejora continua, lo que implica la revisión y la actualización constante de
los procesos y estándares para adaptarse a las lecciones aprendidas y a las cambiantes necesidades del
proyecto.
Documentación
La documentación adecuada es esencial en el SQA. Esto incluye la documentación de estándares,
procesos, resultados de pruebas y auditorías, y otros registros relacionados con la calidad.
Estandades de calidad
Los estándares de calidad son conjuntos de directrices, reglas, especificaciones y criterios que se
utilizan para evaluar y garantizar la calidad de productos, servicios o procesos en una variedad de
industrias. En el contexto del software y el aseguramiento de la calidad, existen varios estándares y
modelos ampliamente reconocidos que se utilizan para guiar y evaluar la calidad del software. Algunos
de los estándares y modelos de calidad de software más conocidos son
ISO 9001
La norma ISO 9001 es un estándar internacional para sistemas de gestión de calidad que se aplica a
una amplia gama de organizaciones y sectores. Aunque no está específicamente diseñada para el
software, se puede aplicar a empresas de desarrollo de software para garantizar procesos de calidad
en su producción y entrega
ISO/IEC 25000 (SQuaRE)
Esta serie de normas es específica para la calidad del software y sistemas de información. Define un
conjunto de características y subcaracterísticas para evaluar la calidad del software, como la
funcionalidad, la fiabilidad, la usabilidad, la eficiencia, la mantenibilidad y la portabilidad.
ISO/IEC 9126
Este estándar anterior se centraba en la evaluación de la calidad del software y definía un conjunto de
características y subcaracterísticas que abordaban la calidad del software desde la perspectiva del
producto
CMMI (Capability Maturity Model Integration)
CMMI es un modelo que evalúa la madurez de los procesos de desarrollo y gestión de una
organización. Proporciona un marco para mejorar y evaluar la calidad de los procesos relacionados
con el software
ISO/IEC 15504 (SPICE - Software Process Improvement and Capability Determination)
Este estándar se centra en la mejora de los procesos de desarrollo de software y proporciona un
marco para evaluar la capacidad de los procesos de software en una organización.
IEEE 730
Un estándar del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) que se centra en la gestión de
calidad de software y establece directrices para la planificación y ejecución de actividades de
aseguramiento de la calidad del software.
IEEE 829
Este estándar de IEEE se enfoca en la documentación de pruebas de software, proporcionando pautas
para la creación de informes de pruebas y documentación de resultados.
Agile and Scrum
Aunque no son estándares en el sentido tradicional, los marcos Agile y Scrum promueven prácticas de
desarrollo que enfatizan la colaboración, la flexibilidad y la entrega continua de software de alta calidad