Bienvenidos sean a este post, hoy veremos unas estrategias/buenas practicas para la depuracion.
En el ciclo de vida de desarrollo de software, la depuracion se convirtio en uno de los mas costosos. Encontrar los bugs, solucionarlos no son factibles, especialmente si es con sistemas grandes y complejos. Sin embargo, hay ciertas estrategias que pueden ser usados en procesos practicos.. Veamos algunos de ellos:
- Usar printf o std::cout: esta es la forma primitiva de hacer las cosas, imprimiendo la informacion en la consola podemos chequear los valores de las variables y donde crear logs para futuros analisis
- Usar un depurador: si bien aprender a manejar un depurador no se aprende de la noche a la mañana, es una mejor opcion para hacerlo mas eficientemente por eso es bueno aprenderlo paso a paso y de forma gradual
- Reproducir bugs: cuando se reporta un bug debemos hacer un registro del entorno donde corre y los datos de entrada
- Volcado de archivos log: el programa deberia hacer volcado de archivos de log cuando ocurra un cierre inesperado y nos perrmita ver si se ocurrio algun evento anormal antes de esto
- Adivinar: adivinar la ubicacion de un bug y luego probar si fue correcto o no
- Dividir y conquistar: esto es para escenarios donde no podemos ubicar a los bugs, pero podemos usar la estrategia de busqueda binaria para establecer breakpoints para luego reducirlos y ubicarlos
- Simplificar: siempre debemos iniciar desde el escenario mas simple y gradualmente agregar perifericos, modulos de entrada, etc hasta que el bug se pueda reproducir
- Codigo fuente controlado por version: si subitamente aparecio un bug en un lanzamiento pero antes funcionaba perfectamente, lo primero que debemos hacer es un chequeo del tree del codigo fuente
- No rendirse: muchos bugs no solo seran dificiles de encontrar sino tambien de solucionar, especialmente para sistemas complejos y de multi-equipos. Si bien no lo recomiendo, porque es estresante, una buena opcion es dejarlo de lado y pensarlo cuando volvemos a casa porque mas de una vez esa solucion puede surgir en ese momento.
Si vienen de posts anteriores, hemos visto como a traves de RCA y buenas practicas se pueden evitar muchos problemas antes de que ocurran en la ejecucion. Ademas, si usamos una herramienta como gdb podemos controlar la ejecucion del programa linea por linea para poder analizarlos y arreglarlos a un nivel micro. Si bien todo esto se hace de manera manual y centralizada, algunos test se pueden automatizar para facilitarnos nuestras tareas.
En resumen, hoy hemos visto algunas estrategias para la depuracion, como siempre estas no son obligatorias sino que son recomendaciones para mejorar nuestra experiencia con los codigos. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
