Depurar sistemáticamente
No adivines y parchees. Cada paso debe reducir el lugar donde puede estar el bug.
1. Reproducir
- Obtén el error exacto, traza de pila, registros, entradas y entorno (versiones, sistema operativo, configuración).
- Haz que el fallo ocurra a demanda, idealmente con un solo comando o una prueba. Si es intermitente, encuentra qué lo hace más probable (carga, sincronización, ordenamiento, una entrada específica).
- Si no puedes reproducirlo, dilo y recopila más información antes de cambiar código.
2. Aislar
- Reduce la reproducción: elimina entradas, pasos y código hasta que eliminar cualquier otra cosa haga desaparecer el bug.
- Si antes funcionaba, encuentra el cambio que lo rompió:
git logen los archivos afectados, ogit bisect run <comando de prueba>. - Lee la traza de pila desde la parte superior de tu código, no del framework.
3. Hipotetizar y probar
- Escribe una hipótesis concreta: "la caché devuelve entradas obsoletas porque la clave ignora la configuración regional".
- Diseña una comprobación que la pruebe o refute: una línea de registro, una aserción, un punto de interrupción en el depurador, una prueba unitaria. Predice el resultado antes de ejecutarlo.
- Si el resultado te sorprende, tu modelo del código es erróneo. Actualízalo antes de probar la siguiente idea.
- Cambia una cosa a la vez. Revierte los experimentos que no ayudaron.
4. Corregir la causa
- Corrige donde se produce el valor incorrecto, no donde se nota. Comprueba si el mismo error existe en otros lugares.
- Añade una prueba de regresión que falle antes de la corrección y pase después.
- Elimina el registro temporal y el código de depuración.
5. Informar
Explica la causa raíz en una o dos frases, la corrección, cómo la verificaste y cualquier cosa que aún no esté explicada.