Uno de los
problemas que se afrontan actualmente en la esfera de la informática es el
proceso de la calidad del software. Desde la década del 70, este tema ha sido
motivo de preocupación para especialistas, ingenieros, investigadores y
comercializadores de software.
La calidad
del software es el conjunto de cualidades que lo caracterizan y que determinan
su utilidad y existencia. La calidad es sinónimo de eficiencia, flexibilidad,
corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad
e integridad.
En términos
generales la calidad de software puede definirse como el grado en que un
conjunto de características inherentes al software cumple con unos requisitos
explícitos e implícitos.
La
implantación de un sistema de calidad en una organización ayuda a mejorar la
gestión del desarrollo de software, y esto traerá como consecuencia una
disminución de los problemas y errores, favoreciendo las relaciones y
comunicación entre las personas y grupos de organización, y de éstos con los
clientes.
La gestión
de la calidad va tomando cada día mayor importancia en el ámbito del desarrollo
de software. De esta forma, los esfuerzos encaminados a integrar la gestión de
la calidad dentro de la gestión de los proyectos deben generar también un
aumento de la productividad.
La obtención
de un software con calidad implica la utilización de metodologías o
procedimientos, estándares para el análisis, diseño, programación y prueba del
software que permitan uniformar la filosofía de trabajo, en aras de lograr una
mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven
la productividad, tanto para la labor de desarrollo como para el control de la
calidad del software.
Gestión de
la calidad de software: Conjunto de actividades de la función general de la
dirección que determina la calidad, los objetivos y las responsabilidades y se
implanta por medios tales como:
1. Planificación de la Calidad del Software.
2. Control de la Calidad del Software.
3. Aseguramiento de la Calidad del Software.
4. Mejora de la Calidad del Software.
1. Planificación de la Calidad del Software.
2. Control de la Calidad del Software.
3. Aseguramiento de la Calidad del Software.
4. Mejora de la Calidad del Software.
1. La
Planificación de la Calidad del Software
Es la parte
de la Gestión de la Calidad encargada de realizar el proceso administrativo de
desarrollar y mantener una relación entre los objetivos y recursos de la
organización; y las oportunidades cambiantes del mercado. El objetivo
es modelar y remodelar los negocios y productos de la empresa, de manera que se
combinen para producir un desarrollo y utilidades satisfactorias.
Los aspectos a considerar en la Planificación de la Calidad de Software son: Modelos/Estándares de Calidad de Software a utilizar, Costos de la Calidad de Software, Recursos humanos y materiales necesarios, entre otras. El plan de calidad define los atributos de calidad más importantes del producto a ser desarrollado y define el proceso de evaluación de la calidad.
Los aspectos a considerar en la Planificación de la Calidad de Software son: Modelos/Estándares de Calidad de Software a utilizar, Costos de la Calidad de Software, Recursos humanos y materiales necesarios, entre otras. El plan de calidad define los atributos de calidad más importantes del producto a ser desarrollado y define el proceso de evaluación de la calidad.
En la
Planificación de la Calidad de Software se debe determinar:
- Rol de la Planificación.
- Requerimientos de la Calidad de Software.
- Preparación de un Plan de Calidad de Software.
- Implementación de un Plan de Calidad de Software
- Preparar un Manual de Calidad.
2. El
Control de la Calidad del Software
Son las
técnicas y actividades de carácter operativo, utilizadas para satisfacer los
requisitos relativos a la calidad. Son las inspecciones, revisiones y pruebas
para asegurar la calidad del producto centradas en 2 objetivos fundamentales:
- Mantener bajo control un proceso.
- Eliminar las causas de los defectos en las diferentes fases del ciclo de vida.
El control
de calidad del software se ha convertido, por tanto en una parte esencial de
los programas de control de calidad. La atención de los requisitos específicos
de la calidad del software es una actividad que está integrada a través del
programa de procesamientos de información de la calidad. Está formado
por actividades que permiten evaluar la calidad de los productos de software
desarrollados. El aspecto a considerar en el Control de la Calidad de Software
es la “Prueba del Software”.
Las pruebas
son elementos críticos para determinar la calidad del software. Es el proceso
de ejecutar un programa con intención de encontrar defectos. Es un proceso
destructivo que determina el diseño de los casos de prueba y la asignación de
responsabilidades.
Objetivos de
las pruebas:
- Encontrar defectos en el software.
- Una prueba tiene éxito si descubre un defecto.
- Una prueba fracasa si hay defectos pero no los descubre.
- Ejecución de un programa con la intención de descubrir un error.
- Técnica experimental para la búsqueda de errores en los programas.
Algunos
principios de las pruebas recogen lo siguiente:
- Las pruebas deberían planificarse mucho antes de que comiencen.
- No son posibles las pruebas exhaustivas: El número de permutaciones de camino para incluso programas pequeños es excepcionalmente grande. Por ese motivo es imposible ejecutar todas las combinaciones de caminos durante las pruebas.
- Para ser más eficaces, las pruebas deberían ser realizadas por un equipo independiente: El ingeniero de software que creo el sistema no es el más adecuado para realizar las pruebas del software, ya que consciente o inconscientemente tiende a probar lo que sabe que funciona.
Existen
varios tipos de pruebas que pueden realizarse durante el proceso de desarrollo
de software como son:
- Unitarias: Pretenden probar cada función en un archivo de programa simple (una clase en terminología de objetos).
- Integración: Pretenden comprobar la integración de los componentes, es decir, la comunicación a través de interfaces, acceso incoherente a estructuras de datos globales.
Las pruebas
de integración pueden realizarse de forma ascendente o descendente
- Validación: Pretende comprobar que se satisfacen los requisitos.
- Sistema: Se centran en comprobar la recuperación, seguridad, resistencia, rendimiento.
Asociado a
los tipos de pruebas existen también técnicas de pruebas que ayudan a definir conjuntos
de casos de pruebas aplicando ciertos criterios, como son:
- Pruebas de caja blanca: Se centra en comprobar la interacción interna de los componentes del sistema.
- Pruebas de caja negra: “Se centran en los requisitos funcionales del software. O sea, la prueba de de caja negra permite al ingeniero del software obtener un conjunto de condiciones de entrada que ejerciten completamente todos los requisitos”.
La prueba
demuestra hasta qué punto las funciones del software parecen funcionar de
acuerdo con las especificaciones y parecen alcanzarse los requisitos de
rendimiento. Además, los datos que se van recogiendo a medida que se lleva a
cabo la prueba proporcionan una buena indicación de la confiabilidad del
software e indican la calidad del software como un todo. Pero, la
prueba no puede asegurar la ausencia de defectos; sólo puede demostrar que
existen defectos en el software.
3. El
Aseguramiento de Calidad del Software
Es el
conjunto de actividades planificadas y sistemáticas necesarias para aportar la
confianza que el software satisfará los requisitos dados de calidad. Se trata
de una actividad de protección que se aplica a lo largo de todo el proceso de
ingeniería del software. Se diseña
para cada aplicación antes de comenzar a desarrollarla y no después. El
aseguramiento de la calidad del software engloba:
- Un enfoque de gestión de calidad.
- Métodos y herramientas de Ingeniería del Software.
- Revisiones técnicas formales aplicables en el proceso de software.
- Una estrategia de prueba multiescala.
- El control de la documentación del software y de los cambios realizados.
- Procedimientos para ajustarse a los estándares de desarrollo del software.
- Mecanismos de medición y de generación de informes.
Todo el que
este involucrado en el proceso de desarrollo del software es responsable de la
calidad desarrolladores, analistas, arquitectos, jefes de proyectos, clientes y
aquellas personas que en los proyectos llamamos grupo de aseguramiento de la
calidad.
Las
actividades del grupo de aseguramiento de la calidad son:
- Establecimiento del plan de aseguramiento de la calidad para un proyecto.
- Participación en el desarrollo de la descripción del proceso de software.
- Revisión de las actividades de ingeniería del software.
- Auditorías de los procesos de software designados para verificar el ajuste con los definidos como parte del proceso de software.
- Registrar lo que no se ajuste a los requisitos e informar a los superiores.
- Coordinar el control de cambio.
CMMI v1.2 en
el área de proceso de aseguramiento de la calidad propone:
- Elaborar objetivamente los procesos.
- Evaluar objetivamente los artefactos y servicios.
- Comunicar y asegurar la resolución de las no conformidades.
- Establecer registros.
Además de
estas actividades, el grupo de aseguramiento de la calidad coordina el control
y la gestión de cambios y; ayuda a recopilar y analizar las métricas del
software. Las métricas
son escalas de unidades sobre las cuales puede medirse un atributo
cuantificable. Cuando se habla de software nos referimos a la disciplina de
recopilar y analizar datos basándonos en mediciones reales de software, así
como a las escalas de medición.
Los valores
de las métricas no se obtienen sólo por mediciones. Algunos valores de métricas
se derivan de los requisitos del cliente o de los usuarios y, por lo tanto,
actúan como restricciones dentro del proyecto. Las medidas
de Calidad del Software deben comenzar desde la especificación y terminar con
la implementación, implantación y mantenimiento o post-implantación. Debe
aplicarse a lo largo de todo el proceso de Ingeniería de Software. Básicamente,
la medición es una fase normal de cualquier actividad industrial Sin mediciones
es imposible perseguir objetivos comerciales normales de una manera racional.
4. La Mejora
de la Calidad del Software
Es la parte
de la Gestión de la Calidad que contribuye, por medio de las mediciones, a los
análisis de los datos y auditorías, a efectuar mejoras en la calidad del
software.
Las
auditorías según el estándar ISO 19011:2002 se define como: proceso
sistemático, independiente y documentado para evaluar el estado actual
(evidencias de la auditoría) y evaluarlas de manera objetiva con el fin de
determinar la extensión en que se cumplen los criterios de auditoría.
Una
Auditoría de Calidad tiene como objetivo:
- Mostrar la situación real para aportar confianza y destacar las áreas que pueden afectar adversamente esa confianza.
- Suministrar una evaluación objetiva de los productos y procesos para corroborar la conformidad con los estándares, las guías, las especificaciones y los procedimientos.
Los
resultados de la auditoría son documentados y remitidos al director de la organización
auditada, a la entidad auditora, y cualquier organización externa identificada
en el plan de auditoria. El informe incluye la lista de elementos no conformes
u otros aspectos para las posteriores revisiones y acciones. Cuando se realiza
el plan de auditoría, las recomendaciones son informadas e incluidas en los
resultados de la auditoría.
Para
implementar un programa de mejoras es necesario definir procesos, decidir qué
se quiere mejorar, definir qué medidas serán necesarias recoger, cómo y dónde
tomarlas, gestionarlas mediante herramientas, utilizarlas para la toma de
decisiones y reconocer las mejoras. Cuando el
proceso a mejorar es el de desarrollo del software, es importante definir qué
objetivos se quieren alcanzar, para reducir el número de medidas y, en
consecuencia, el coste de recopilarlas y el impacto sobre la actividad de
producción de software.









