test driven development técnicas de diseño facultad de ingeniería universidad de buenos aires
TRANSCRIPT
![Page 1: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/1.jpg)
Test Driven Development
Técnicas de DiseñoFacultad de Ingeniería
Universidad de Buenos Aires
![Page 2: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/2.jpg)
Agenda
Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas
![Page 3: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/3.jpg)
Agenda
Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas
![Page 4: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/4.jpg)
Qué es TDD?
Proceso iterativo en el cual el desarrollo está guiado por los test.
Los tests representan los requerimientos que nuestro código busca satisfacer.
Primero escribimos los test que expresan los requerimientos a cumplir luego desarrollamos para cumplir con dichos requerimientos.
![Page 5: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/5.jpg)
Qué es TDD?
Dos reglas importantes:
Nunca escribir una línea de código a menos que tengamos un test fallando. Los tests representan los requerimientos que el código debe satisfacer, si no hay requerimiento es porque no hay nada que implementar.
Eliminar duplicación de código.
![Page 6: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/6.jpg)
Agenda
Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas
![Page 7: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/7.jpg)
Diseño Simple
Nuestro código debe satisfacer los requerimientos (tests) ni menos ni más.
Si no escribimos el código necesario para satisfacer los requerimientos no estamos cumpliendo con lo solicitado, si escribimos de más agregamos complejidad innecesaria que luego hay que mantener.
![Page 8: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/8.jpg)
Diseño Simple
Guías para lograr ni menos ni más:– El código es apropiado para quien está dirigido.– El código pasa todos los tests.– El código comunica todo lo necesario.– El código tiene la menor cantidad de clases.– El código tiene la menor cantidad de métodos.
![Page 9: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/9.jpg)
Agenda
Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas
![Page 10: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/10.jpg)
Refactoring
Proceso que permite mejorar el código existente sin cambiar su funcionalidad externa.
Esencial para TDD porque es necesario refinar el diseño del código escrito a medida que agregamos tests.
![Page 11: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/11.jpg)
Agenda
Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas
![Page 12: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/12.jpg)
El proceso de TDD
Armar una lista de tests. Esto permite describir los requerimientos de forma no ambigua e indicar el scope de los mismos.
Red Green Refactor El proceso se debe realizar en pasos pequeños lo
que permite determinar rápidamente donde cometimos un error en caso de hacerlo.
![Page 13: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/13.jpg)
El proceso de TDD
Escribir el código asociado a un test. Compilar el código asociado al test. (no compila
porque aún no se ha implementado) Implementar sólo lo suficiente para que el código
escrito compile. Correr el test y ver si falla. Implementar sólo lo suficiente para que el test pase. Correr el test y ver que efectivamente pasa. Refactorizar para aclarar y eliminar duplicación. Repetir con todos los tests de la lista.
![Page 14: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/14.jpg)
![Page 15: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/15.jpg)
Agenda
Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas
![Page 16: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/16.jpg)
Ejemplo
![Page 17: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/17.jpg)
Agenda
Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas
![Page 18: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/18.jpg)
Herramientas
xUnit (JUnit, NUnit, DbUnit, HttpUnit, etc.) Easy Mock JMock TestNG Selenium
![Page 19: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/19.jpg)
Preguntas ?
![Page 20: Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires](https://reader036.vdocuments.co/reader036/viewer/2022083010/5665b4331a28abb57c8fea81/html5/thumbnails/20.jpg)
Gracias!