DEPARTAMENTO DE INGENIERÍA INFORMÁTICA

Slides:



Advertisements
Presentaciones similares
INTRODUCCIÓN A LA VERIFICACION Y VALIDACION
Advertisements

Lic. Juan Gabriel Bernal López
Int. a la Ingeniería del Software UP 2004
PLANIFICACIÓN DE TESTING
Fundamentos de Diseño de Software INFT.1
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
CALIDAD DE PRODUCTO PORTADA CALIDAD DE PRODUCTO.
FUNDAMENTOS DE LAS PRUEBAS DEL SOFTWARE
Pruebas del software parte 2
Diseño orientado al flujo de datos
Planificación de Proyectos Informáticos
CONCEPTOS Y PRINCIPIOS DE DISEÑO
Preguntas tipo test (I)
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Administración de Procesos de Pruebas
Versión 2004 Enrique Bañuelos Gómez
Diseño de un Sistema de Control en Tiempo Real para el Kernel del Sistema Operativo utilizando MatLab-SimuLink Por: MARCO ANTONIO ESPINEL CANGUI DIRECTOR:
Ingeniería del software de la usabilidad (I)
PLANEACION DE UNA ESTRUCTURA ORGANIZACIONAL
Verificación y validación. Objetivos Introducir la verificación y validación del software y discutir la diferencia entre ellos (V & V) Describir el proceso.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Diseño del Software Diseño de datos Diseño arquitectónico
Análisis y Diseño de un Software
DISEÑO DE SOFTWARE 1ª. Parte
Inspecciones de Software
ISF5501 Ingeniería de Software
Desarrollo de aplicaciones para ambientes distribuidos
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería del Software
2.- Planificación Básica DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Ingeniería de Requerimiento
VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
Alejandro tapia vazquez.  Verificación; ¿Estamos Construyendo Correctamente el producto?  Validación; ¿Estamos construyendo el producto correcto?
Ximena Romano – Doris Correa
Introducción a las pruebas del software.
Importancia en la efectividad del:
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Pruebas y La Vida del Ciclo de Desarrollo del Software
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Ámbito y Estimaciones de Proyecto ISF5501 Ingeniería de Software Semana 7/1.
El rol de SQA en PIS.
Las Pruebas del Software y sus Fundamentos
I NGENIERÍA DE S OFTWARE L ABORATORIO XI Testin – Planificación Pruebas unitarias Eduardo Saavedra A. 11/11/2009.
Definición de sistema__________
Roles de Open UP.
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
TIPOS DE PRUEBAS DEL SOFTWARE
Elaborado por: Mayoral Cruz Matilde Morales Espinoza Anllhins
Introducción. El desarrollo de sistemas de software implica una serie de actividades de producción en las que las posibilidades de que aparezca el fallo.
Introducción al proceso de verificación y validación.
Actividades en el Proceso de desarrollo de Software
Laura Posada Agudelo Carlos Mario Zapata
Carolina Rangel Felipe Montaño Alexis García
Proceso de desarrollo de Software
Investigación preliminar  Entender la naturaleza del problema  Definir el alcance y las restricciones o limitaciones del sistema  Identificar los beneficios.
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
Software de Comunicaciones
Bachillerato Ingeniería en Informática Fundamentos de Computación.
Productos de Pruebas Hace hambre!! . Las bases. La verificación consiste en corroborar que el programa respeta su especificación, mientras que validación.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
Plan de Pruebas de Aceptación
TÉCNICAS DE PRUEBA DEL SOFTWARE
Servicio de Implementación Proceso de Desarrollo de Software Ventanilla Única de Comercio Exterior Mexicana.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verificación y Validación.
Entregables del Proyecto
Transcripción de la presentación:

DEPARTAMENTO DE INGENIERÍA INFORMÁTICA 10.- Flujo de Pruebas Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA

Contenidos Introducción Error Pasos Verificación & Validación Métodos de pruebas Tipos de pruebas Actividades de pruebas

Introducción Se verifica el resultado de la implementación probando cada “build” -internos e intermedios- y la release. Objetivos: Planear las pruebas requeridas en cada iteración, incluyendo pruebas de integración y de sistema. Integración: para cada “build”, estilo caja blanca. Sistema: al final de cada iteración. Comportamiento observable externamente. Diseñar e implementar las pruebas, creando casos de prueba, procedimientos de prueba (cómo hacerlos) y creando componentes de prueba ejecutables para automatizar las pruebas. Realizar las pruebas y manejar sistemáticamente los resultados de las mismas.

Error Un error software existe cuando el software no hace lo que el usuario espera que haga, acordado previamente en la especificación de requisitos.

Pasos Los ing. de pruebas realizan el plan de pruebas para cada iteración (esfuerzo de pruebas a realizar). Describen los casos de prueba y los procedimientos de prueba a realizar. Si procede, los ing. de componentes crean los componentes de prueba para automatizar las pruebas. Los probadores de sistema e integración prueban cada build y anotan los defectos encontrados. Los resultados se pasan a los ing.de pruebas para que evalúen los resultados de las pruebas y a otros flujos como diseño e implementación para subsanar los defectos.

Verificación & Validación ¿Se ha construido el sistema correctamente? Validación: ¿se ha construido el sistema correcto?

Métodos de pruebas (I): caja blanca Comportamiento interno y estructura del programa. Se ejecutan todas las sentencias al menos una vez Se navega por todos los caminos independientes Realista: es imposible. Técnicas: Prueba de interfaz Análisis del flujo de datos a través de las interfaces. Prueba de estructuras de datos locales Prueba del camino básico Definición de un conjunto básico de caminos de ejecución usando una medida calculada previamente de la complejidad lógica del módulo (complejidad ciclomática). Prueba de condiciones límite Validar la construcción de los bucles.

Métodos de pruebas (y II): caja negra Considera el SW como una caja negra sin tener en cuenta los detalles. Los datos de entrada han de generar una salida en concordancia con las especificaciones. Técnicas: Partición de equivalencia División de la entrada de un programa en clases de datos de las que se pueden derivar casos de prueba para reducirlos. Análisis de valores límite Probar los límites de cada clase de equivalencia.

Tipos de pruebas (I): unitarias Prueba de cada módulo o clase del programa de manera que cumpla unitariamente el caso de uso que implementa. Realizada por el ingeniero de desarrollo del caso de uso. Ventajas: Error más localizado. Se pueden probar varios módulos simultaneamente. Método empleado: caja blanca. En algunos casos se pueden crear módulos sencillos de prueba para probar módulos con alta cohesión.

Tipos de pruebas (II): de integración Integración de módulos en subsistemas. Método: caja negra -blanca a veces-. Tipos: No incremental (BIG BANG): todo a la vez :( Incremental.

Tipos de pruebas (III): de validación Comprobación de que se cumplen todos los requisitos. Dos partes: Validación por parte del usuario. Utilidad, facilidad de uso y ergonomía de la GUI. Tipos: Pruebas Alfa: realizadas por los desarrolladores en el entorno de usuario. Pruebas Beta: realizadas por el usuario.

Tipos de pruebas (IV): de sistemas Se prueba el sistema integrado en su entorno (HW & SW). Consta de pruebas de: interfaces externas volumen funcionamiento recuperación seguridad resistencia rendimiento/comportamiento fiabilidad documentación

Tipos de pruebas (y V): de aceptación Último paso antes de la entrega formal del SW al cliente. Se realiza normalmente en el entorno del usuario.

Actividades de Pruebas Planear las pruebas. Diseñar pruebas. Implementar pruebas. Realizar pruebas de integración. Evaluar pruebas.

Actividad: Planear las pruebas Objetivos: Describir una estrategia de pruebas (p.e. cuantos casos de prueba serán automatizados, con qué técnicas, etc.) Estimar los recursos precisos. Planificar el esfuerzo. Las entradas son los casos de uso, el modelo de diseño, etc.

Actividad: Diseñar pruebas (I) Objetivos: Identificar y describir los casos de prueba para cada build. Identificar y estructurar los procedimientos de prueba especificando como realizar los casos de prueba. Pruebas de integración: Chequear que las interacciones reales entre objetos son las especificadas en las realizaciones de los casos de uso. Pruebas de sistemas: Probar casos de uso bajo diferentes condiciones (de hardware, de carga, de número de actores, con diferentes tamaños de base de datos) y combinaciones.

Actividad: Diseñar pruebas (y II) Pruebas de regresión: Algunos casos de prueba de previas builds podrán usarse en la actual para asegurar que las cosas que funcionaban en la build anterior lo siguen haciendo. A veces los casos de prueba no podrán ser reutilizados directamente. A la hora de diseñar procedimientos de prueba, deben tratar de reutilizarse lo más posible (por ejemplo especificando un único procedimiento para partes comunes de varios casos de uso).

Actividad: Implementar pruebas Crear componentes de prueba que puedan automatizar los procesos de prueba (p.e generadores de carga).

Actividad: Realizar pruebas de integración Si existe algún fallo en la batería de pruebas realizada, es necesario notificarlo a los ingenieros de componentes cuyos componentes no están funcionando, y a los ingenieros de pruebas para que puedan evaluar el resultado global de las pruebas.

Actividad: Evaluar pruebas El objetivo es evaluar el esfuerzo de pruebas durante la iteración. Básicamente se usan dos métricas: Completitud de las pruebas: % de los casos de prueba que se han ejecutado y % del código que se ha probado. Fiabilidad: se basa en analizar los defectos descubiertos y las tendencias que puedan extraerse de ellos (p.e una parte que falla demasiadas veces, o una tendencia general a que se produzcan situaciones anómalas bajo ciertas situaciones de carga).

Ejemplo

Bibliografía Software Development on Internet Time. M. A. Cusumano, D. B. Yoffie. IEEE Computer, Oct. 1999. Evaluating the Effectiveness of Independent Verification and Validation. J. D. Arthur, M. K. Gröner, K. J. Hayhurst, C. M. Holloway. IEEE Computer, Oct. 1999. When to test less. T. Menzies, B. Cukic., IEEE Software, Sept-Oct. 2000 Improvisation in small software organizations. T. Dyba. IEEE Software, Sept-Oct. 2000. Knowledge-based software architectures: acquisition, specification and verification. J.J.P.Tsai, A.Liu, E.Juan, A. Sahay. IEEE Transactions on Knowledge and Data Engineering. Jan-Feb. 1999. The Role of Independent Verification and Validation in Maintaining a Safety Critical Evolutionary Software in a Complex Environment: The NASA Space Shuttle Program. M. V. Zelkowitz, I. Rus. IEEE International Conference on Software Maintenance (ICSM ‘01). Software Verification and Validation. An overview. D. R. Wallace, R. U. Fujii. IEEE Software, May 1989.