Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Como hacer tdd y no morir en el intento

2,509 views

Published on

Presentacion usada en Agiles 2015 sobre algunos conceptos y tips para hacer TDD

Published in: Software
  • @Rene Enriquez Que tal Rene, el objetivo es escribir los tests y hacer el diseño de la aplicacion de tal manera que mientras desarrollas no uses la base de datos y luego cuando hagas la integracion ahi se usen los mismos test usando la base de datos, con tan solo cambiar de ambiente. Hacer esto no es imposible, depende un pococ de la tecnologia que uses pero es una gran ventaja... lamentablemente este no es el mejor medio para mostrarlo, pero si te interesa avisame.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Muy interesante presentación, tiene informacion valiosa. Solo quería hacer una pregunta, ¿No usarás Bases de Datos relacionales mientras realizas TDD?, Entonces, como se debe validar la funcionalidad relacionada a persistencia de información? Gracias por tu respuesta.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Como hacer tdd y no morir en el intento

  1. 1. agile software development & services Cómo hacer TDD y no morir en el intento Agiles 2015 Hernán Wilkinson Twitter: @HernanWilkinson Blog: bog.10pines.com www.10pines.com
  2. 2. DISCLAIMER
  3. 3. Qué es TDD?
  4. 4. Es TDD esto?
  5. 5. No! Así es cómo se hace TDD Cuál es la esencia de TDD?
  6. 6. Qué es TDD? Es una Técnica de Aprendizaje  Iterativa e Incremental Constructivista Basada en Feedback Inmediato Que recuerda todo lo aprendido Y permite asegurarnos de no haber “desaprendido” Incluye análisis, diseño, programación y testing
  7. 7. Software: Modelo Computable de un Dominio de Problema de la Realidad Desarrollo de Software: Proceso de Aprendizaje (Adquisición y Representación de Conoc.)
  8. 8. ¿Cómo se hace TDD? 1) Escribir un test - Debe ser el más sencillo que se nos ocurra - Debe fallar al correrlo 2) Correr todos los tests - Si hay errores, implementar lo mínimo necesario para que pasen y GOTO 2 3) Reflexiono - ¿Se puede mejorar el código? - Sí -> Refactorizar. GOTO 2 - No -> GOTO 1
  9. 9. Ejemplo ▶ Modelar un Calendario de días feriados al que se le pueda preguntar si una fecha es feriado o no ▶ Se pueda indicar qué días son feriados de la siguiente manera: – Por medio de un día de la semana, ej. Sábado – Por medio de un día de un mes, ej. 25 de Diciembre – Por medio de un día particular, ej. 20/4/2012
  10. 10. Los 10 mandamientos técnicos de TDD
  11. 11. Escribirás el test primero
  12. 12. Siempre resolverás el caso más sencillo primero
  13. 13. Asertarás en tus tests (un test sin assert no es un test)
  14. 14. No escribirás más de un test a la vez
  15. 15. No creerás que TDD es acerca de Unit Testing únicamante
  16. 16. Nombrarás tus Test según el QUE y no según el COMO
  17. 17. Verificarás un único caso funcional por test
  18. 18. No testearás lo mismo más de una vez
  19. 19. Mantendrás tus test “limpios”, ya que son un sistema más
  20. 20. No empezarás testeando interfaces, empezarás testeando la lógica de negocio
  21. 21. No usarás Bases de Datos relacionales mientras realizas TDD
  22. 22. No realizarás TDD usando sistemas externos
  23. 23. No “mockearas” a tu esposa!
  24. 24. Entenderás que TDD no implica buen diseño
  25. 25. No te preocuparás por performance al principio
  26. 26. Amarás testear tanto como programar!
  27. 27. Practica, Practica, Practica
  28. 28. Preguntas?
  29. 29. agile software development & services Muchas gracias! info@10pines.com www.10Pines.com twitter: @10Pines Argentina Tel.: +54 (11) 4780-2460 Alem 693, 5B Buenos Aires

×