Como hacer tdd y no morir en el intento
-
Upload
hernan-wilkinson -
Category
Software
-
view
1.957 -
download
2
Transcript of Como hacer tdd y no morir en el intento
![Page 1: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/1.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/2.jpg)
DISCLAIMER
![Page 3: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/3.jpg)
Qué es TDD?
![Page 4: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/4.jpg)
Es TDD esto?
![Page 5: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/8.jpg)
¿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](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/10.jpg)
Los 10 mandamientos técnicos de TDD
![Page 11: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/11.jpg)
Escribirás el test primero
![Page 12: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/12.jpg)
Siempre resolverás el caso más sencillo primero
![Page 13: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/13.jpg)
Asertarás en tus tests(un test sin assert no es un test)
![Page 14: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/14.jpg)
No escribirás más de un test a la vez
![Page 15: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/15.jpg)
No creerás que TDD es acerca de Unit Testing únicamante
![Page 16: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/17.jpg)
Verificarás un único caso funcional por test
![Page 18: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/18.jpg)
No testearás lo mismo más de una vez
![Page 19: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/19.jpg)
Mantendrás tus test “limpios”, ya que son un sistema más
![Page 20: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/20.jpg)
No empezarás testeando interfaces, empezarás testeando la lógica de
negocio
![Page 21: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/21.jpg)
No usarás Bases de Datos relacionales mientras realizas TDD
![Page 22: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/22.jpg)
No realizarás TDD usando sistemas externos
![Page 23: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/23.jpg)
No “mockearas” a tu esposa!
![Page 24: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/24.jpg)
Entenderás que TDD no implica buen diseño
![Page 25: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/25.jpg)
No te preocuparás por performance al principio
![Page 26: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/26.jpg)
Amarás testear tanto como programar!
![Page 27: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/27.jpg)
Practica, Practica, Practica
![Page 28: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/28.jpg)
Preguntas?
![Page 29: Como hacer tdd y no morir en el intento](https://reader035.fdocuments.net/reader035/viewer/2022062302/587bb05c1a28abb8258b459f/html5/thumbnails/29.jpg)
agile software development & services
Muchas gracias!
twitter: @10Pines
ArgentinaTel.: +54 (11) 4780-2460Alem 693, 5BBuenos Aires