Sei sulla pagina 1di 9

Parte I: El computador y el proceso de programacin

1.Introduccin a los computadores y su programacin 2. Introduccin al anlisis y diseo de algoritmos 3. Introduccin al anlisis y diseo de programas 4. Verificacin de programas

UNIVERSIDAD DE CANTABRIA

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN 4

Michael Gonzlez Harbour 19/ma/09

Notas:
1. Introduccin a los computadores y su programacin

UNIVERSIDAD DE CANTABRIA

Arquitectura bsica de un computador.El software del sistema. Lenguajes de Alto Nivel. El proceso de compilacin. El ciclo de vida del software. 2. Introduccin al anlisis y diseo de algoritmos. Diseo de un programa. Concepto de algoritmo. Descripcin de algoritmos: el pseudolenguaje. Tiempo de ejecucin de algoritmos. La notacin O(n). Ejemplos de anlisis. 3. Introduccin al anlisis y diseo de programas Actividades del ciclo de vida del software. Paradigmas de desarrollo de programas. Anlisis y especificacin. Diseo arquitectnico. Tcnicas de diseo detallado. 4. Verificacin de programas Importancia de la verificacin. Estrategias de prueba. Depuracin. Eleccin de datos para la prueba.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

1. Importancia de la verificacin

UNIVERSIDAD DE CANTABRIA

Aproximadamente la mitad del esfuerzo total del desarrollo se emplea en las pruebas del programa. La prueba de un programa depende mucho de su dimensin cuanto ms grande es el programa ms etapas son necesarias en el proceso de prueba. Para las pruebas de un programa debe hacerse una planificacin rigurosa. Para probar un programa incompleto o mdulos de programa es necesario escribir software de prueba en ocasiones, el software de prueba es ms grande que el propio programa.
DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

Notas:

UNIVERSIDAD DE CANTABRIA

Cuando tratamos el esfuerzo necesario para el desarrollo de un sistema software, vimos que aproximadamente la mitad del esfuerzo total se empleaba en las pruebas del programa, lo cual pone de manifiesto la gran importancia de esta etapa del desarrollo. Segn sea la dimensin del programa la problemtica asociada a las pruebas de un programa pueden ser completamente diferentes. En programas grandes normalmente la prueba necesita mayor nmero de etapas que en programas pequeos. Al igual que para el diseo de un programa, para su prueba es necesario hacer una planificacin cuidadosa de todos los elementos que se van a probar. Para ello, se suele elaborar un documento de pruebas, incluso antes de escribir el programa. El rango de las tcnicas empleadas para la prueba de programas es muy amplio, y abarca desde el estudio de viabilidad de las especificaciones hasta los programas generadores de las secuencias de pruebas. Cuando se prueba un programa incompleto o un mdulo de programa, es necesario crear software de prueba, que permite introducir o recoger los datos y eventos necesarios. En programas grandes es habitual que el software de pruebas sea ms voluminoso que el propio programa. El software de pruebas de un programa debe conservarse, para poder probar de nuevo el programa cuando se hagan modificaciones.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

Dependencia con el tamao del programa


Categora
Simple Complejidad intermedia Complejo

UNIVERSIDAD DE CANTABRIA

Caractersticas
- < 1000 instrucciones - 1 persona, < 6 meses - Sin interacciones con otros programas < 10.000 instrucciones 1-5 personas, < 2 aos Pocas interacciones con otros sistemas 10 a 100 mdulos

Dependencia
Del programador Del programador y de la direccin Tcnicas modernas de diseo y direccin

- < 100.000 instrucciones - 5-20 personas, < 3 aos - Frecuentemente interacciona con otros sistemas. - 100 a 1000 mdulos.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

Notas:

UNIVERSIDAD DE CANTABRIA

Categora
Muy complejo

Caractersticas
- < 106 instrucciones - 20-100 programadores - Requiere mantenimiento continuo y por gente distinta. - Fuertes interacciones con otros sistemas. - 1000 a 10.000 mdulos - > 106 instrucciones - > 100 programadores - Requiere mantenimiento continuo y por gente distinta. - Casi siempre incluye procesado en tiempo real, telecomunicaciones, etc. - Corresponde, generalmente, a procesos crticos (trfico areo, defensa, etc.)

Dependencia
Tcnicas modernas de diseo y direccin

Super complejo

Idem

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

Definiciones bsicas
Prueba o Test: ejecucin para encontrar errores

UNIVERSIDAD DE CANTABRIA

Demostracin: prueba matemtica por inspeccin del cdigo Verificacin: bsqueda de fallos en ambiente simulado Validacin: comprobacin en el ambiente real Certificacin: se certifica la correccin cuando se han probado exhaustivamente todas las posibilidades Depuracin o Debugging: localizar y corregir errores

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

Notas:

UNIVERSIDAD DE CANTABRIA

Testing o Prueba: Es el proceso de ejecucin de un programa (o parte de l) con la intencin o meta de encontrar errores. Demostracin: Es un intento de encontrar errores si tener en cuenta el ambiente del programa. Es decir, se trata de obtener o probar teoremas matemticos acerca de la correccin de un programa. Verificacin: Es un intento de encontrar errores en un ambiente de test o simulado. Validacin: Es un intento de encontrar errores ejecutando un programa en un ambiente real dado. Certificacin: Es un certificado de correccin. La prueba para certificacin debe realizarse sobre algn tipo de estndar predefinido. Depuracin: No es una forma de prueba y, aunque a veces las palabras depuracin y prueba se usan de forma intercambiable, son actividades distintas. La prueba es una actividad de encontrar errores, y la depuracin es la actividad de diagnosticar la naturaleza precisa de un error, conocerlo y corregirlo. Las dos estn relacionadas porque la salida de una actividad de prueba es la entrada de una actividad de depuracin.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

Relacin: prueba-diseo
Diseo
Requerimientos Prueba de instalacin

UNIVERSIDAD DE CANTABRIA

Prueba

Prueba de aceptacin Especificacin Prueba de sistema Diseo arquitectura Pruebas Funcionales Diseo detallado Prueba de Integracin

Codificacin

Prueba de mdulos

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

Notas:

UNIVERSIDAD DE CANTABRIA

Prueba de mdulo: Consiste en probar cada mdulo de programa individualmente. Cuando tratamos un programa pequeo, generalmente es desarrollado y probado como una utilidad nica y por una sola persona. Prueba de integracin: En la prueba de mdulos normalmente no se encuentran los errores relacionados con la interaccin entre los diferentes mdulos. El proceso de juntar los diferentes mdulos individuales para realizar subsecciones o funciones de un programa se denomina integracin de sistemas. Cuando se utilizan pruebas para averiguar la correccin de las interfaces entre los mdulos se denomina a este proceso de prueba, prueba de integracin. Pruebas de funcin y de sistema: En estas pruebas se analiza el funcionamiento de los mdulos ya unidos para comprobar su correcto funcionamiento conjunto en una funcin o subsistema del programa (prueba de funcin), o del programa completo (prueba de sistema). Prueba de aceptacin: Es el proceso de prueba realizado sobre el programa completo, en ambiente simulado o de prueba, para darlo por vlido. Requiere la prueba bajo las condiciones ms variadas. Normalmente participa el usuario, que da su visto bueno. Prueba de instalacin: Es el proceso de prueba realizado con el programa funcionando en su sistema y ambiente real, una vez instalado.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

10

2.Comparacin entre las distintas tcnicas de prueba


TOP-DOWN:
Caractersticas
- El programa principal o de control se prueba en primer lugar - Los mdulos se integran uno por uno - Se hace hincapi en las pruebas de las interfaces

UNIVERSIDAD DE CANTABRIA

Ventajas

Desventajas

- No necesita programas - Necesita mdulos driver de prueba simulados (stubs) - El programa de control y - Los errores en los mdulos unos pocos mdulos crticos se encuentran en forman un prototipo bsico ltimo lugar - Los errores de interfaces se detectan pronto - La caracterstica modular ayuda a la depuracin

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

11

Notas:

UNIVERSIDAD DE CANTABRIA

Cuando se realiza un diseo top-down o bottom-up puro, lo ms lgico es realizar tambin la prueba con la misma tcnica. En el caso de una prueba top-down, sta comienza analizando el funcionamiento del flujo de control del programa principal examinando cmo pasa el control y los datos a los distintos mdulos, cmo stos los devuelven y cmo el programa de control pasa los datos a los dispositivos de salida. Para ello, se necesita incluir en esta fase del desarrollo un cierto conjunto de instrucciones en cada mdulo, an cuando stos an no han sido diseados. A estos mdulos simplificados que permiten la prueba se les denomina stubs. Los stubs incluyen la implementacin de las interfaces del mdulo y un conjunto, normalmente sencillo, de cdigo para su utilizacin en el test. La complejidad de estos mdulos simulados vendr en funcin del inters por profundizar en el funcionamiento del sistema.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

12

Comparacin entre distintas tcnicas de prueba (cont.)


BOTTOM-UP:
Caractersticas
- Permite una prueba temprana de mdulos particulares - Los mdulos se pueden integrar en diversos grupos - Se hace hincapi en la funcionalidad y prestaciones de los mdulos

UNIVERSIDAD DE CANTABRIA

Ventajas

Desventajas

- No necesita mdulos - Necesitan programas simulados principales simulados - Se encuentran primero los (test drivers) errores de los mdulos - Los errores de interfaz se crticos descubren despus - Se ajustan las necesidades - Es necesario desarrollar humanas a lo existente muchos mdulos antes de ms fcilmente tener un programa parcialmente operativo

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

13

Notas:

UNIVERSIDAD DE CANTABRIA

Cuando el diseo es bottom-up puro y la prueba tambin, no necesitaremos los mdulos del test anteriores, pero sin embargo necesitaremos drivers, esto es, programas principales que pasan datos al mdulo bajo test y reciben datos de ste, una vez procesados. Lgicamente, casi nunca, la metodologa es una u otra nicamente, sino que ambas tcnicas, top-down y bottom-up, se utilizan mezcladas de igual forma que se realiza en el diseo de forma prctica.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

14

3. Depuracin

UNIVERSIDAD DE CANTABRIA

Es el proceso de localizacin y eliminacin de un error una vez detectado. Tcnicas antiguas: Volcado de memoria Trazas Escritura en pantalla Programas de depuracin de bajo nivel Tcnicas modernas: Programas de depuracin de alto nivel

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

15

Notas:

UNIVERSIDAD DE CANTABRIA

Cuando se detecta un error, es necesario precisar su localizacin en el programa (cual es el mdulo causante) y una vez localizado se pasa a su eliminacin. A este proceso se le denomina depuracin o debugging. Volcado de memoria. Se realiza un registro de todas las posiciones de memoria o variables relevantes de forma peridica. Ventajas: Se obtiene el contenido de la memoria en instantes de tiempo cruciales. Desventajas: Requiere tiempo de CPU. Requiere mucho tiempo de anlisis. Trazas. Esencialmente es igual que la anterior, excepto que contiene solamente ciertas porciones de memoria y registros y sus salidas estn condicionadas por la ocurrencia de un evento. Instrucciones write o put. Se utiliza la instruccin Put en pantalla o la equivalente del lenguaje de programacin utilizado, para obtener el valor de las variables deseadas. Ventajas: Es muy simple. Se puede ver la variacin del valor de la variable deseada. Desventajas: Son muy molestas de usar en grandes programas. Usadas indiscriminadamente no dan ninguna informacin. Requieren recompilacin. Programa de Depuracin. Es un programa que corre concurrentemente con el programa bajo test y suministra comandos para examinar la memoria, parar la ejecucin en algn punto, buscar por referencia constantes o variables particulares, etc. Antiguamente los depuradores slo valan para lenguaje ensamblador, pero hoy en da existen muchos depuradores de lenguajes de alto nivel.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

16

4 Eleccin de datos para la prueba


2. Casos lmite, extremos de los rangos, etc. 3. Datos de entrada inusuales o incorrectos 4. Cobertura de todos los caminos del programa

UNIVERSIDAD DE CANTABRIA

1. Probar cada una de las grandes caractersticas del sistema

5. Pruebas adicionales aleatorias o en funcin del algoritmo

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

17

Notas:

UNIVERSIDAD DE CANTABRIA

La mejor prueba es aquella que realiza la comprobacin para todos los valores de los datos de entrada y todas las condiciones iniciales. Este test, salvo en casos triviales, es prcticamente imposible. Por ello, es importante tener una gua para escoger el subconjunto de datos de entrada ms adecuado, aunque no existe una formalizacin clara acerca de esta eleccin: 1. Generar un conjunto de datos de prueba para ejercitar cada una de las grandes caractersticas del programa 2. Generar pruebas para comprobar los casos lmite entre dos conjuntos de soluciones, extremos de los rangos de solucin, etc. 3. Generar pruebas con datos de entrada inusuales o incorrectos. 4. Comprobar si ya se ha realizado una cobertura de todos los caminos del programa y, si no es as, aadir las pruebas necesarias para ello. 5. Escoger casos adicionales mediante tcnicas aleatorias y/o por un anlisis en profundidad del algoritmo.

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour 19/ma/09

18

Potrebbero piacerti anche