introducción. el desarrollo de sistemas de software implica una serie de actividades de producción...

64
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 humano son enormes. Los errores pueden empezar a darse desde el inicio del proceso, en el que los objetivos pueden estar especificados de forma errónea o imperfecta, así como dentro de pasos de diseño y desarrollo posteriores..

Upload: jose-antonio-sosa-vega

Post on 03-Feb-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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.

El desarrollo de sistemas de software implica una serie de actividades de producción en las que las posibilidades de que aparezca el fallo humano son enormes.

Los errores pueden empezar a darse desde el inicio del proceso, en el que los objetivos pueden estar especificados de forma errónea o imperfecta, así como dentro de pasos de diseño y desarrollo posteriores..

Page 2: 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.

Debido a la imposibilidad humana de trabajar y comunicarse de forma perfecta, el desarrollo de software ha de ir acompañado de una actividad que garantice la calidad

La prueba del software es 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.

Page 3: 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

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 de mostrar un error no descubierto antes.

Descubrir un error no descubierto antes (éxito de la prueba).

Page 4: 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

Objetivos de la prueba

Nuestro objetivo, es diseñar pruebas que sistemáticamente descubran diferentes tipos de errores con menor tiempo y esfuerzo.

La prueba no puede asegurar que no existen errores sólo puede mostrar que existen defectos en el software.

Page 5: 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

Un software fácil de probar tiene las siguientes características:

Operatividad

Observatividad

Controlabilidad

Capacidad de descomposición

Simplicidad

Estabilidad

Facilidad de comprensión.

Page 6: 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

Principios de la prueba Hacer un seguimiento de las pruebas hasta

los requisitos del cliente.

Plantear y diseñar las pruebas antes de generar ningún código.

El 80% de todos los errores se centran sólo en el 20% de los módulos.

Page 7: 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

Principios de la prueba Empezar las pruebas en módulos

individuales y avanzar hasta probar el sistema entero.

No son posibles las pruebas exhaustivas.

Deben realizarse por un equipo independiente al equipo de desarrollo.

Page 8: 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

Diseño de casos de prueba Un producto puede probarse siguiendo dos

criterios:

1. Conocimiento del funcionamiento del producto (Caja blanca).

2. El conocimiento de la función específica para la que fue diseñado el producto (Caja negra).

Page 9: 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

Criterios de realización de pruebas

Para llevar a cabo la verificación del comportamiento de un sistema pueden servirse 2 criterios:

Descendente Ascendente

Page 10: 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

Criterios de realización de pruebas Prueba Descendente empieza a nivel de

sistema, prueba los módulos y por ultimo las funciones que conforman. Utiliza un programa esclavo.

Prueba Ascendente da inicio la verificación de funciones hasta llegar al nivel superior del sistema. Utiliza un programa conductor para cada modulo a probar.

Page 11: 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

Clase de pruebas

Datos de prueba: Representativos (datos comunes) Incorrectos, incompletos e incongruentes

Page 12: 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

Clases de pruebas

Consideraciones Tipos de prueba

Costo de preparación Nivel de confi abilidad

lógico-simulado muy baja Bajo Estocásticos bajo bajo Real medio medio Controlada alto medio-alto

Page 13: 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

Diseño de casos de prueba

Prueba de Caja NegraSe realiza con el fin de asegurar que el

producto es operativo. Prueba de Caja Blanca

Se desarrolla con el fin de asegurar que todas las piezas del sistema tienen una operación interna que se ajusta a las especificaciones y que todos sus componentes internos se han aprobado en forma adecuada.

Page 14: 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

Pruebas de caja blancaEste método de casos de prueba usa los detalles

procedimentales del programa. Se busca obtener casos de prueba que: Garanticen que se ejecuta por lo menos

una vez todos los caminos independientes de cada módulo.

Verificar las decisiones lógicas (V/F). Ejecutar las condiciones en sus límites. Ejecutar las estructuras internas de datos

para asegurar su validez.

Page 15: 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

Pruebas de caja blanca Prueba de camino básico

Notación de grafo de flujo Complejidad ciclomática Obtención de casos de prueba Matrices de grafos

Prueba de la estructura de control Prueba de condición Prueba de flujo de datos Prueba de bucles

Page 16: 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

Prueba del camino básico

 Es una técnica de prueba de caja blanca que nos permite obtener una medida de complejidad lógica.

Con la medida de complejidad se genera un conjunto básico de caminos que se ejecutan por lo menos una vez durante la ejecución del programa.

Page 17: 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

Prueba del camino básico Para representar el flujo de control de un

programa se usa un grafo de flujo.

Para determinar la complejidad lógica de un programa, se calcula la complejidad ciclomática que define el número de caminos independientes del conjunto básico.

Un camino independiente es cualquier camino del programa que incluye nuevas instrucciones de un proceso o una nueva condición.

Page 18: 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

Obtención de casos de prueba1. Dibujar el grafo correspondiente

2. Determinar la complejidad.

3. Determinar un conjunto básico de caminos linealmente independientes

4. Preparar casos de prueba que forzarán a la ejecución de cada camino básico.

Page 19: 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

´When you can measure what you are speaking about, y express it in numbers, you know something about it; but when you cannot ... your knowledge is of a meager y unsatisfactory kind.´

Lord Kelvin, 1889

´You can‘t control what you can‘t measure......´

De Marco, 1982

Métricas

Page 20: 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

Cualquier tipo de medida. Ej. cms, litros, segundos, etc.

Descripción de un atributo. Algunos tipos:

De proyecto. Costos/plan de trabajo.

Estimación. Puntos por función.

Métricas de software.

¿Qué es una métrica?

Page 21: 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

• Es proporcional al número de errores en un segmento de código. “Entre más complejo, más susceptible a errores.”

• Se relaciona con el esfuerzo requerido para probar. “Entre más complejo, mayor atención para probar.”

Complejidad

Page 22: 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

“Complejidad Ciclomática”

Métricas de Complejidad

Page 23: 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

Definición : Complejidad Ciclomática, v, es la medida de la complejidad lógica de un módulo “G” y el esfuerzo mínimo necesario para calificarlo. v es el número de rutas lineales independientes de un módulo “G”, por lo tanto es el número mínimo de rutas que deben probarse.

• Ventajas -Cuantifica la complejidad lógica.-Mide el esfuerzo mínimo para probar.-Guía el proceso de prueba.

v(G)=10

Complejidad Ciclomática

Page 24: 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

Complejidad Ciclomática

•Mide el número de decisiones lógicas dentro de un segmento de código (módulo).

•Es el número de rutas de prueba recomendado como mínimo a probar.

•Se utiliza durante las fases de diseño para mantener software:

Fácil de entender,Fácil de probar,Fácil de modificar.

Page 25: 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

• Entender como se construye un flujodiagrama con base en el código fuente de un programa.

• Examinar como una herramienta de pruebas construye un flujodiagrama con base en el código fuente de un programa.

Flujodiagramas

Objetivos

Ejercicio 1

McCabe McCabe IQIQ

Page 26: 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

Complejidad Ciclomática

1. Sentencia;2. Sentencia;3. Select case4. case 1:5. case 2:6. case 3:7. Sentencia (End Case);8. If condición9. sentencia;

Else10. sentencia;11. Sentencia;12. Sentencia;

1,2

3

4 5 6

7

8

9 10

11

12

nodo

borde

Diagrama lógico

Page 27: 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

• Entender como se calculan los valores de la complejidad ciclomática, utilizando los métodos formal, aristas y regiones.

Cálculo de v(G)

Objetivos

Ejercicio 2

Page 28: 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

1

2

3 4

5

67 8 9 10

11

12

1

2 3

4 5

6

78 9

10

1112 13

14

15v(G)=15-12+2=5

• Cálculo de v(G):-Formal (nodos y bordes)

v(G)=e-n+2-Predicados (aristas)

v(G)=p+1-Regiones

v(G)=R

Complejidad Ciclomática

Page 29: 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

v(G)= 4+1=5

Complejidad Ciclomática

• Calculo de v(G):-Formal (nodos y bordes)

v(G)=e-n+2-Predicate (aristas)

v(G)=p+1-Regiones

v(G)=R

Page 30: 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

v(G)= 5

Complejidad Ciclomática

• Calculo de v(G):-Formal (nodos y bordes)

v(G)=e-n+2-Predicados (aristas)

v(G)=p+1-Regiones

v(G)=R

1

2 3 4

5

Page 31: 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

0

20

40

60

80

1 a 5 6 a 10 11 a 15 16 a 20 21 a 25 26 a 30 Mayor 30

Complejidad Ciclomática, v(G)Funciones

Errores por función

v(G) vs ErroresComplejidad Ciclomática

Page 32: 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

Pruebas de la estructura de control

Existen tres pruebas de estructura de condición, que son:

1. Prueba de condición,

2. Prueba de estructura de datos y

3. Pruebas de estructuras de control (bucles).

Page 33: 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

Pruebas de la estructura de control La prueba de condición se centra en encontrar errores

en condiciones lógicas en un módulo, aunque también puede detectar errores adicionales en el programa.

En una condición se pueden dar los siguientes errores: 1. Error de operador lógico

2. Error en una variable lógica.

3. Error en una condición simple o compuesta.

4. Error en un operador relacional.

5. Error en una expresión aritmética.

Page 34: 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

Pruebas de la estructura de control La prueba de flujo de datos selecciona caminos de

prueba de un programa de acuerdo con la ubicación de las definiciones y los usos de las variables del programa.

La prueba de bucles es una técnica de prueba de caja blanca que se centra exclusivamente en la validez de las construcciones de condiciones. Hay cuatro tipos de estructuras de control: simples, concatenadas, anidadas y no estructuradas. De acuerdo al tipo de estructura es la prueba que se aplicará.

Page 35: 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

Pruebas de caja negra Métodos de prueba basados en grafos Partición equivalente Análisis de valores límites Prueba de comparación

Page 36: 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

Pruebas de caja negra Este tipo de prueba se centra en los requisitos

funcionales del software y permite obtener entradas que prueben todos los requisitos funcionales del programa. Con este tipo de pruebas se intenta encontrar:

1. Funciones incorrectas o ausentes.

2. Errores de interfaz

3. Errorres en estructuras de datos o en accesos a bases de datos externas.

4. Errores de rendimiento.

5. Errores de inicialización y terminación.

Page 37: 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

Pruebas de caja negra  Con la aplicación de esta técnica se obtiene un

conjunto de pruebas que:

Reduce el número de casos de pruebas

Nos dicen algo sobre la presencia o ausencia de errores.

Page 38: 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

Partición equivalente Una partición equivalente es un método de

prueba de caja negra que :

Divide el dominio de entrada de un programa en clases de datos.

El diseño de casos de prueba para la partición equivalente se basa en la evaluación de las clases de equivalencia.

Page 39: 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

Análisis de valores límites El análisis de valores límites (AVL)

conduce a la elección de las pruebas que ejecuten los valores límites.

Con esta técnica se complementa la partición equivalente. El  AVL  selecciona los casos de prueba con los valores extremos de una clase.

Page 40: 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

Prueba de comparación Esta técnica consiste en la comparacion de salidas de

un mismo software pero de sus diferentes versiones.

Cuando se han producido múltiples implementaciones de la misma especificación, a cada versión del  software se le proporciona como entrada los casos de prueba diseñados para la otra. Si las salidas de distintas versiones son idénticas entonces todas las implementaciones son correctas.Si la salida es diferente, se revisan las aplicaciones para determinar el defecto. Esta prueba no es infalible.

Page 41: 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

Estrategias de prueba del software

Estrategias de prueba del software: Prueba de unidad, Prueba de integración, Prueba de validación, Prueba del sistema.

Page 42: 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

Estrategias de prueba del software Proporcionan un plano o guía para el desarrollador

del software, para la organización de control de calidad y para el cliente .

Es una guía que describe los pasos a llevar a cabo como parte de la prueba, cuándo se deben planificar y realizar esos pasos, y cuánto esfuerzo, tiempo y recursos se van a requerir.

Por lo tanto, cualquier estrategia de prueba debe incorporar la planificación de la prueba, el diseño de los casos de prueba, la ejecución de las pruebas y la agrupación y evaluación de los datos resultantes.

Page 43: 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

Etapas de un plan de pruebas

a. especificar los objetivos de las pruebas.

b. determinar con precisión los criterios a seguir en su realización.

c. Integrar al personal y los elementos necesarios para el desarrollo de las pruebas.

d. Aplicación de la prueba o pruebas según los criterios seleccionados.

e. evaluación de los resultados y consideraciones para llevar a cabo una nueva serie de pruebas.

Page 44: 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

Un enfoque estratégico para la prueba del software

Generalmente se proporciona una  plantilla  para la prueba con las siguientes características generales: La prueba comienza en el nivel de módulo y trabaja "hacia

fuera", hacia la integración de todo el sistema basado en computadora. Se usa el enfoque “bottom-up”.

En diferentes momentos se utilizarán diferentes técnicas de prueba

La prueba la lleva a cabo el que desarrolla el software y (para grandes proyectos) un grupo de prueba independiente.

La prueba y la depuración son actividades diferentes, pero la depuración se puede incluir en cualquier estrategia de prueba.

Page 45: 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

Verificación y validaciónLa verificación se refiere al conjunto de actividades que aseguran que el

software implementa correctamente una función específica. La validación se refiere a un conjunto diferente de actividades que

aseguran que el software construído se ajusta a los requisitos del cliente.  

La verificación y la validación comprenden un amplio rango de actividades de SQA que incluyen : Revisiones técnicas formales, Auditorias de configuración y calidad, Supervisión del rendimiento, Revisión de la base de datos, Análisis de los algoritmos, Prueba de desarrollo, Prueba de calificación, Prueba de instalación.

Page 46: 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

Prueba de unidad La prueba de unidad Centra el proceso de verificación en la menor

unidad del diseño del software - el módulo. Usando la descripción del diseño detallado

como guía, se prueban caminos de control importantes, con el fin de descubrir errores dentro del ámbito del módulo.

Está orientada a la caja blanca Puede llevarse a cabo en paralelo para

múltiples módulos.  

Page 47: 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

Consideraciones sobre la prueba de unidad

Las pruebas que se dan como parte de la prueba de unidad son: Se prueba la interfaz  del módulo .  Se examinan las estructuras de datos  locales.  Se prueban las condiciones límites .  Se ejercitan todos los caminos independientes  de

la estructura de control. Y finalmente, se prueban todos los caminos de

manejo de errores.

Antes de iniciar cualquier otra prueba es preciso probar el flujo de datos de la interfaz del módulo.

Page 48: 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

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.

El objetivo es tomar los módulos probados en unidad y construir una estructura de programa que esté de acuerdo con lo que dicta el diseño.

Page 49: 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

Prueba de integración La integración incremental, El programa se

construye y se prueba en pequeños segmentos en los que los errores son más fáciles de aislar y de corregir, de esta forma es más probable que se puedan probar completamente los interfaces y se puede aplicar un enfoque de prueba sistemática.

Hay estrategias de integración incremental denominadas: Integración descendente, Integración ascendente.

Page 50: 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

•A continuación se deben ensamblar o integrar los módulos para formar el paquete del software completo. •La prueba de integración  se dirige a todos los aspectos asociados con el doble problema de verificación y de construcción del programa. •Las técnicas que más prevalecen son las de diseño de casos de prueba de caja negra

Prueba de integración

Page 51: 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

Documentación de la prueba de integración

La especificación de prueba incluye un plan general para la integración del software y una descripción de las pruebas específicas. Es un resultado del proceso de ingeniería del software y forma parte de la configuración del software.

El alcance de la prueba  resume las características funcionales, de rendimiento y de diseño interno específicas que van a a ser probadas. Se limita el esfuerzo de prueba, se describen los criterios de terminación de cada fase de prueba y se documentan las limitaciones del plan.

Page 52: 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

Documentación de la prueba de integración

El plan de prueba  describe la estrategia general para la integración. La prueba se divide en fases  y subfases  dirigidas a específicas características funcionales y del ámbito de información del software.

En todas las fases de prueba se siguen los siguientes criterios con sus correspondientes pruebas: Integridad de interfaz, Validez funcional, Contenido de la información, Rendimiento.

Page 53: 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

Prueba de validación Tras la culminación de la prueba de la

integración, el software está completamente ensamblado como un paquete, se han encontrado y corregido los errores de interfaz y puede comenzar una serie final de pruebas del software -La prueba de validación.

Page 54: 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

Criterios para la prueba de validación

La validación del software se consigue mediante una serie de pruebas de la caja negra que demuestran la conformidad con los requisitos.

Un plan de prueba traza las pruebas que se han de llevar a cabo y un procedimiento de prueba define los casos de prueba específicos que se usarán para demostrar la

conformidad con los requisitos.

 

Page 55: 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

Repaso de la configuraciónUn elemento importante del proceso de validación es el

repaso de la configuración. Tal repaso intenta asegurar que todos los elementos de la configuración del software se han desarrollado de forma adecuada, están catalogados y tienen el suficiente detalle para facilitar la fase de mantenimiento dentro del ciclo de vida del software.

Page 56: 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

Pruebas alfa y beta La prueba alfa es conducida por un cliente en el

lugar de desarrollo. La prueba beta se lleva a cabo en uno o más

lugares de cliente por los usuarios finales del software.

Page 57: 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

Prueba del sistema

La prueba del sistema, realmente está constituida por una serie de pruebas diferentes cuyo propósito principal es ejercitar profundamente el sistema basado en computadora.

Aunque cada prueba tiene un propósito distinto, todas trabajan para verificar que se han integrado adecuadamente todos los elementos del sistema y que realizan las funciones apropiadas.

 

Page 58: 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

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 correción de reinicialización, de los mecanismos de recuperación del estado del sistema, de la recuperación de datos y del rearranque.

Si la recuperación requiere la intervención humana, hay que evaluar los tiempos medios de reparación para determinar si están dentro de unos límites aceptables.

Page 59: 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

Prueba de seguridadLa prueba de seguridad  intenta verificar que los

mecanismos de protección incorporados en el sistema lo protegerán.

Page 60: 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

Prueba de resistencia o de carga maxima

Las pruebas de resistencia  están diseñadas para enfrentar a los programas con situaciones anormales. En esencia, el sujeto que realiza la prueba de resistencia se pregunta: "¿A qué potencia puedo ponerlo a

funcionar antes de que falle ?"

 

Page 61: 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

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 proceso de 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 la caja blanca.

Page 62: 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

El arte de la depuraciónLa depuración aparece como una consecuencia de una

prueba efectiva o sea, cuando un caso de prueba descubre un error, la depuración es el proceso que resulta en la eliminación del error.

Aunque la depuración puede y debe ser un proceso

ordendo, sigue teniendo mucho de arte.

Page 63: 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

El arte de la depuraciónEl proceso de depuración siempre tiene uno de dos

resultados: (1) se encuentra la causa, se corrige y se elimina; o (2) 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 validar sus sospechas y el trabajo vuelve hacia atrás a la corrección del error de una forma iterativa.

Page 64: 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

Bibliografia

Análisis y diseño de sistemas de información

(James A. Senn)

Análisis y diseño de sistemas (Kendall&Kendall)

Ingenieria de Software (Roger S. Pressman)

Diseño de sistemas de informacion Teoria y

Practica (John G. Burch)