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

Documentos relacionados