SlideShare a Scribd company logo
1 of 11
Download to read offline
Emilio Gutter
       egutter@10pines.com
              twitter: @egutter


agile software development & services
Software


Problema de negocio
                      Software
Lenguaje natural
                      Lenguaje de
•Ambiguo
                      programación
•Contextual
                      •Preciso
•Tácito
                      •Formal
                      •Explícito
Tolerancia al cambio


  Negocio                                         Software
 En constante evolución             Debe estar preparado para
                                         absorber los cambios
     Clientes



Proveedores
                          cambios


 Productos
 sustitutos


  Competidores
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?
Los 3 pasos de TDD




 1º - Escribir un                 2º - Hacer
 tests de unidad                  que pase el
     que falle                        test


              3º - Refactorizar
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?
Características principales


▶   Expresivos y simples
▶   Auto-verificables
▶   Rápidos
▶   Repetibles
▶   Independientes
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
“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”
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.
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

More Related Content

Similar to Scrum Bolivia Day - Introducción a TDD

ing. de software
ing. de softwareing. de software
ing. de softwareellizabp_22
 
Faces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XPFaces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XPdanielocaa12
 
Estrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar softwareEstrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar softwareDomingo Suarez Torres
 
Programación extrema
Programación extremaProgramación extrema
Programación extremaBrandon Betto
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudEliud Cortes
 
Gestion Calidad Software
Gestion Calidad Software Gestion Calidad Software
Gestion Calidad Software Johan Prevot R
 
La Práctica : Una visión general
La Práctica : Una visión generalLa Práctica : Una visión general
La Práctica : Una visión generalCinthia Pulla
 
La Práctica : Una visión general
La Práctica : Una visión generalLa Práctica : Una visión general
La Práctica : Una visión generalguest87d127
 
Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprogramingestudiante
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Cesar Acosta
 
presJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptx
presJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptx
presJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptxChri35
 
Dispositivos moviles - Control Plus +
Dispositivos moviles - Control Plus +Dispositivos moviles - Control Plus +
Dispositivos moviles - Control Plus +renecamachom
 

Similar to Scrum Bolivia Day - Introducción a TDD (20)

ing. de software
ing. de softwareing. de software
ing. de software
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
 
Faces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XPFaces y Sub Faces de la Metodologia XP
Faces y Sub Faces de la Metodologia XP
 
Estrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar softwareEstrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar software
 
Programación extrema
Programación extremaProgramación extrema
Programación extrema
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Metodos agiles 4
Metodos agiles 4Metodos agiles 4
Metodos agiles 4
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
 
Gestion Calidad Software
Gestion Calidad Software Gestion Calidad Software
Gestion Calidad Software
 
La Práctica : Una visión general
La Práctica : Una visión generalLa Práctica : Una visión general
La Práctica : Una visión general
 
La Práctica : Una visión general
La Práctica : Una visión generalLa Práctica : Una visión general
La Práctica : Una visión general
 
Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprograming
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)
 
Introducción a Técnicas Agiles y Scrum : Dia 1
Introducción a Técnicas Agiles y Scrum  : Dia 1Introducción a Técnicas Agiles y Scrum  : Dia 1
Introducción a Técnicas Agiles y Scrum : Dia 1
 
presJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptx
presJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptx
presJ - 1.pptx presJ - 1.pptx presJ - 1.pptxpresJ - 1.pptx presJ - 1.pptx
 
ROLES.pdf
ROLES.pdfROLES.pdf
ROLES.pdf
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Programacion Extrema
Programacion ExtremaProgramacion Extrema
Programacion Extrema
 
Dispositivos moviles - Control Plus +
Dispositivos moviles - Control Plus +Dispositivos moviles - Control Plus +
Dispositivos moviles - Control Plus +
 

Scrum Bolivia Day - Introducción a TDD

  • 1. Emilio Gutter egutter@10pines.com twitter: @egutter agile software development & services
  • 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?
  • 7. Características principales ▶ Expresivos y simples ▶ Auto-verificables ▶ Rápidos ▶ Repetibles ▶ Independientes
  • 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