Habr谩s notado que la mayor铆a de los errores que se producen en tu c贸digo nunca son detectados de manera sencilla ni resultan evidentes. La raz贸n es bastante simple y obvia: los bugs no suelen aparecer en el happy path. No es el lugar habitual donde los desarrolladores ponemos los bugs. 聽Somos un poco m谩s rebuscados y preferimos introducir los errores en situaciones en las que es necesario realizar muchas acciones previas, invocar alguna deidad y de paso esperar alguna conjunci贸n astral. Si fuera por nosotros no estar铆an ah铆, de verdad, pero el caos a veces sea due帽a de nuestros deditos y no podemos parar de cagarla.
La causa de que el grueso de los errores de una aplicaci贸n nunca est茅n en el happy path y que se encuentren tras las pruebas de validaciones manuales es que no somos muy buenos probando nuestro c贸digo, especialmente mediante unit testing. La mayor铆a de las veces nos conformamos con crear los test que cumplen los casos b谩sicos, lo que el usuario va a realizar la mayor铆a de las veces. A veces somos 聽un poco m谩s cuidadosos y revisamos el c贸digo de manera superflua para comprobar que hemos cubierto todos los casos m谩s evidentes que un usuario normal realizara. Esto es una muy mala pr谩ctica que nos va a acarrear a la larga importantes quebraderos de cabeza.
Mientras exista un solo caso que no probado no podemos afirmar que nuestro c贸digo cumple los requerimientos, ni mucho menos asegurar la calidad del c贸digo que entregamos. Basta con que un usuario realice una acci贸n que provoca un error para que las consecuencias puedan ser no solo fatales para la aplicaci贸n sino para los datos del usuario.
Es importante asegurar la calidad pero m谩s importante a煤n es asegurarnos de que el c贸digo que escribimos hace 煤nicamente lo que esperamos que haga. Para ello es imprescindible realizar tantos test como sean necesarios hasta tener la certeza de que entregamos lo que pretendemos. La consecuencia directa de este testing exhaustivo es que ante cualquier modificaci贸n del c贸digo tendremos una base de test sobre la que apoyarnos para saber si las cosas est谩n bien o debemos tomar acciones correctivas.
En el d铆a a d铆a de un desarrollador lo normal es encontrarse continuamente con un not happy path, no es un caso que provoca un error o que no se pueda realizar una acci贸n. Es el caso al que nadie le presta atenci贸n hasta que es demasiado tarde, la excepci贸n que va a provocar que todo tu dise帽o no valga nada puesto que no est谩n contemplando el caso particular y remoto. Y de esto va este blog: de las cosas que al final del d铆a te pueden facilitar evitar y resolver estos not happy paths que acechan donde menos te lo esperas. 聽
Pista: Los IDE actuales tienen herramientas de cobertura de c贸digo para los test que nos pueden dar buenas pistas de que partes del c贸digo estamos probando, pero en ning煤n caso esta es una m茅trica que nos asegure la calidad por si sola.