Test Driven Development - Universidad de los Andes
Transcripción
Test Driven Development - Universidad de los Andes
Test Driven Development Departamento de Sistemas y Computación Universidad de los Andes, Bogotá Referencias Introduction to Test Driven Development (TDD). Scott Ambler. http://www.agiledata.org/essays/tdd.html “Programming is like exploring a dark house. You go from room to room to room. Writing the test is like turning on the light.” K. Beck Orígenes Kent Beck introdujo en eXtreme Programming XP en el 2000 dos prácticas: Primero hacer la prueba y luego el código Segundo (refactoring) eliminar duplicados, mejorar y embellecer el código TDD = TFD + Refactoring Implicaciones Ud. escribe sus propias pruebas El diseño es progresivo y va mejorando con el refactoring Su ambiente de desarrollo debe proveer respuestas rápidas a pequeños cambios Su diseño debe ser un conjunto de componentes altamente cohesivos y muy poco acoplados para que sus pruebas sean fáciles de realizar. The Steps of test-first development (TFD). Red/green/refactor. The TDDs mantra. Red— escribir la prueba que no va a funcionar al principio Green— escribir el código y ejecutar la prueba hasta OK Refactor— eliminar el trabajo duplicado Implicaciones (2) Si la densidad de defectos puede ser reducida se puede hacer un cambio de trabajo reactivo a proactivo Si el número de “sorpresas desagradables” puede ser reducido, el project manager puede estimar más adecuadamente el tiempo de desarrollo Motivación: El miedo Test-driven development (TDD) es una forma de disminuir el miedo del programador o de hacer programadores con más coraje! Taller: El ejemplo del libro de Beck Ilustra: 1. Primero se entiende el requerimiento 2. Se diseña cómo se va a probar 3. Se escribe la prueba (esta debe fallar porque el código que implementa la funcionalidad aun no existe) 4. Se escribe el código hasta que pase la prueba 5. Se revisa y mejora el código Money example 1. Necesitamos poder adicionar cantidades en dos monedas diferentes y convertir el resultado a una de las monedas dadas las reglas de conversión 2. Multiplicar una cantidad (el precio de la acción) por un número (el número de acciones) · http://junit.sourceforge.net/doc/testinfected/testing.htm