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
DISCLAIMER
Qué es TDD?
Es TDD esto?
No! Así es cómo se hace TDD
Cuál es la esencia de TDD?
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
Software:Modelo Computable de un Dominio
de Problema de la Realidad
Desarrollo de Software:Proceso de Aprendizaje
(Adquisición y Representación de Conoc.)
¿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
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
Los 10 mandamientos técnicos de TDD
Escribirás el test primero
Siempre resolverás el caso más sencillo primero
Asertarás en tus tests(un test sin assert no es un test)
No escribirás más de un test a la vez
No creerás que TDD es acerca de Unit Testing únicamante
Nombrarás tus Test según el QUE y no según el COMO
Verificarás un único caso funcional por test
No testearás lo mismo más de una vez
Mantendrás tus test “limpios”, ya que son un sistema más
No empezarás testeando interfaces, empezarás testeando la lógica de
negocio
No usarás Bases de Datos relacionales mientras realizas TDD
No realizarás TDD usando sistemas externos
No “mockearas” a tu esposa!
Entenderás que TDD no implica buen diseño
No te preocuparás por performance al principio
Amarás testear tanto como programar!
Practica, Practica, Practica
Preguntas?
agile software development & services
Muchas gracias!
twitter: @10Pines
ArgentinaTel.: +54 (11) 4780-2460Alem 693, 5BBuenos Aires
Top Related