Depuracion

9

Click here to load reader

description

Programador pragmático. Depuración

Transcript of Depuracion

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

Page 2: Depuracion

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

Page 3: Depuracion

Programador Pragmático - Depuración 3

El origen moderno del término “Bug”

9/9/1945 Grace Murray Hopper, Madre de COBOL

Page 4: Depuracion

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

Page 5: Depuracion

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

Page 6: Depuracion

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

Page 7: Depuracion

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

Page 8: Depuracion

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”

Page 9: Depuracion

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?