Ingeniería del Software

Slides:



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

Lic. Juan Gabriel Bernal López
EL PROCESO DE DESARROLLO DEL SOFTWARE
Ciclo de vida de desarrollo de software
Int. a la Ingeniería del Software UP 2004
PLANIFICACIÓN DE TESTING
Gestión de una Fábrica de Software
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS DE LAS PRUEBAS DEL SOFTWARE
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Pruebas del software parte 2
Pruebas Orientadas a Objeto
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
CALIDAD DE SOFTWARE Alejando Márquez Alejando Vega Claudia Aguilar
Ingeniería del Software
Administración de Procesos de Pruebas
Ingeniería del Software
Aspectos Avanzados de la Tecnología de Objetos
PLANEACION DE UNA ESTRUCTURA ORGANIZACIONAL
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
INTEGRANTES Alex Santacruz Daniel Mesías Danilo Taimbud
Ingenieria de software
Inspecciones de Software
ISF5501 Ingeniería de Software
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
Contexto Proyecto consolidado dentro de la línea de investigación de Sistemas de Información en el Dpto. de Ingeniería en Sistemas de Información de la.
Planificación, Reingeniería y Plan de Proyecto
Modelos de desarrollo de Software
Ingeniería de Software Asistida por Computadora
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Análisis y diseño detallado de aplicaciones informáticas de gestión
ESTRATEGIAS DE PRUEBA DEL SW
INGENIERÍA DE SOFTWARE
Ximena Romano – Doris Correa
Introducción a las pruebas del software.
Ingeniería de Software
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.
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.
Saber que cambiar y como hacer que el cambio finalmente ocurra será fuente de ventajas competitivas para la compañía. La totalidad de presentaciones y.
Las Pruebas del Software y sus Fundamentos
Procesos de Desarrollo de Software
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
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
Relación con otras asignaturas del plan de estudio
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
Simón Esneider Herrera Álvarez Media Técnica Casd 10-2
Ciclo de Vida del Software
Carolina Rangel Felipe Montaño Alexis García
Proceso de desarrollo de Software
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
Administración de Calidad de Software
Fundamentos de Computación
Las fases del ciclo de la vida de desarrollo de sistemas
Software de Comunicaciones
Modelo de procesos de software
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.
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
Es una metodología ágil diseñada para el desarrollo de software, basada en la calidad y el monitoreo constante del proyecto. Consiste esencialmente en.
TÉCNICAS DE PRUEBA DEL SOFTWARE
Metodologías de Desarrollo Ágil
Transcripción de la presentación:

Ingeniería del Software Fase de pruebas Pruebas en el PUD Las pruebas del software Diseño de casos de prueba Pruebas de SI OO

Ingeniería del Software Iteración en PUD Planificación de la Iteración Captura de requerimientos: Modelo de casos de uso, Modelo de Dominio, ... Análisis: Diagrama de secuencia del sistema, Contratos, Modelo Conceptual... Diseño: Diagramas de interacción, Diagrama de Clases Implementación: codificación (Clases y métodos) Pruebas: verificación de la implementación Evaluación de la iteración

Ingeniería del Software Fases y entregas del Proceso Unificado de Desarrollo captura de requerimientos: qué SI debemos construir? Modelo de casos de uso, Modelo de Dominio, ... análisis: qué debe hacer el SI? Diagramas de secuencia del sistema, Contratos, ... diseño: cómo lo debe hacer el SI? Diagramas de interacción, Diagrama de Clases, ... codificación: Código Fuente (clases y métodos) pruebas: Especificación de las pruebas de funcionamiento mantenimiento: Documentación y revisión de todo lo anterior Dependiente de la tecnología

Ingeniería del Software Las pruebas de software Las pruebas de software son un elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación Las pruebas de software son siempre necesarias En algunos casos ocupan un 40% del tiempo de un proyecto informático Las pruebas pretenden descubrir errores!

Ingeniería del Software Las pruebas de software Un buen caso de prueba es aquel que tiene una probabilidad muy alta de descubrir un nuevo error Una prueba tiene éxito si descubre un error nuevo! Debemos diseñar y ejecutar juegos de prueba que, de forma sistemática, detecten distintos tipos de error en el menor tiempo y esfuerzo posible Los juegos de prueba no deben ser ni excesivamente simples ni exageradamente complejos Las pruebas pueden demostrar la existencia de errores, pero no su ausencia!

Ingeniería del Software Las pruebas de software Las pruebas pueden planificarse mucho antes de que empiecen Empezar por lo pequeño y progresar hacia lo grande No son posibles las pruebas exhaustivas! Son más efectivas las pruebas dirigidas por un equipo independiente El 80% de los errores está en el 20% de los módulos Hay que identificar ésos módulos y probarlos muy bien.

Ingeniería del Software Las pruebas de software El proceso de IS se puede ver como un proceso en espiral El proceso de pruebas de software también, pero en sentido contrario Análisis de Requerimientos Especificación Diseño Codificación Pruebas unitarias Pruebas de integración Pruebas de Validación Pruebas del sistema

Ingeniería del Software Las pruebas de software Pruebas unitarias Prueba de un único comportamiento elemental Pruebas de integración Prueba de las interacciones entre componentes del sistema Verificación incremental Descendente Ascendente Regresión para detectar errores en componentes ya probados! Pruebas de validación Se centran en asegurar que se satisfacen los requisitos desde el punto de vista del usuario Pruebas del sistema Prueba global del sistema como unidad de ejecución

Ingeniería del Software Diseño de casos de prueba Diseñar un juego de pruebas: conjunto de casos de prueba Un caso de prueba especifica: Componente a probar Datos de entrada Estado del componente Información de contexto Resultado esperado Un caso de prueba Con alta probabilidad de detectar algún error No debe ser redundante Debe ser representativo Ni muy simple ni muy complejo

Ingeniería del Software Casos de prueba Deben contemplar La planificación de la prueba El diseño de los casos de prueba La ejecución de la prueba La evaluación de los casos de prueba No debemos olvidarnos de: Pruebas sobre la capa de presentación (ventanas, menús, ratón ...) Pruebas sobre la capa de gestión de datos Pruebas de documentación Pruebas de ayuda

Ingeniería del Software Estrategias de prueba Pruebas de “caja negra” (funcionales o de comportamiento) El juego de pruebas se diseña considerando las responsabilidades del componente (“vemos” sólo los requisitos funcionales) Permite detectar errores de: asignación de responsabilidades La interfaz del componente Pruebas de “caja blanca” (de implementación) El juego de pruebas se diseña analizando/ejecutando el código del componente Intentan garantizar que todos los caminos de ejecución del programa quedan probados Flujo de control Estructuras de datos locales ...

Ingeniería del Software Pruebas de Unidad Centra la prueba en el componente Puede realizarse en paralelo a otros componentes Básicamente son pruebas de caja blanca Interfaz Condiciones límite Caminos independientes Caminos de tratamiento de errores Se prueban los caminos de control importantes para descubrir errores en el componente Debemos simular el “comportamiento” del resto de componentes!

Ingeniería del Software Pruebas de Integración Pruebas de integración descendente Pruebas de integración ascendente Pruebas de regresión Cambios o la introducción de un nuevo componente pueden provocar errores en componentes ya probados! Al realizar cambios en algún componente debemos probar de nuevo los componentes ya probados Se realizan las mismas pruebas para asegurarse que no se han producido cambios colaterales

Ingeniería del Software Pruebas de Validación Se llevan a cabo cuando se han terminado las pruebas de integración, el software está ensamblado y se han realizado todas las pruebas de unidad e integración La validación se consigue cuando el software funciona según las expectativas del usuario! Se realizan una serie de pruebas de caja negra que aseguren que se satisfacen los requisitos Funcionales De rendimiento De documentación Transportabilidad, compatibilidad Recuperación de errores ...

Ingeniería del Software Pruebas de Validación Pruebas de aceptación: desarrolladas por el cliente Pruebas alfa: Realizadas por el usuario con el desarrollador como observador en un entorno controlado (simulación de un entorno de producción) Pruebas beta: Realizadas por el usuario en su entorno de trabajo y sin observadores

Ingeniería del Software Pruebas del Sistema Realizado el software, éste debe ponerse en explotación e integrarse en un entorno productivo Estas pruebas sirven para verificar que se han integrado adecuadamente todos los elementos del sistema y todos ellos de forma conjunta realizan las funciones apropiadas Pruebas de seguridad Pruebas de resistencia Pruebas de rendimiento Pruebas de recuperación

Ingeniería del Software Depuración de errores Al realizar pruebas pueden descubrirse errores y éstos deben depurarse Depurar errores es extremadamente difícil (sobretodo si se trata de un sistema desconocido!) El error puede ser provocado por un “mal uso” no contemplado en el diseño! Puede ser difícil reproducir las condiciones que lo producen El error aparece de forma intermitente Su corrección requiere cambios substanciales del SI!