Depuracion
Click here to load reader
-
Upload
carlos-a-iglesias -
Category
Technology
-
view
637 -
download
4
description
Transcript of Depuracion
Análisis y Diseño de Software
Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es
Pensamiento de la semanaDepuración
Programador Pragmático - Depuración 2
Depuración“Es una tarea dolorosamirar a tus propios problemas y
saberque tú mismo y nadie más los ha
provocado”
SófoclesAyax
Programador Pragmático - Depuración 3
El origen moderno del término “Bug”
9/9/1945 Grace Murray Hopper, Madre de COBOL
Programador Pragmático - Depuración 4
Psicología de la Depuración (I)● Lamentablemente, cometemos errores y hay fallos (bugs)● Los ordenadores aún hacen lo que les decimos que
hagan y no lo que queremos que hagan● No hay software perfecto: la depuración nos llevará la
mayor parte del tiempo
● Actitud de depuración:– Reto– No busques culpables– Arregla el problema– Cualquier fallo es tu problema
Programador Pragmático - Depuración 5
Psicología de la Depuración (II)●Primera regla: Don’t Panic●No les des vueltas
– pero si funcionaba hace un rato y no he cambiado nada...
– tendría que ir...
●Busca la causa, no te quedes en los síntomas
Programador Pragmático - Depuración 6
Por dónde empezar
●Antes de buscar el fallo– Comprueba que todo está compilado– Comprueba que no hay avisos (warnings) al
compilar
●Reproduce el fallo para tener todos los datos del problema
Programador Pragmático - Depuración 7
Estrategias de depuración I
●Visualizar qué está pasando– Emplea una herramienta de depuración– Establece paradas (“breakpoints”) y ejecuta
paso a paso– Visualiza valores de las variables
●Emplear trazas– Las trazas permiten ver qué pasa antes y
después– Ajusta los niveles de detalle de las trazas
Programador Pragmático - Depuración 8
Estrategias de depuración I
●Explica el problema a otra persona (o al patito“rubber ducking”)– Al “verbalizar”, ves qué asunciones no son
ciertas
●Proceso de Eliminación– Antes de pensar que el fallo puede estar en
algoexterno (una biblioteca que usas, SO, ...), – asegúrate que tu código no tiene fallos “El
Select no tiene bugs”
Programador Pragmático - Depuración 9
La sorpresa●Si encuentras que el fallo es
inesperado– Arréglalo – Determina por qué no fue capturado
antes• ¿Pocas pruebas unitarias?• ¿Falta de comprobación de parámetros?• ¿Hay más código que puede tener el mismo
fallo?• ¿Hay pocas trazas en el código?