Download - Depuracion

Transcript
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?


Top Related