Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Las pruebas primero

Las pruebas primero

Existen numerosas metodologías de desarrollo de software que invitan a escribir las pruebas primero. Excelentes desarrolladores con mucha experiencia recomiendan esto y sin embargo no es todavía algo que se practique por la mayoría.

¿Es verdad que aporta los beneficios que se prometen?
¿Qué es lo que nos impide hacerlo en nuestro trabajo diario?
¿Es una pérdida de tiempo?
¿Es siquiera posible en proyectos reales con fechas de entrega?

Descubre en esta charla experiencias sobre la aplicación de esta técnica en proyectos reales y decide por tí mismo si deseas darle una oportunidad.

Javier Cervantes

January 29, 2014
Tweet

More Decks by Javier Cervantes

Other Decks in Programming

Transcript

  1. www.sgcampus.com.mx   @sgcampus ¿De que trata esta charla? •  Explicar

    a grandes razgos que es TDD •  Ver los beneficios de utilizar esta técnica
  2. www.sgcampus.com.mx   @sgcampus ¿De que trata esta charla? •  Explicar

    a grandes razgos que es TDD •  Ver los beneficios de utilizar esta técnica •  Entender que se requiere para lograrlo.
  3. www.sgcampus.com.mx   @sgcampus ¿De que trata esta charla? •  Explicar

    a grandes razgos que es TDD •  Ver los beneficios de utilizar esta técnica •  Entender que se requiere para lograrlo. •  Como empezar y que herramientas útiles
  4. www.sgcampus.com.mx   @sgcampus ¿De que trata esta charla? •  Explicar

    a grandes razgos que es TDD •  Ver los beneficios de utilizar esta técnica •  Entender que se requiere para lograrlo. •  Como empezar y que herramientas útiles •  Compartir experiencias en proyectos reales
  5. www.sgcampus.com.mx   @sgcampus De que NO trata •  Explicar la

    una única manera de hacer las cosas •  Encontrar una formula mágica que cura todo
  6. www.sgcampus.com.mx   @sgcampus De que NO trata •  Explicar la

    una única manera de hacer las cosas •  Encontrar una formula mágica que cura todo •  Cómo escribir mejores pruebas
  7. www.sgcampus.com.mx   @sgcampus Que es TDD? Robert C. Martin, lo

    describe con tres reglas: 1.  No está permitido escribir ningún código de producción sin tener una prueba que falle.
  8. www.sgcampus.com.mx   @sgcampus Que es TDD? Robert C. Martin, lo

    describe con tres reglas: 1.  No está permitido escribir ningún código de producción sin tener una prueba que falle. 2.  No está permitido escribir más código de prueba que el necesario para hacer fallar una prueba unitaria (y no compilar es fallar).
  9. www.sgcampus.com.mx   @sgcampus Que es TDD? Robert C. Martin, lo

    describe con tres reglas: 1.  No está permitido escribir ningún código de producción sin tener una prueba que falle. 2.  No está permitido escribir más código de prueba que el necesario para hacer fallar una prueba unitaria (y no compilar es fallar). 3.  No está permitido escribir más código de producción que el necesario para hacer pasar su prueba unitaria.
  10. www.sgcampus.com.mx   @sgcampus Beneficios •  Te ayudan a saber que

    estas haciendo •  Mejorar el diseño de tu código
  11. www.sgcampus.com.mx   @sgcampus Beneficios •  Te ayudan a saber que

    estas haciendo •  Mejorar el diseño de tu código •  Incrementar la confiabilidad de tus pruebas
  12. www.sgcampus.com.mx   @sgcampus Mejorar el diseño del código •  Te

    provee la más rapida retroalimentacion sobre el diseño de tu código
  13. www.sgcampus.com.mx   @sgcampus Mejorar el diseño del código •  Te

    provee la más rapida retroalimentacion sobre el diseño de tu código •  Cada linea de codigo tiene una razón de ser
  14. www.sgcampus.com.mx   @sgcampus Mejorar el diseño del código •  Te

    provee la más rapida retroalimentacion sobre el diseño de tu código •  Cada linea de codigo tiene una razón de ser •  Ayuda a reducir el acoplamiento
  15. www.sgcampus.com.mx   @sgcampus Confiabilidad de pruebas •  Puedes cambiar tu

    codigo sin miedo a que algo se "rompa” •  Tus pruebas son la mejor manera de debugear
  16. www.sgcampus.com.mx   @sgcampus Confiabilidad de pruebas •  Puedes cambiar tu

    codigo sin miedo a que algo se "rompa” •  Tus pruebas son la mejor manera de debugear •  La confianza se traduce en menos sorpresas
  17. www.sgcampus.com.mx   @sgcampus Que se requiere •  Conocimientos de diseño

    de software y OO •  Saber como escribir buenas pruebas
  18. www.sgcampus.com.mx   @sgcampus Que se requiere •  Conocimientos de diseño

    de software y OO •  Saber como escribir buenas pruebas •  Cambiar de velocidad/altura según contexto
  19. www.sgcampus.com.mx   @sgcampus Que se requiere •  Conocimientos de diseño

    de software y OO •  Saber como escribir buenas pruebas •  Cambiar de velocidad/altura según contexto •  Disciplina y paciencia
  20. www.sgcampus.com.mx   @sgcampus Como lo puedes hacer? •  Practicando! • 

    Empieza de afuera hacia adentro •  Sigue las reglas y no olvides el 3er paso
  21. www.sgcampus.com.mx   @sgcampus Como lo puedes hacer? •  Practicando! • 

    Empieza de afuera hacia adentro •  Sigue las reglas y no olvides el 3er paso •  Prueba con un componente o clase
  22. www.sgcampus.com.mx   @sgcampus Recursos •  Test Driven Development (by Example)

    http://www.amazon.es/Test-Driven-Development-By-Example/dp/0321146530
  23. www.sgcampus.com.mx   @sgcampus Recursos •  Test Driven Development (by Example)

    http://www.amazon.es/Test-Driven-Development-By-Example/dp/0321146530 •  Practical Object Oriented Programming Design in Ruby http://www.poodr.com/
  24. www.sgcampus.com.mx   @sgcampus Recursos •  Test Driven Development (by Example)

    http://www.amazon.es/Test-Driven-Development-By-Example/dp/0321146530 •  Practical Object Oriented Programming Design in Ruby http://www.poodr.com/ •  Clean Coders •  http://cleancoders.com/