CANTATACANTATA“La solución para probar “La solución para probar
software en C”software en C”
Laboratorio de Sistemas de Información
Facultad de InformáticaUniversidad Politécnica de Valencia
03/02/03 2
IntroducciónIntroducción
Necesidad de probar el software completa y sistemáticamente, en cada fase del ciclo de desarrollo
Problema: probar es caro Dilema: Calidad <-> Coste
03/02/03 3
CantataCantata
Producto de verificación de software Solución completa de verificación de software en
C, en un único paquete Integración en el entorno
03/02/03 4
Principales áreas:Principales áreas:
Dynamic testing ¿Hace lo que debería?
Coverage analysis ¿Cómo son de buenas las pruebas?, ¿son
completas? Static analysis
¿Es el SW mantenible? ¿Cumple los estándares?
03/02/03 5
Dynamic testing (I)Dynamic testing (I)
Punto más importante de la verificación del software.
Comprueba que lo que el software hace es lo que se espera que haga
Cantata permite pruebas dinámicas en:Unidades individuales de SWColecciones de unidadesSistemas completos
03/02/03 6
Dynamic testing (II)Dynamic testing (II)
Estructura formal para: especificación, ejecución, documentación, reutilización y repetición de pruebas
Informe completo para diagnóstico y garantía de calidad
03/02/03 7
Dynamic testing (III)Dynamic testing (III)
Permite diversos tipos de prueba: Funcional (caja negra) Estructural (caja blanca) Unidad (aislamiento) Integración
Genera pruebas de test, las ejecuta, genera informe de resultados y análisis temporal
03/02/03 8
Coverage analysis (I)Coverage analysis (I)
Medida para comprobar la efectividad del dynamic test
Mide la proporción del software ejecutado durante la prueba
Identifica código no ejecutado Requerido por bastantes estándares:
RTCA/DO-178B Def Stan 00-55
03/02/03 9
Coverage analysis (II)Coverage analysis (II)
Se puede efectuar sobre: Funciones simples Módulos Clases Cualquier número de funciones integradas,
módulos o clases Aplicaciones completas
03/02/03 10
Static analysisStatic analysis
Aporta información sobre el código: Mantenibilidad Estructura Legibilidad Verificabilidad
Reforzar estándares de codificación Valoración de la complejidad Evalúa:
Complejidad Mantenibilidad
03/02/03 11
Caso práctico: Función Caso práctico: Función ConvertConvert
Analizaremos una función en C, que convierte un entero a formato string en decimal, octal o hexadecimal
Para ello utilizaremos una simulación de Cantata ...
03/02/03 12
Otros detallesOtros detalles
Portabilidad de los test (Windows, Unix, ...) ANSI C ISO 9000-3 Usado en proyectos críticos de desarrollo en C
(aviación, defensa, salud,...)