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?
Top Related