Gestión de la calidad del software - Introducción
El software de calidad se refiere a un software que está razonablemente libre de errores o defectos, se entrega a tiempo y dentro del presupuesto especificado, cumple con los requisitos y / o expectativas y se puede mantener. En el contexto de la ingeniería de software, la calidad del software refleja tantofunctional quality tanto como structural quality.
Software Functional Quality - Refleja qué tan bien satisface un diseño determinado, en función de los requisitos o especificaciones funcionales.
Software Structural Quality - Se ocupa del manejo de requisitos no funcionales que apoyan la entrega de los requisitos funcionales, como la solidez o la capacidad de mantenimiento, y el grado en que el software se produjo correctamente.
Software Quality Assurance- Software Quality Assurance (SQA) es un conjunto de actividades para asegurar la calidad en los procesos de ingeniería de software que finalmente dan como resultado productos de software de calidad. Las actividades establecen y evalúan los procesos que producen los productos. Implica una acción centrada en el proceso.
Software Quality Control- Software Quality Control (SQC) es un conjunto de actividades para asegurar la calidad en los productos de software. Estas actividades se centran en determinar los defectos en los productos reales producidos. Implica una acción centrada en el producto.
El desafío de la calidad del software
En la industria del software, los desarrolladores nunca declararán que el software está libre de defectos, a diferencia de lo que suelen hacer otros fabricantes de productos industriales. Esta diferencia se debe a las siguientes razones.
Complejidad del producto
Es el número de modos operativos que permite el producto. Normalmente, un producto industrial solo permite menos de unos pocos miles de modos de funcionamiento con diferentes combinaciones de los ajustes de su máquina. Sin embargo, los paquetes de software permiten millones de posibilidades operativas. Por lo tanto, asegurar todas estas posibilidades operativas correctamente es un gran desafío para la industria del software.
Visibilidad del producto
Dado que los productos industriales son visibles, la mayoría de sus defectos se pueden detectar durante el proceso de fabricación. Además, la ausencia de una parte en un producto industrial se puede detectar fácilmente en el producto. Sin embargo, los defectos de los productos de software que se almacenan en disquetes o CD son invisibles.
Proceso de producción y desarrollo de productos
En un producto industrial, los defectos se pueden detectar durante las siguientes fases:
Product development - En esta fase, los diseñadores y el personal de Control de Calidad (QA) verifican y prueban el prototipo del producto para detectar sus defectos.
Product production planning- Durante esta fase, se diseñan y preparan el proceso de producción y las herramientas. Esta fase también brinda oportunidades para inspeccionar el producto para detectar los defectos que pasaron desapercibidos durante la fase de desarrollo.
Manufacturing- En esta fase, se aplican procedimientos de QA para detectar fallas de los propios productos. Los defectos en el producto detectados en el primer período de fabricación generalmente se pueden corregir mediante un cambio en el diseño o materiales del producto o en las herramientas de producción, de manera que se eliminen dichos defectos en los productos fabricados en el futuro.
Sin embargo, en el caso del software, la única fase en la que se pueden detectar defectos es la fase de desarrollo. En el caso del software, no se requieren las fases de planificación y fabricación de la producción del producto, ya que la fabricación de copias del software y la impresión de los manuales del software se realizan automáticamente.
Los factores que afectan la detección de defectos en productos de software frente a otros productos industriales se muestran en la siguiente tabla.
Característica | Productos de software | Otros productos industriales |
---|---|---|
Complejidad | Millones de opciones operativas | mil opciones operativas |
visibilidad del producto | Producto invisible Difícil de detectar defectos a simple vista | Producto visible Detección eficaz de defectos a simple vista |
Naturaleza del proceso de desarrollo y producción | puede presentar defectos en una sola fase | puede detectar defectos en todas las fases siguientes
|
Estas características del software, como la complejidad y la invisibilidad, hacen que el desarrollo de la metodología de aseguramiento de la calidad del software y su implementación exitosa sean un desafío altamente profesional.