Quiero aprender (y dominar) TDD. ¿Cuáles son los mejores?
- libros
- sitios web
- videos
- lista de ejercicios
- palabras personales de sabiduría
para aprender, apreciar y usar TDD?
Quiero aprender (y dominar) TDD. ¿Cuáles son los mejores?
para aprender, apreciar y usar TDD?
Respuestas:
Personalmente, descubrí que leer un ensayo JUnit o dos enfatizando que "usted escribe la prueba antes del código" fue suficiente para comenzar.
La parte más importante para aprender esta tecnología es escribir MUCHO código basado en pruebas , porque debes cambiar algunas de las formas más básicas de pensar en escribir código. Cosas como:
El mejor lugar para comenzar con poco, es con sus rutinas de servicios públicos. La próxima vez que necesite uno, simplemente diseñe eso con pruebas primero, escriba muchas pruebas que cubran todos sus casos de uso oficiales (incluido lo que debería suceder con valores nulos pasados, etc.), y cuando se implementen todos los casos de uso, debería poder usar directamente en su código, y tenga la seguridad de que funciona como se espera.
También es mi experiencia que las buenas pruebas pueden hacer un trabajo adicional como documentación, porque tiene un código muy conciso que dice exactamente cómo se comporta el código en diversas situaciones, lo que puede demostrarse fácilmente que es correcto (barra verde). Con comentarios cuidadosos no lo haces mucho mejor que eso.
Para Java, la versión 4 de jUnit es realmente agradable.
En mi opinión, TDD se trata más de hacer que el código sea comprobable que de escribir pruebas.
Claro que puede escribir una prueba antes de codificar, pero la razón por la que se escribe la prueba es para que pueda codificar, lo que no le impedirá escribir código que es difícil de probar.
Eche un vistazo a esto para tener una mejor idea de lo que quiero decir: mi teoría unificada de los errores
Si está interesado en el concepto y desea obtener más información, simplemente comente, y lo guiaré en la dirección de una presentación grabada sobre el tema de Google.
ACTUALIZAR:
Cómo escribir código limpio y comprobable
Miško Hevery presentando (por GoogleTechTalks ) en Google en Nueva York y patrocinado por el grupo de Ingeniería de Productividad de Google
Además de algunos de los libros ya mencionados, puedo recomendar Crecer software orientado a objetos guiado por pruebas . Todavía no he terminado de leerlo, pero es una lectura digna, que incluye la historia de un proyecto TDD completo y realista, no solo ejemplos de código simplificado.
He leído dos libros:
Desarrollo guiado por pruebas: por ejemplo, por Kent Beck y
Marcos de prueba de la unidad de Paul Hamil
El libro de Beck está bien considerado, pero no comencé con las pruebas unitarias hasta que leí "Marcos de prueba unitaria". Hago algo de TDD, pero también agrego pruebas al código anterior que tengo que mantener (cuando puedo).
Editar: Además, una vez que lo maneje, le recomiendo usarlo en un proyecto actual de inmediato. Para mí fue cuando ocurrió el verdadero aprendizaje, y creo que el libro "Unit Test Framework" fue un mejor libro de referencia para este propósito. (Estaba usando nunit con C #).
Si bien no se trata principalmente de TDD (aunque lo toca, así como el diseño para la comprobabilidad), The Art of Unit Testing es un libro que recomendaría porque le enseña a escribir buenas pruebas.
Más específicamente, enseña cómo crear pruebas confiables, mantenibles y legibles. Creo que esta es la sección más importante del libro, aparte de quizás lo básico sobre pruebas unitarias y marcos de aislamiento. Es obvio que si las pruebas unitarias se convierten en un punto de dolor o agregan fricción al trabajo de un desarrollador, entonces cualquier éxito o beneficio de ellas será limitado. Si uno invierte el tiempo y el esfuerzo para crear las pruebas, entonces (s) debería ser capaz de obtener el mayor rendimiento de esa inversión.