A FONDO

Calidad del software, qué es y pasos para alcanzarla



Dirección copiada

La calidad del software es la conjunción de todos procesos que aseguran que los productos, servicios e implementaciones en torno al ciclo de vida del software cumplen con los objetivos de calidad requeridos

Actualizado el 11 mar 2024



Calidad-de-Software

El concepto de Calidad asociado al desarrollo software está ligado al mismo desde sus orígenes.

Desafortunadamente, se construyen productos que no alcanzan el mínimo de calidad esperado; incluso los costes de no calidad, la deuda técnica, inducen a la no finalización con éxito de los proyectos.

Se planifica el desarrollo de productos, en base a una metodología o un marco de trabajo, siguiendo un proceso definido y obviando actividades asociadas a la calidad.

A menudo, se confunde la calidad del proceso con la calidad del producto, lo que conlleva a falsas expectativas en el desarrollo del software, e incluso en muchas organizaciones no existe una mentalización real por la calidad del producto, prima la puesta en servicio sobre la calidad del mismo y, lo que es peor, no cuentan con un proceso de V&V (Verificación y Validación).

Por ello, la calidad es innegociable, forma parte inherente e inseparable del producto.

Qué es la calidad del software

El Quality Assurance (QA) forma parte de las actividades de gestión de la calidad de una organización.

Según la ISO 9000, se define Quality Assurance como la parte de la gestión de la calidad centrada en asegurar que se cumplan los requerimientos de calidad.

Y es que la Calidad del Producto (pool de activos generados a lo largo de un activo software) es una ventaja inherente frente a la competencia: no se debe obviar.

Es así que la calidad del software es la calidad de todos los elementos que se construyen a lo largo del ciclo de vida de un proyecto.

Garantizar la calidad del software (SQA) es un proceso que asegura que todos los procesos, métodos, actividades y elementos de trabajo de ingeniería de software sean monitoreados y cumplan con los estándares definidos.

Calidad del Software

Estos estándares definidos podrían ser uno o una combinación de varios aspectos como ISO 9000, modelo CMMI, ISO15504, etc.

El objetivo de los planes de aseguramiento de la calidad del software es garantizar que los productos cumplen con los requisitos especificados y que pueden ser desplegados en operaciones, para funcionar de acuerdo a lo esperado, eficientemente, sin afectar los sistemas que actualmente están en operación.

Asegurar y controlar la calidad del software

Cuando se asegura la calidad del software, al mismo tiempo se ayuda a verificar el cumplimiento de todos los escenarios comerciales y los requisitos del usuario, así como a identificar todos los posibles problemas y errores en los productos de software.

Con frecuencia, los términos ‘testing’, ‘quality assurance’ y ‘quality control’ se confunden o se usan indistintamente. Sin embargo, caracterizan procesos muy diferentes, como:

Pruebas o testing, que significa el proceso de encontrar errores.

QC (Control de Calidad) que es la implementación del proceso de pruebas como descripción de un caso, búsqueda y establecimiento de defectos.

QA (Quality Assurance) es la creación de un sistema de control para prevenir errores durante la etapa de desarrollo del software y reducir la cantidad de defectos en la etapa de prueba. Es la construcción del proceso de pruebas.

Los expertos opinan que hay que ir a un modelo orientado al producto, no al proyecto, basado en una calidad concertada, siendo esta, el compromiso de entrega de un producto, con el cumplimiento estricto de lo descrito en el plan de aseguramiento de la calidad del mismo, SQAP.

Catalogar los productos y definir el SQAP es un axioma a cumplir.

El Plan de Aseguramiento de la Calidad establecerá un modelo de Verificación y Validación (IV&V – Independent Verification and Validation), orientado a garantizar, respectivamente, la calidad de todos los assets no software y software del producto.

Control de Calidad

El control de calidad es uno de los procesos que utilizan las pruebas de software y los proveedores de servicios de control de calidad para comprobar que el producto o servicio desarrollado cumple con los estándares de calidad.

También se debe utilizar este proceso para ver si el producto o servicio es capaz de cumplir con los requisitos de los clientes.

Básicamente, el control de calidad se centra en entregar un producto que mantenga constantemente una alta calidad.

Es un concepto que garantiza que los defectos se encuentran durante el ciclo de desarrollo del software y se resuelven antes de que la solución de software esté implementada y lista para usar.

Plan estratégico de calidad de software

Las organizaciones deberían establecer el siguiente plan estratégico:

  • Producto vs Proyecto
  • Calidad de Proceso, Producto y Servicio
  • Proceso del SQAP y la familia Squire
  • Continuous Integration
  • Grupo de QA: Certificación de Productos
  • Continuous Delivery: time to market

Todo ello, sustentado bajo el pensamiento Lean y la mejora continua.

Las organizaciones deben tener definido e implantado los procesos de gestión del cambio, gestión del despliegue y gestión de la configuración en aras a favorecer la transición a servicio continuo: DevOps.

Abreviado como SQAP, el Plan de Garantía de Calidad del Software comprende los procedimientos, técnicas y herramientas que se emplean para garantizar que un producto o servicio se alinee con los requisitos definidos en la SRS (Especificación de requisitos de software).

El plan de Garantía de Calidad del Software identifica las responsabilidades de SQA del equipo y enumera las áreas que deben revisarse y auditarse

El plan identifica las responsabilidades de SQA del equipo y enumera las áreas que deben revisarse y auditarse. También identifica los productos del trabajo de SQA.

El documento del plan SQA consta de las siguientes secciones:

  • Objetivo
  • Referencia
  • Gestión de configuración de software
  • Informe de problemas y acciones correctivas
  • Herramientas, tecnologías y metodologías
  • Control de código
  • Registros: recopilación, mantenimiento y retención
  • Metodología de prueba

Estándares de garantía de calidad del software

El ciclo de vida del desarrollo de software y, en particular, el SQA pueden requerir el cumplimiento de estándares de calidad tales como:

ISO 9000

Basado en siete principios de gestión de calidad que ayudan a las organizaciones a garantizar que sus productos o servicios estén alineados con las necesidades del cliente.

Nivel CMMI

CMMI significa integración del modelo de madurez de capacidad. Este modelo se originó en la ingeniería de software.

Puede emplearse para dirigir la mejora de procesos en un proyecto, departamento u organización completa.

Una organización es evaluada y se le otorga una calificación de nivel de madurez (1-5) según el tipo de evaluación.

Integración del modelo de madurez de pruebas (TMMi)

Basado en CMMi, este modelo se centra en los niveles de madurez en la gestión y las pruebas de calidad del software.

Beneficios de asegurar la calidad del software

Los beneficios del control de calidad no son limitados; existen innumerables beneficios al manejar responsablemente el control de calidad de un producto de software.

Calidad del Software

Este proceso de prueba de control de calidad beneficia a todos, desde los usuarios finales hasta terceros.

Si la empresa mantiene una buena calidad del producto, es probable que obtenga beneficios como una mayor satisfacción del cliente, una reducción de costos y de inversión de tiempo, mejoras más rápidas y anticipación de los problemas.

Riesgos en la calidad del software

Por otro lado, un SQA insuficiente o su ausencia aumenta la posibilidad de que se produzcan complicaciones para los desarrolladores, la desaprobación de las partes interesadas y malas experiencias de los consumidores.

Algunos de los riesgos más comunes del lanzamiento de software sin control de calidad incluyen gastos excesivos, lanzamientos de productos retrasados, usuarios insatisfechos y reputación de marca reducida.

Los peligros de la implementación de software sin control de calidad superan con creces los beneficios de un lanzamiento rápido (aunque defectuoso) del software.

Por tanto, los beneficios de SQA son obvios. Ahorra dinero y tiempo porque los errores son costosos y lleva más tiempo corregirlos. Previene averías y fallos similares, aumentando la confianza del consumidor. También aumenta su participación de mercado y la seguridad del producto.

Artículos relacionados

Artículo 1 de 5