SlideShare una empresa de Scribd logo
Demystifying
Development Techniques
@eturino
Eduardo Turiño
¡muerte a los puristas!
el “otro título”
las metodologías son
sólo herramientas
menos errores

más velocidad 

más constancia
mejorar en cada paso
lo que más moleste
•

nivel de Proyecto (Scrum, Kanban…)

•

nivel de Desarrollo!

•

nivel de Productividad (GTD, Pomodoro…)
el camino
1

2

3

4

5

6

1. tradicional

4. TDD

2. tests automáticos

5. BDD

3. Test-First

6. completando BDD
objetivos
del desarrollo de software

1. hace lo que tiene que hacer y no otra cosa!
2. funciona sin fallos!
3. no rompe lo que ya funcionaba!
4. fácil de adaptar a nuevas funcionalidades
1

2

3

4

5

tradicional
¿cómo se hace normalmente?

6
tradicional
•

planificación y estudio de requisitos

•

desarrollo: diseño e implementación

•

pruebas: QA (Quality Assurance)
pruebas (QA)
•

“hace lo que tiene que hacer y no otra cosa”:
Pruebas de Aceptación

•

“funciona sin fallos”:

Pruebas de Exploración

•

“no rompe lo que ya funcionaba”:

Pruebas de Regresión
lo que más molesta
del enfoque tradicional

demasiadas pruebas
(no se hacen)
1

2

3

4

5

tests automáticos
automatizando las pruebas manuales

6
tipos de tests
de Aceptación: 

comprueba funcionalidad
de Regresión: 

nos alerta si hemos roto algo anterior
Unitarios: 

componente (aislado) funciona bien
cuidado

sustituyen a pruebas manuales:
probar comportamiento
lo que más molesta
de los tests automáticos

•

poca motivación para hacerlos

•

“¿y cómo pruebo yo esto?”
1

2

3

4

5

6

Test-First
probando lo que aún no hemos desarrollado
primero el test
!

después el código de producción
ventajas
de Test-First

•

mayor motivación

•

sensación de seguridad: menos fallos tontos

•

código más sencillo y fácil de probar
lo que se echa en falta
de Test-First

no nos sirve de guía
1

2

3

4

5

TDD
Test Driven Development

6
los tests como 

guía del desarrollo
TDD
•

el objetivo es el código de producción, 

los tests son una herramienta para ese objetivo

•

que los tests sirvan como pruebas es
secundario

•

se basa en repetición de un ciclo básico
ciclo básico
de TDD
1. escribir un nuevo test y verificar que falla
2. implementar lo mínimo para que:
A. cambie el mensaje del error
B. pase el test
3. repetir el punto 2 hasta que pase el test
4. refactorizar, sin cambiar comportamiento
Red - Green - Refactor
Green

Red

Refactor
Red - Green - Refactor
Green

⇧ funcionalidad

⇧ diseño

Red

Refactor

seguimos
bases de TDD
•

tests concisos

•

se prueba nuestro código público

•

antes de iniciar algo nuevo, dejar en verde

•

Diseño Emergente: al escribir test y refactorizar
temas a mejorar
de TDD

frágil y tedioso 

muchos test unitarios
1

2

3

4

BDD
Behaviour Driven Development
!

o TDD “bien hecho”

5

6
comportamiento,
comunicación,
y tests de aceptación
BDD a grandes rasgos
•

usar lenguaje de dominio, no técnico

•

escribir tests de aceptación con los clientes
(expertos de dominio)

•

ciclo de desarrollo usando un doble anillo RGR
doble anillo
de BDD
1. se empieza con un ciclo RGR de un test de aceptación
(Anillo Exterior)
2. se va desarrollando hasta que el mensaje de error ya
no nos es útil para seguir (outside in)
3. se baja a hacer un test unitario y se continúa con ese
ciclo RGR (Anillo Interior)
4. anillo Interior refactorizado: se sube al Anillo Exterior
5. repetir 2-4 hasta que el Anillo Exterior esté completado
doble anillo
R

R

Aceptación

G

Unitario

Rf
Rf

G
qué se consigue
con BDD

•

mejor comunicación con clientes y stakeholders

•

menos frágil: tests de aceptación y 

sólo los unitarios necesarios

•

más natural y rápido
limitaciones
de BDD
•

sólo probamos el caso feliz

•

cuando el test es muy difícil de programar

•

cuando se tiene muy claro

•

cuando los tests unitarios se rompen

•

cuando no se tiene ni idea de por dónde tirar
¿y ahora?
completamos con
otras técnicas
1

2

3

4

5

6

solucionando
“probar sólo el caso feliz”
tests unitarios extra
•

tras un ciclo RGR y antes del siguiente

•

¿cómo debería comportarse el sistema ante esta
situación?

•

es diseño

•

ok si el test empieza en Verde lugar de Rojo.
1

2

3

4

5

6

solucionando
“test difícil de programar”
solucionando
“test muy difícil”

sustituye por 

prueba manual
1

2

3

4

5

solucionando
“cuando es muy fácil”

6
solucionando
“cuando es muy fácil”

pasos largos
1

2

3

4

5

solucionando
“tests se rompen”

6
solucionando
“tests se rompen”

arreglarlos o tirarlos
1

2

3

4

5

6

solucionando
“cuando es muy difícil”
solucionando
“cuando es muy difícil”

REPLs y Spikes
REPL
•

Read Eval Print Loop

•

consola de javascript, irb/pry…

•

ir ejecutando lo que se programa en el momento

•

muy bueno para pruebas, bugfixing, 

y para “¿cómo se usaba esto?”

•

REPL Driven Development
Spike
experimento rápido para:
A. disminuir riesgo técnico
B. pruebas de concepto
Spike
cuando se termina:
•

si es muy horrible:

se tira

•

si se puede refactorizar y “no está tan mal”:

se usa y se le añade un test de regresión
concluyendo…
mi proceso al principio

•

diseño y desarrollo tradicional

•

pruebas al final (bastante escasas), 

apoyado por un buen equipo de QA
mi proceso ahora
•

por defecto: 

BDD con Outside-In

•

“¿cómo era esto?” y “¿cómo se usaba tal?”:

REPLs!

•

“ni idea” o “peligroso”:

Spikes!

•

“trillado”: 

Pasos largos!

•

“test difícil”:

Prueba manual
¿qué he ganado?
•

muchos menos errores

•

más constante

•

más seguro

•

más rápido
buscando 

las mejores herramientas
para cada ocasión
el objetivo es el software
!

complementar tu metodología 

con otras técnicas

está bien

Más contenido relacionado

PPTX
Cómo aplicar TDD. Almería 13/05/2014
PDF
Compartiendo cómo trabajamos haciendo uso de Kanban
PPTX
Cómo trabajamos en Plastic SCM
PDF
ATDD - Desarrollo Dirigido por Test de Aceptación
PPTX
TDD Course (Spanish)
PPTX
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
PDF
Introducción a TDD
ODP
Cómo hacer Test Driven Development
Cómo aplicar TDD. Almería 13/05/2014
Compartiendo cómo trabajamos haciendo uso de Kanban
Cómo trabajamos en Plastic SCM
ATDD - Desarrollo Dirigido por Test de Aceptación
TDD Course (Spanish)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Introducción a TDD
Cómo hacer Test Driven Development

La actualidad más candente (20)

PPT
Como hacer tdd y no morir en el intento
ODP
Tdd desde las_trincheras
PPTX
TDD y Python
PDF
Testing, tipos y otros flamewars
PPT
Desarrollo Guiado Por Pruebas
PDF
Análisis estático de código en Java
PDF
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
PDF
Unit Testing en iOS
PPTX
PDF
BDD & Cucumber
PDF
Agile Testing - Software Testing Club
PDF
BDD y tests automatizados
ODP
TDD Code Retreat
PPTX
TDD (Test-Driven Development)
PDF
Td dvs bdd
PDF
Agile university day - Un día en un equipo ágil de desarrollo móvil
PDF
Como escribir buenos tests al hacer TDD
PPTX
Software Performance Testing: Conceptos y metodología
PPTX
BDD - Desarrollo dirigido por comportamiento
Como hacer tdd y no morir en el intento
Tdd desde las_trincheras
TDD y Python
Testing, tipos y otros flamewars
Desarrollo Guiado Por Pruebas
Análisis estático de código en Java
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
Unit Testing en iOS
BDD & Cucumber
Agile Testing - Software Testing Club
BDD y tests automatizados
TDD Code Retreat
TDD (Test-Driven Development)
Td dvs bdd
Agile university day - Un día en un equipo ágil de desarrollo móvil
Como escribir buenos tests al hacer TDD
Software Performance Testing: Conceptos y metodología
BDD - Desarrollo dirigido por comportamiento
Publicidad

Similar a [ES] webcat 2014-03 Demystifying Development Techniques (20)

PDF
"Demystifying development techniques" por @eturino
PDF
Apuntes #XPweek
PDF
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
PDF
Test Driven Development. Fortalezas y Debilidades
PDF
Introducción a TDD
PDF
Metodologías Aágiles: TDD (Test Driven development)
PPSX
7iSF-4 test driver development
PPTX
Artalde Tdd intro
PPTX
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
PPTX
Buenas practicas desarrollando software
ODP
Introducción a Behaviour Driven Development
PPTX
ASP.NET MVC Workshop Día 2
PPTX
pruebasunitarias-110921232512-phpapp02.pptx
PPTX
Introducción a tdd
PDF
Artesanía de software y desarrollo dirigido por pruebas (tdd)
PDF
Cursotdd 141202105217-conversion-gate01
PDF
Introducción a Test Driven Development en PHPSevilla
PDF
Pruebas unitarias
PDF
Meetup bdd & tdd: aprovecha_su_poder
"Demystifying development techniques" por @eturino
Apuntes #XPweek
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Test Driven Development. Fortalezas y Debilidades
Introducción a TDD
Metodologías Aágiles: TDD (Test Driven development)
7iSF-4 test driver development
Artalde Tdd intro
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Buenas practicas desarrollando software
Introducción a Behaviour Driven Development
ASP.NET MVC Workshop Día 2
pruebasunitarias-110921232512-phpapp02.pptx
Introducción a tdd
Artesanía de software y desarrollo dirigido por pruebas (tdd)
Cursotdd 141202105217-conversion-gate01
Introducción a Test Driven Development en PHPSevilla
Pruebas unitarias
Meetup bdd & tdd: aprovecha_su_poder
Publicidad

Último (20)

PPT
Teoria General de Sistemas empresariales
PPTX
Innovación en el Emprendimiento_Clase.pptx
PDF
libro de ofimatica basica, para tecnico profesional
PPT
Administración Financiera diapositivas.ppt
PDF
IDEAS PARA PROYECTOS EMPRENDIMIENTO EPT-
PPTX
CALIDAD TOTAL TRABAJO FULL DE LINA MARTINEZ
PDF
CV Carlos Lira Zalaquett_Agosto 2025 - Asesor Técnico Empresarial / Facilitador
PDF
Informe investigacion de accidente en al
PDF
D08_SESION 15 y 16_2024.12.06_ISO-26000.pdf
PDF
CLASE 4.pdfkjljbjkbkjbihviuvvuuuuuuuuuuuu
PDF
03 - Unidad II - La Plataforma .NET y C# - 2. Tipos Primitivos y Expresiones.pdf
PPTX
CREACION DE MARCA EMPRESAS CONTEXTO EMPRESARIAL
PPTX
MAESTRIA TRABAJO GRUPAL N° 7.1 POLITICAS PUBLICAS.pptx
PPTX
1748538606_68389hhhhhhhhhhh4ee56ae5.pptx
PPTX
NIA 265-SANDOVAL MARIN FRANZ DANNY CODIGO.pptx
PDF
NIAS 250 ............................................
PPTX
Tema 3 La Función Dirección.fundamental pptx
PDF
Primeros Auxilios_Enfermedades Ocupacionales.pdf
PDF
Rendicion publica de cuentas inicial 2025 de la procuraduria
PDF
alejandrobcjjjjjjjjjjjjjjjjjjjjjjjjjjj.pdf
Teoria General de Sistemas empresariales
Innovación en el Emprendimiento_Clase.pptx
libro de ofimatica basica, para tecnico profesional
Administración Financiera diapositivas.ppt
IDEAS PARA PROYECTOS EMPRENDIMIENTO EPT-
CALIDAD TOTAL TRABAJO FULL DE LINA MARTINEZ
CV Carlos Lira Zalaquett_Agosto 2025 - Asesor Técnico Empresarial / Facilitador
Informe investigacion de accidente en al
D08_SESION 15 y 16_2024.12.06_ISO-26000.pdf
CLASE 4.pdfkjljbjkbkjbihviuvvuuuuuuuuuuuu
03 - Unidad II - La Plataforma .NET y C# - 2. Tipos Primitivos y Expresiones.pdf
CREACION DE MARCA EMPRESAS CONTEXTO EMPRESARIAL
MAESTRIA TRABAJO GRUPAL N° 7.1 POLITICAS PUBLICAS.pptx
1748538606_68389hhhhhhhhhhh4ee56ae5.pptx
NIA 265-SANDOVAL MARIN FRANZ DANNY CODIGO.pptx
NIAS 250 ............................................
Tema 3 La Función Dirección.fundamental pptx
Primeros Auxilios_Enfermedades Ocupacionales.pdf
Rendicion publica de cuentas inicial 2025 de la procuraduria
alejandrobcjjjjjjjjjjjjjjjjjjjjjjjjjjj.pdf

[ES] webcat 2014-03 Demystifying Development Techniques