1 / 18

Test Driven Development

Test Driven Development. Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires. Agenda. Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas. Agenda. Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas. Qué es TDD?.

aman
Download Presentation

Test Driven Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires

  2. Agenda • Qué es TDD? • Diseño Simple • Refactoring • El proceso de TDD • Ejemplo • Herramientas

  3. Agenda • Qué es TDD? • Diseño Simple • Refactoring • El proceso de TDD • Ejemplo • Herramientas

  4. 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.

  5. 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.

  6. Agenda • Qué es TDD? • Diseño Simple • Refactoring • El proceso de TDD • Ejemplo • Herramientas

  7. 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.

  8. 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.

  9. Agenda • Qué es TDD? • Diseño Simple • Refactoring • El proceso de TDD • Ejemplo • Herramientas

  10. 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.

  11. Agenda • Qué es TDD? • Diseño Simple • Refactoring • El proceso de TDD • Ejemplo • Herramientas

  12. 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.

  13. 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.

  14. Agenda • Qué es TDD? • Diseño Simple • Refactoring • El proceso de TDD • Ejemplo • Herramientas

  15. Ejemplo

  16. Agenda • Qué es TDD? • Diseño Simple • Refactoring • El proceso de TDD • Ejemplo • Herramientas

  17. Herramientas • xUnit (JUnit, NUnit, DbUnit, HttpUnit, etc.) • Easy Mock • JMock • TestNG • Selenium

More Related