29
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

Como hacer tdd y no morir en el intento

Embed Size (px)

Citation preview

Page 1: Como hacer tdd y no morir en el intento

agile software development & services

Cómo hacer TDD y no morir en el intento

Agiles 2015Hernán Wilkinson

Twitter: @HernanWilkinsonBlog: bog.10pines.com

www.10pines.com

Page 2: Como hacer tdd y no morir en el intento

DISCLAIMER

Page 3: Como hacer tdd y no morir en el intento

Qué es TDD?

Page 4: Como hacer tdd y no morir en el intento

Es TDD esto?

Page 5: Como hacer tdd y no morir en el intento

No! Así es cómo se hace TDD

Cuál es la esencia de TDD?

Page 6: Como hacer tdd y no morir en el intento

Qué es TDD?Es una Técnica de Aprendizaje

Iterativa e IncrementalConstructivista

Basada en Feedback InmediatoQue recuerda todo lo aprendidoY permite asegurarnos de no haber

“desaprendido”

Incluye análisis, diseño, programación y testing

Page 7: Como hacer tdd y no morir en el intento

Software:Modelo Computable de un Dominio

de Problema de la Realidad

Desarrollo de Software:Proceso de Aprendizaje

(Adquisición y Representación de Conoc.)

Page 8: Como hacer tdd y no morir en el intento

¿Cómo se hace TDD?

1) Escribir un test - Debe ser el más sencillo que se nos ocurra

- Debe fallar al correrlo2) 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

Page 9: Como hacer tdd y no morir en el intento

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

Page 10: Como hacer tdd y no morir en el intento

Los 10 mandamientos técnicos de TDD

Page 11: Como hacer tdd y no morir en el intento

Escribirás el test primero

Page 12: Como hacer tdd y no morir en el intento

Siempre resolverás el caso más sencillo primero

Page 13: Como hacer tdd y no morir en el intento

Asertarás en tus tests(un test sin assert no es un test)

Page 14: Como hacer tdd y no morir en el intento

No escribirás más de un test a la vez

Page 15: Como hacer tdd y no morir en el intento

No creerás que TDD es acerca de Unit Testing únicamante

Page 16: Como hacer tdd y no morir en el intento

Nombrarás tus Test según el QUE y no según el COMO

Page 17: Como hacer tdd y no morir en el intento

Verificarás un único caso funcional por test

Page 18: Como hacer tdd y no morir en el intento

No testearás lo mismo más de una vez

Page 19: Como hacer tdd y no morir en el intento

Mantendrás tus test “limpios”, ya que son un sistema más

Page 20: Como hacer tdd y no morir en el intento

No empezarás testeando interfaces, empezarás testeando la lógica de

negocio

Page 21: Como hacer tdd y no morir en el intento

No usarás Bases de Datos relacionales mientras realizas TDD

Page 22: Como hacer tdd y no morir en el intento

No realizarás TDD usando sistemas externos

Page 23: Como hacer tdd y no morir en el intento

No “mockearas” a tu esposa!

Page 24: Como hacer tdd y no morir en el intento

Entenderás que TDD no implica buen diseño

Page 25: Como hacer tdd y no morir en el intento

No te preocuparás por performance al principio

Page 26: Como hacer tdd y no morir en el intento

Amarás testear tanto como programar!

Page 27: Como hacer tdd y no morir en el intento

Practica, Practica, Practica

Page 28: Como hacer tdd y no morir en el intento

Preguntas?

Page 29: Como hacer tdd y no morir en el intento

agile software development & services

Muchas gracias!

[email protected]

twitter: @10Pines

ArgentinaTel.: +54 (11) 4780-2460Alem 693, 5BBuenos Aires