Así es como difiere de TDD:
* tdd: Comienza con una comprensión clara de los requisitos y utiliza pruebas para guiar la implementación de una solución conocida. Las pruebas están diseñadas para verificar que el código cumpla con las especificaciones predefinidas.
* tlc: Comienza con una comprensión menos clara del problema. Las pruebas se escriben para explorar el espacio de problemas, descubrir los requisitos y aprender a resolver el problema de manera efectiva. Las pruebas actúan como una forma de experimentación y circuito de retroalimentación. El enfoque se centra menos en las "pruebas" en el sentido tradicional y más en el "aprendizaje".
En esencia, TLC es iterativo y exploratorio. Puede escribir una prueba que espera fallar, descubriendo un comportamiento inesperado o los requisitos faltantes en el camino. Este proceso lleva a una comprensión más profunda del problema e informa el diseño de la solución.
TLC es particularmente útil para:
* Problemas complejos o mal entendidos: Donde los requisitos son vagos o evolucionados.
* Aprendiendo una nueva tecnología o dominio: Las pruebas ayudan a comprender las complejidades del sistema que se está probando.
* Prueba exploratoria: Cuando desee descubrir un comportamiento inesperado o casos de borde.
Si bien TLC comparte similitudes con las pruebas exploratorias, está más estructurado e implica escribir código (aunque a menudo pequeño, código desechable) para probar o refutar hipótesis representadas por las pruebas. Enfatiza el aspecto * aprendizaje * de manera más explícita.