ESTRATEGIAS DE PRUEBA DEL SW

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
Metodologías ágiles.
CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
Actividad 16. Estrategias para prueba del software
Pruebas del software parte 2
Pruebas Orientadas a Objeto
Gestión de proyectos Es la primera etapa de Ingeniería del Software.
10º2 Sergio Posso. Jonatán Agualimpia. Julia Blandón. Docente:
Modelos de Proceso del Software
Administración de Procesos de Pruebas
M.S.C. Ivette Hernández Dávila
Capítulo 3 Etapas de un Proyecto de simulación
DISEÑO DE LA INTERFAZ DE USUARIO
Inspecciones de Software
Ciclo de Vida del Software Paradigmas de Desarrollo
PROGRAMACIÓN PROCEDIMENTAL
ISF5501 Ingeniería de Software
GESTION DEL CAMBIO Los presencia continua de competencia, la internacionalización económica y la aparición de nuevas tecnologías de información e informática.
Ciclo de Vida del Software
Calidad y Garantía de Calidad
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
Metodología para solución de problemas
Ingeniería de Software
M.C. Juan Carlos Olivares Rojas
Ingeniería del Software
BENCHMARKING.
Ingeniería de Requerimiento
INGENIERÍA DE SOFTWARE
Tema 1: Introducción a la Ingeniería de Software
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
SUBTEMA 2.4 FUNDAMENTOS DE DESARROLLO DE SISTEMAS
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.
Ámbito y Estimaciones de Proyecto ISF5501 Ingeniería de Software Semana 7/1.
El rol de SQA en PIS.
Metodología de la programación
Las Pruebas del Software y sus Fundamentos
Estrategias de prueba del software
Alexander Aristizabal Ángelo flores herrera
Diseño de Sistemas.
Ciclo de vida de un sistema
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
IDENTIFICACIÓN DEL CICLO DE VIDA DEL SOFTWARE. POLITÉCNICO COLOMBIANO JAIME ISAZA CADAVID.
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
Ciclo de Vida del Software
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
Carolina Rangel Felipe Montaño Alexis García
Actividad 18. Pruebas del sistema M.C. Juan Carlos Olivares Rojas Syllabus June, 2009.
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
Proceso de desarrollo de Software
INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE ALUMNO MILLER ANDRES GALINDO DUCUARA (412088)
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.
6.6 Administración de defectos
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
Fundamentos de Computación
Modelo de procesos de software
Bachillerato Ingeniería en Informática Fundamentos de Computació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.
INVESTIGACION BASADA EN LA MEDICINA DE LA EVIDENCIA.
Verificación y Validación del Software
Transcripción de la presentación:

ESTRATEGIAS DE PRUEBA DEL SW

CONTENIDO Introducción Un enfoque estratégico Aspectos estratégicos de un software Prueba de unidad Prueba de integración Prueba de Validación Prueba del sistema El arte de la depuración

ESTRATEGIAS DE PRUEBA DEL SW Integra las técnicas de diseño de casos de prueba en una serie de pasos bien planificados que dan como resultado una correcta construcción del software. También describe un mapa con los pasos que hay que llevar acabo como parte de la prueba, cuando se debe planificar y realizar esos pasos, cuanto esfuerzo, tiempo y recursos se van a requerir.

UN ENFOQUE ESTRATÉGICO PARA LAS PRUEBAS DEL SW Las pruebas comienzan a nivel de modulo y trabajan hacia fuera. Según el momento son apropiadas diferentes técnicas de prueba. La prueba la lleva acabo el responsable del desarrollo del SW. La prueba y la depuración son actividades diferentes, pero la depuración se debe incluir en cualquier estrategia de prueba.

VERIFICACIÓN Y VALIDACIÓN (V &V) La verificación se refiere al conjunto de actividades que asegura que el software implementa adecuadamente una función específica. La validación se refiere a un conjunto diferente de actividades que aseguran que el software construido se ajusta a lo requerimientos del cliente. Bohem, lo define de otra forma: Verificación “¿Estamos construyendo el producto correctamente?” Validación “¿Estamos construyendo el producto correcto?”

ORGANIZACIÓN PARA LAS PRUEBAS DEL SW No es correcto: El responsable del desarrollo no debería entrar en la prueba. El SW debe ser puesto a salvo de personas que puedan probarlo de forma despiadada. Los encargados de la prueba solo aparecen cuando comienzan las etapas de la prueba.

UNA ESTRATEGIA DE PRUEBA DEL SW La prueba en el contexto de espiral

UNA ESTRATEGIA DE PRUEBA DEL SW Desde el punto de vista procedimental Pruebas de alto nivel Dirección del la prueba Codificación Diseño Requisitos Prueba de unidad Prueba de Integración Etapas de prueba del SW

CRITERIOS PARA COMPLETAR LA PRUEBA Cada vez que se tratan de las pruebas del SW surgen unas preguntas clásicas: ¿Cuándo hemos terminado la prueba? ¿Cómo sabemos que hemos probado lo suficiente? ‘¿Cuando debemos probar?’ Una respuesta a la “La prueba nuca termina ya que el responsable carga o pasa el problema al cliente” Otra respuesta algo cínica es “Se termina la prueba cuando se agota el tiempo o el dinero disponible para cada efecto”

ASPECTOS ESTRATÉGICOS Ton Gilb, plantea que se deban abordar los siguientes puntos si se desea implementar con éxito una estrategia de prueba del SW: Especificar los requisitos del producto de manera cuantificable mucho antes que comiencen las pruebas. Establecer los objetivos de la prueba de manera explicita. Comprender que usuarios van a manejar el SW y desarrollar un perfil para cada categoría de usuario.

ASPECTOS ESTRATÉGICOS Desarrollar un plan de prueba que haga hincapié en la prueba de ciclo rápido. Construir un SW robusto diseñado para probarse así mismo. Usar revisiones técnicas formales y efectivas como filtro antes de la prueba. Llevar acabo revisiones técnicas formales para evaluar la estrategia de prueba y los propios casos de prueba. Desarrollar un enfoque de manera continua al proceso de prueba. Debería medirse la estrategia de prueba.

PRUEBA DE UNIDAD. La prueba de unidad centra el proceso de verificación en la menor unidad del diseño del software(Módulo). Aquí se prueban los caminos de control importantes, con el fin de descubrir errores dentro del ámbito de un módulo.

¿QUÉ ERRORES SON LOS MÁS COMUNES DURANTE LA PRUEBA DE UNIDAD : Procedencia aritmética incorrecta mal aplicada Operaciones de modo mezcladas. Inicializaciones incorrectas. Falta de precisión. Representación incorrecta de una expresión.

PRUEBA DE INTEGRACIÓN. “Si todos funcionan bien ¿Por qué dudar de que no funcionen todos juntos?” La prueba de Integración es una técnica sistemática para construir la estructura del programa mientras que al mismo tiempo, se llevan a cabo pruebas para detectar errores asociados con la interacción.

TIPOS DE INTEGRACIÓN. La primera es no incremental “big bang”. Se combinan todos los módulos por anticipado, se prueba todo el producto. La segunda es una integración incremental en donde se desarrollan módulos pequeños y funcionales que hacen que los errores sean más fácil de aislar y corregir.

INTEGRACIÓN DESCENDENTE. Es una estrategia de integración incremental a la construcción de la estructura de programas, en cual se integran los módulos moviéndose en dirección hacia abajo por la jerarquía de control comenzando con el módulo principal . Los módulos subordinados al módulo de control principal se incorpora en la estructura, de forma primero-en-profundidad, ó primero-en-anchura

EJEMPLO. Integración descendente M1 M2 M3 M4 M5 M6 M7 M8

INTEGRACIÓN ASCENDENTE. Es un modelo de integración no incremental, en donde la construcción del diseño empieza de los módulos atómicos (es decir, módulos de los niveles mas bajos de la estructura del programa). Dado que los módulos se integran de abajo hacia arriba, el proceso requerido de los módulos subordinados siempre está disponible y elimina la necesidad de resguardos.

LA PRUEBA DE REGRESIÓN. Cada vez que se añade un nuevo modulo como parte de una prueba de integración el software cambia. La prueba de regresión es volver a ejecutar un subconjunto de pruebas que se han llevado a cabo anteriormente para asegurarse de que los cambios no han propagado efectos colaterales no deseados.

PRUEBA DE HUMO La prueba de humo es un método de prueba de integración que es comúnmente utilizada cuando se ha desarrollado un software “empaquetado”. Es diseñado como una mecanismo para proyectos críticos por tiempos, permitiendo que el equipo de software valore su proyecto sobre una base sólida.

COMENTARIOS DE LA PRUEBA La desventaja de la integración descendente es la necesidad de resguardos. La principal desventaja de la integración ascendente es que el “el programa como entidad no existe hasta que se haya añadido el ultimo módulo”.   La selección de una estrategia de integración depende de las características del software y, a veces de la planificación del proyecto, en algunos de los casos se puede usar un enfoque combinado(denominado pruebas Sándwich).

PRUEBA DE VALIDACIÓN. La validación puede definirse de muchas formas, pero una simple definición es que la validación se consigue cuando el software funciona de acuerdo con las expectativas razonables del cliente.

CRITERIOS DE LA PRUEBA DE VALIDACIÓN 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. A diferencia de la prueba alfa, el desarrollador no está presente normalmente. Así, la prueba beta es una aplicación «en vivo» del software en un entorno que no puede ser controlado por el desarrollador.

PRUEBA DEL SISTEMA. Un problema típico es la «delegación de culpabilidad», esto ocurre cuando se descubre un error y cada uno de los creadores de cada elemento del sistema echa la culpa del problema a los otros. Se debe anticipar a los posibles problemas y: diseñar caminos de manejo de errores que prueben toda la información procedente de los elementos del sistema; llevar a cabo una serie de pruebas que simulen la presencia de datos en mal estado o de otros posibles errores en la interfaz del software; registrar los resultados de las pruebas como «evidencia» en el caso de que se le señale con el dedo; participar en la planificación y el diseño de pruebas del sistema para asegurarse de que el software se prueba de forma adecuada.

PRUEBA DE RECUPERACIÓN. La prueba de recuperación es una prueba del sistema que fuerza el fallo del software de muchas formas y verifica que la recuperación se lleva a cabo apropiadamente. Si la recuperación es automática hay que evaluar la corrección de la inicialización, de los mecanismos de recuperación del estado del sistema, de la recuperación de datos y del proceso de re-arranque. Si la recuperación requiere la intervención humana, hay que evaluar los tiempos medios de reparación (TMR) para determinar si están dentro de unos límites aceptables.

PRUEBA DE SEGURIDAD. Este acceso al sistema incluye un amplio rango de actividades: «piratas informáticos» que intentan entrar en los sistemas por deporte, emplea­dos disgustados que intentan penetrar por venganza e individuos deshonestos que intentan penetrar para obtener ganancias personales ilícitas. La prueba de seguridad intenta verificar que los mecanismos de protección incorporados en el sistema lo protegerán, de hecho, de accesos impropios.

PRUEBA DE RESISTENCIA (STRESS) La prueba de resistencia ejecuta un sistema de forma que demande recursos en cantidad, frecuencia o volúmenes anormales. Por ejemplo: incrementar las frecuencias de datos de entrada en un orden de magnitud con el fin de comprobar cómo responden las funciones de entrada; diseñar pruebas especiales que generen diez, interrupciones por segundo, cuando las normales son una o dos; ejecutar casos de prueba que requieran el máximo de memoria o de otros recursos; diseñar casos de prueba que puedan dar problemas en un sistema operativo virtual

PRUEBA DE RENDIMIENTO. La prueba de rendimiento está diseñada para probar el rendimiento del software en tiempo de ejecución dentro del contexto de un sistema integrado. La prueba de rendimiento se da durante todos los pasos del procesó de la prueba. Incluso al nivel de unidad, se debe asegurar el rendimiento de los módulos individuales a medida que se llevan a cabo las pruebas de caja blanca. Sin embargo, hasta que no están completamente integrados todos los elementos del sistema no se puede asegurar realmente el rendimiento del sistema.

EL ARTE DE LA DEPURACIÓN. La depuración ocurre como consecuencia de una prueba efectiva. Es decir, cuando un caso de prueba descubre un error, la depuración es el proceso que provoca la eliminación del error. Aunque la depuración puede y debe ser un proceso ordenado, sigue teniendo mucho de arte. Un ingeniero del software, al evaluar los resultados de una prueba, se encuentra frecuentemente con una indicación «sintomática» de un problema en el software. Es decir, la manifestación externa de un error, y la causa interna del error pueden no estar relacionadas de una forma obvia. El proceso mental, apenas comprendido, que conecta un síntoma con una causa es la depuración.

La depuración no es una prueba, pero siempre ocurre como consecuencia de la prueba. El proceso de depuración siempre tiene uno de los dos resultados siguientes: se encuentra la causa, se corrige y se elimina; o no se encuentra la causa. En este último caso, la persona que realiza la depuración debe sospechar la causa, diseñar un caso de prueba que ayude a confirmar sus sospechas y el trabajo vuelve hacia atrás a la corrección del error de una forma iterativa. Durante la depuración encontramos errores que van desde lo ligeramente inesperado (por ejemplo, un formato de salida incorrecto) hasta lo catastrófico (por ejemplo, el sistema falla, produciéndose serios daños económicos o físicos).

EL PROCESO DE DEPURACIÓN

ENFOQUES DE LA DEPURACIÓN. Depuración por fuerza bruta es la más común y menos eficiente a la hora de aislar la causa del error en el software. Aplicamos la depuración por fuerza bruta cuando todo lo demás falla. La vuelta atrás es un enfoque más normal porque se puede usar con éxito para pequeños programas. Partiendo del lugar donde se descubre el síntoma, se recorre hacia atrás el código fuente hasta que se llega a la posición de error. Pero a medida que aumenta el número de líneas del código, el número de posibles caminos de vuelta se hace difícilmente manejable. la depuración eliminación de causas se manifiesta mediante inducción o deducción e introduce el concepto de partición binaria. Los datos relacionados con la ocurrencia del error se organizan para aislar las posibles causas. Se llega a una «hipótesis de causa» y se usan los datos anteriores para probar o revocar la hipótesis

BIBLIOGRAFIA Fairley R. Ingeniería de Software. Pressman, R.S. Ingeniería del Software. Un enfoque práctico.