4. Unidad 6 | Ingeniería de software I 06
VI. Pruebas de
Software y
mantenimiento
Aplicar estándares de calidad para
controlar la mejora y
del software.
6.1 Calidad en software Pruebas
Software y Mantenimiento
6.2 Verificación y validación
6.3 Técnicas de verificación y
validación
6.4 Mantenimiento del Software
6.5 Liberación del software
Pruebas de Software y
mantenimiento
5. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Concepto de calidad
Conjunto de propiedades y de características de un producto o servicio, que le confieren aptitud para
satisfacer una necesidades explícitas o implícitas (ISO 8402).
6. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Evolución Histórica
Inspección/detección de errores: hasta los años 40.
• Inicialmente trabajo artesanal: control individual de cada tarea.
• 1918: Ford Motor Company. (Primera cadena de montaje).
• 1930: Laboratorios Bell.
7. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Evolución Histórica
Control (estadístico) de calidad: hasta los años 80.
• Mercado poco competitivo. Precio de venta fijado por el fabricante en función de los costos.
• Impedir que el producto defectuoso llegue al cliente.
• Conseguir uniformidad de servicio.
• Control de calidad = problema a resolver.
• Controlar la calidad del departamento de producción utilizando técnicas estadísticas.
• 1940-70: Japón y Calidad total. Deming, Ishikawa, Juran, Crosby, …
8. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Evolución Histórica
Garantía de calidad: a partir de los 80.
• Mercado competitivo y de oferta
• Precio de venta fijado por el mercado
• Planificación y medida de la calidad. Modelos de calidad.
• Afecta a todos los departamentos.
• 1980. Interés por la calidad en los EEUU. TQM
• 1987. Premio Malcom Baldrige Quality Award
• 1987. ISO 9000. A partir de las normas británicas
• 1992. Premio Europeo a la calidad de la EFQM.
9. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Evolución Histórica
Gestión de calidad hoy.
• Impacto estratégico. Oportunidad de ventaja competitiva.
• Planificación, fijación de objetivos, coordinación, formación, adaptación de toda la organización.
• Afecta a la sociedad en general: directivos, trabajadores, clientes.
• Una filosofía, una cultura, una estrategia, un estilo de gerencia de la empresa. ISO 9001:2000.
10. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Evolución Histórica
Control de
calidad
Garantía
de calidad
Calidad total
Tiempo
Detectar defectos
Prevenir defectos
Mejoracontinua
11. Pruebas de Software y mantenimiento | Ingeniería de software I 06
La calidad del software
La calidad del software es el grado con el que un sistema, componente o proceso cumple los
requerimientos especificados y las necesidades o expectativas del cliente o usuario (IEEE, Std. 610-
1990).
Concordancia del software producido con los requerimientos explícitamente establecidos, con los
estándares e desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente, que
desea el usuario” (Pressman, 1998).
12. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Factores que determinan la calidad del
software
Se pueden clasificar en dos grandes grupos (Pressman):
• Factores que pueden ser medidos directamente.
• Factores que solo pueden ser medidos indirectamente.
Se centran en tres aspectos importantes de un producto software (McCall):
• Características operativas.
• Capacidad de soportar los cambios.
• Adaptabilidad a nuevos entornos.
13. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Factores de calidad del Software (McCall)
Características operativas
• Corrección. ¿Hace lo que quiero?
• Fiabilidad. ¿Lo hace de forma fiable todo el tiempo?
• Eficiencia. ¿Se ejecutará en mi hardware lo mejor que pueda?
• Seguridad (Integridad). ¿Es seguro?
• Facilidad de uso. ¿Está diseñado para ser usado?
14. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Factores de calidad del Software (McCall)
Capacidad de soportar los cambios
• Facilidad de mantenimiento. ¿Puedo corregirlo?
• Flexibilidad. ¿Puedo cambiarlo?
• Facilidad de prueba. ¿Puedo probarlo?
15. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Factores de calidad del Software (McCall)
Adaptabilidad a nuevos entornos
• Portabilidad. ¿Podré usarlo en otra máquina?
• Reusabilidad. ¿Podré reutilizar alguna parte del software?
• Interoperabilidad. ¿Podré hacerlo interactuar con otro sistema?
16. Pruebas de Software y mantenimiento | Ingeniería de software I 06
¡Cambio cultural de todos los
involucrados!
Factores de calidad del Software (McCall)
Artesanía Ingeniería
17. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Estándares y modelos de evaluación y
mejora de los procesos software
ISO 9000
(ISO
9001:2000)
(SPICE)
ISO/IEC
15504
CMM
Certificación.
Organismos
18. Pruebas de Software y mantenimiento | Ingeniería de software I 06
ISO 9000
Con el objetivo de estandarizar los sistemas de calidad de las diferentes empresas y sectores, se publican
las normas ISO 9000, que son un conjunto de normas editadas y revisadas periódicamente por la
Organización Internacional de Normalización (ISO) sobre la garantía de calidad de los procesos.
Así, se consolida a nivel internacional la normativa de la gestión y control de calidad.
19. Pruebas de Software y mantenimiento | Ingeniería de software I 06
ISO 9000
• Publicada el año 1987. Adoptada por más de 90 pases.
• Directrices para la gestión del sistema de calidad y modelos de garantía de calidad para la empresa.
• Las directrices son genéricas y aplicables a cualquier sector.
• Es un marco de trabajo para la mejora continua.
20. Pruebas de Software y mantenimiento | Ingeniería de software I 06
ISO 9000: Calidad de Software
ISO 8402:1994. Gestión de la calidad y garantía de la calidad. Vocabulario.
ISO 12207:1995. Procesos del ciclo de vida del software.
ISO/IEC 9126:1991. Características de la calidad de un producto software.
ISO/IEC 12119:1995. Productos software: evaluación y test.
ISO/IEC 14102:1995. Guía para la evaluación y selección de herramientas
CASE.
21. Pruebas de Software y mantenimiento | Ingeniería de software I 06
SPICE
Marco para métodos de evaluación, no un método o modelo en sí.
Abarca:
• Evaluación de procesos
• Mejora de procesos
• Determinación de capacidad
Alineado con el ISO/IEC 12207.
Intenta proporcionar un marco en el que armonizar los enfoques existentes.
Se encuentra en la fase de Informe Técnico (TR) Tipo 2.
22. Pruebas de Software y mantenimiento | Ingeniería de software I 06
CMM
Estudia los procesos de desarrollo de software de una organización
y produce una evaluación de la madurez de la organización según
una escala de cinco niveles.
La madurez de un proceso es un indicador de la capacidad para
construir un software de calidad.
Es un modelo para la mejora de las organizaciones.
Obliga a una revisión constante.
23. Pruebas de Software y mantenimiento | Ingeniería de software I 06
CMM
Niveles de
madurez
Prácticas
clave
Características
comunes
Áreas claves
de proceso
Contienen
Organizadas con
Contienen
Indican
Alcanzan
Se aplican
Describen
Capacidad
del proceso
Objetivos
Implementación o
Institucionalización
Infraestructura
o actividades
25. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Durante y después del proceso de implementación, el programa que se está desarrollando debe ser
comprobado para asegurar que satisface su especificación y entrega la funcionalidad esperada por las
personas que pagan por el software. La verificación y la validación (V & V) es el nombre dado a estos
procesos de análisis y pruebas. La verificación y la validación tienen lugar en cada etapa del proceso del
software. V & V comienza con revisiones de los requerimientos y continúa con revisiones del diseño e
inspecciones de código hasta la prueba del producto.
26. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Dentro del proceso de V & V, existen dos aproximaciones complementarias para el análisis y
comprobación de los sistemas:
1. Las inspecciones de software analizan y comprueban las representaciones del sistema tales como el
documento de requerimientos, los diagramas de diseño y el código fuente del programa. Puede usarse
las inspecciones en todas las etapas del proceso. Las inspecciones pueden ser complementadas con
algún tipo de análisis automático del código fuente de un sistema o de los documentos asociados. Las
inspecciones de software y los análisis automáticos son técnicas de V & V estáticas, ya que no se
necesita ejecutar el software en una computadora.
2. Las pruebas del software implican ejecutar una implementación del software con datos de prueba. Se
examinan las salidas del software y su entorno operacional para comprobar que funciona tal y como se
requiere. Las pruebas son una técnica dinámica de verificación y validación.
27. Pruebas de Software y mantenimiento | Ingeniería de software I 06
¿Cuál es la
diferencia entre la
verificación y la
validación?
28. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Cuando se considera el software de computadora, la prueba de caja negra se refiere a las
pruebas que se llevan a cabo sobre la interfaz del software. O sea, los casos de prueba
pretenden demostrar que las funciones del software son operativas, que la entrada se
acepta de forma adecuada y que se produce un resultado correcto, así como que la
integridad de la información externa (por ejemplo, archivos de datos) se mantiene. Una
prueba de caja negra examina algunos aspectos del modelo fundamental del sistema sin
tener mucho en cuenta la estructura lógica interna del software.
29. Pruebas de Software y mantenimiento | Ingeniería de software I 06
La prueba de caja blanca del software se basa en el minucioso examen
de los detalles procedimentales. Se comprueban los caminos lógicos del
software proponiendo casos de prueba que ejerciten conjuntos
específicos de condiciones y/o bucles. Se puede examinar el «estado del
programa» en varios puntos para determinar si el estado real coincide
con el esperado o mencionado.
30. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Caja Blanca
Caja Negra
Entrada Salida
SalidaEntrada
Funciones
31. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Estrategia de Pruebas
La estrategia que se ha de seguir a la hora de evaluar dinámicamente un sistema software debe permitir
comenzar por los componentes más simples y más pequeños e ir avanzando progresivamente hasta
probar todo el software en su conjunto. Más concretamente, los pasos a seguir son:
1. Pruebas de Integración. A
partir del esquema del
diseño, los módulos
robados se vuelven a probar
combinados para probar sus
interfaces.
2. Prueba del Sistema. El
software ensamblado
totalmente con cualquier
componente hardware que
requiere se prueba para
comprobar que se cumplen
los requisitos funcionales.
3. Pruebas de Aceptación.
El cliente comprueba que el
software funciona según sus
expectativas
32. Pruebas de Software y mantenimiento | Ingeniería de software I 06
Pruebas de validación Alfa y Beta
La prueba Alfa se lleva a cabo,
por un cliente, en el lugar de
desarrollo. Se usa el software
de forma natural con el
desarrollador como observador
del usuario y registrando los
errores y los problemas de uso.
Las pruebas alfa se llevan a
cabo en un entorno controlado.
La prueba Beta se lleva a cabo
por los usuarios finales del
software en los lugares de
trabajo de los clientes. El
cliente registra todos los
problemas e informa a
intervalos regulares al
desarrollador.