20071207

| Paso 1: Reproduce el error. - Esto puede parecer muy básico, pero para entender y en consecuencia ser capáz de corregir el error debes poder reproducirlo, entendiendo cuáles son las variables que están involucradas, en qué condiciones se lleva a cabo y entonces será posible empezar a trabajar en la depuración de errores de tu aplicación. Es sorprendente cuántas veces nos podemos encontrar con ingenieros de pruebas, desarrolladores e incluso arquitectos que te platican acerca de un bug que les salió pero que ya no pueden reproducir y más sorprendente aún es cuántas aplicaciones salen a producción con estos errores que no se corrigieron simplemente porque no era posible reproducirlos en la fase de desarrollo y pruebas. Una situación común es que funcione bien en tu máquina de desarrollo pero en en ambiente de pruebas el software no funcione correctamente. (¿Cuántos ingenieros se necesitan para determinar que la URL de su aplicación ASP.NET apuntaba a http://localhost/?). | 
| Paso 2: Describe el error. - Una vez que haz logrado reproducir el error es importante documentarlo adecuadamente, si no pudieras corregirlo en éste momento al menos puedes ayudar a que otro miembro del equipo pueda entender de que se trata el error para que posteriormente pueda trabajar en él, mientras mejor describas el error es más sencillo que puedas depurarlo de forma adecuada para corregirlo. Es también importante este tipo de documentación para efectos de errores que pudieran repetirse en futuras aplicaciones como guía para trabajar con patrones y antipatrones de diseño que eviten las malas prácticas. | 
| Paso 3: Siempre asume que el error es tuyo. - Primero échale una mirada a tu código, la mayor parte de las veces puedes gastar demasiado tiempo analizando el código de otros cuando en realidad el problema se encuentra en el órden de las instrucciones que tu mismo escribiste o en la forma de hacer un llamado a otra clase o interfase desde tu propio código, una vez descartado esto puedes empezar a revisar lo que pasa en otras partes de la aplicación. | 
| Paso 4: Divide y vencerás. - Trata distintos caminos, lee el código, trata de re-programar cada una de las acciones que el código realiza, es más fácil que dividiendo las funciones y subfunciones encuentres el error en tu código que si simplemente te pones a revisarlo como un todo, sobre todo toma en cuenta la regla del 80-20: el 80% de los errores es causado por el 20% de los elementos que intervienen en un proceso. | 
| Paso 5: Piensa en forma creativa. - ¿El error puede ser causado por algo que se te pasó? ¿Tienen algo que ver las versiones de tus aplicaciones totalmente actualizadas en la máquina de desarrollo contra el servidor de pruebas que nadie actualiza? ¿Qué tanto de tu código está "hardcodeado" y podría no corresponder al ambiente de pruebas? ¿Se te ocurrió poner una condición AND en un IF en lugar de anidarlas? ¿Te faltó un ELSE? | 
| Paso 6: Utiliza herramientas. - Hay muchas herramientas para ayudarte a depurar una vez que llegas a este paso, desde el mismo Visual Studio hasta las herramientas de IBM-Rational, Compuware y Quest, pasando por NUnit, TestDriven.NET, FxCop, .NET Memory Profiler, y CLRProfiler. | 
| Paso 7: Inicia la depuración pesada. - Cuando empiezas a utilizar herramientas ya debes tener una idea del tipo de error que estás buscando, localizarlo y acabar con él. La diferencia entre esta depuración con la depuración ligera es que al tener ya una idea de lo que estás buscando y auxiliarte con una herramienta adecuada ya no estás sólo rastreando un error a ciegas, puedes ver valores de entrada y salida y en general es en este punto donde tus hipótesis de lo que está fallando se desmienten o se corroboran, ayudándote a programar una solución adecuada. | 
| Paso 8: Verifica que el error haya sido corregido. - Antes de decir: "Esto ya quedó" lo más correcto es como todo en la ingeniería: revisa que realmente haya quedado, Muchas veces la corrección de un bug te hace darte cuenta de otros más que estaban por ahí escondidos, vuelve al paso 1 y si todo ha quedado entonces ahora sí dale proteger a tu control de código fuente. | 
| Paso 9: Aprende y comparte. - Platica el error y la solución con el equipo, es la mejor manera de que ellos compartan contigo otros conocimientos que vayan adquiriendo, termina la documentación del error con la solución encontrada, siempre es bueno terminar la depuración de tu código de esta manera para mejorar la forma en la que vas desarrollando tu código y el del resto del equipo. |
Etiquetas: Administración de proyectos », Automatización, Buenas prácticas, Fiabilidad y manejabilidad », Hacking, Herramientas, Pruebas de software », Team System »
Ciclo de vida de la depuración de aplicaciones
Escrito por Alfonso Lara Ramos @ 22:00  
| | | | | | | | | | | | 
Contenidos relacionados: Google, Live Search, Tafiti, Yahoo
|