como hacer tdd y no morir en el intento

Post on 16-Jan-2017

1.957 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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!

info@10pines.comwww.10Pines.com

twitter: @10Pines

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

top related