El desarrollo basado en pruebas (TDD) es un enfoque para el diseño de software que se basa en los desafíos al código de producción para proceder en pequeños pasos para desarrollar la funcionalidad. Esto puede parecer contradictorio para las personas que recién están comenzando a aprender, pero ofrece algunas ventajas, incluido un desarrollo más limpio. También puede ser más rápido utilizar este método una vez que la gente se haya acostumbrado a él, dependiendo de la naturaleza del proyecto. Los programadores pueden usar una amplia variedad de lenguajes de programación en el desarrollo basado en pruebas y pueden aplicarlo a software nuevo, mejoras de versión o correcciones a programas existentes.
En este enfoque, el programador comienza escribiendo una prueba que debería fallar porque el código de producción no puede ejecutar un comando o consulta específicos. Usando la falla como base, el programador puede desarrollar algunas líneas de código para agregar y ejecutar la prueba nuevamente. Si falla, hay algo mal que debe depurarse antes de que el programador pueda continuar. Una vez que pasa, el programador es consciente de que la prueba ha definido y guiado específicamente la creación de una función, y puede pasar a la siguiente función.
En lugar de producir grandes volúmenes de código funcional que posiblemente deban examinarse más adelante en busca de errores y fallas, los desarrolladores se mueven lenta y deliberadamente. Construyen el programa con un código extremadamente ajustado porque solo escriben precisamente lo que necesitan para funciones específicas. Con el tiempo, el código puede crecer bastante, pero cada línea corresponde a una función o característica específica. La incidencia de errores con el desarrollo impulsado por pruebas también debe reducirse porque las personas depuran de manera efectiva a medida que avanzan probando una y otra vez.
Cada una de las pruebas escritas se puede volver a utilizar en cualquier momento. El programador puede ejecutar todos y cada uno de ellos para confirmar que todo el programa sigue funcionando como debería. Si no es así, el programador sabe que una línea reciente de código es un problema y puede retroceder para evaluarla y solucionar el problema. La configuración de desarrollo impulsada por pruebas difiere de una situación en la que alguien podría tener que examinar numerosas líneas de código para encontrar el error, lo que puede consumir una cantidad considerable de tiempo.
En esencia, este enfoque implica codificar cómo las personas quieren que se comporte el software, basándose en pruebas específicas que administran a medida que avanzan. Si bien el desarrollo impulsado por pruebas puede parecer lento y difícil, en realidad puede ser muy eficiente. Los desarrolladores expertos no necesitan más de unos minutos para cada ronda de pruebas y codificación. El enfoque algo inverso también puede ayudarles a repensar estrategias y herramientas que les permitan trabajar de formas nuevas y, a veces, más eficaces.