2. Software
Problema de negocio
Software
Lenguaje natural
Lenguaje de
•Ambiguo
programación
•Contextual
•Preciso
•Tácito
•Formal
•Explícito
3. Tolerancia al cambio
Negocio Software
En constante evolución Debe estar preparado para
absorber los cambios
Clientes
Proveedores
cambios
Productos
sustitutos
Competidores
4. Problemas
▶ Como podemos facilitar el proceso de aprendizaje
para comprender el dominio correctamente?
▶ Como podemos mantener el costo del cambio
acotado para adaptar el software rápidamente?
5. Los 3 pasos de TDD
1º - Escribir un 2º - Hacer
tests de unidad que pase el
que falle test
3º - Refactorizar
6. Ejercicio
▶ Aplicación para calcular el sueldo de los
empleados
▶ Los empleados cobran el doble si trabajan en días
no laborables
▶ Problema: Como sabemos si un día es o no
laborable?
8. Conclusiones
▶ No es solo una herramienta de testing!
▶ Diseño y Aprendizaje continuos
▶ Mayor cobertura del código
▶ Seguridad para introducir cambios
▶ Diseños más desacoplados
▶ Documentación de la funcionalidad
9. “Software features that can’t be
demonstrated by automated tests
simply don’t exist”
-Kent Beck
“Las funcionalidades del Software que no
pueden ser demostradas por un test
automatizado, simplemente no existen”
10. Bibliografía recomendada
Test-Driven
xUnit Test Patterns.
Development by
G. Meszaros, 2007.
Example.
K. Beck, 2002.
Growing Object-
Refactoring Oriented Software.
M. Fowler et al., 1999. S. Freeman, N. Pryce,
2009.
11. Muchas gracias!
info@10pines.com Argentina
www.10Pines.com
Paraguay 523 Piso 7 Of: ‘N’
twitter: @10Pines Ciudad Autónoma de Buenos Aires
agile software development & services