SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
BDD & TDD:
aprovecha su
poder
¿Quién soy?
Eduardo Riol, Líder Técnico de QA & Testing en
atSistemas.
Comencé desarrollando en entornos Java y .NET hace
alrededor de una década pero he dedicado los últimos
siete años a la Calidad del Software, tanto orientada
al producto como a los procesos de desarrollo.
Actualmente mis intereses se centran en el control de
la deuda técnica, BDD y la integración de las
actividades de QA en entornos Agile y DevOps.
twitter.com/eduriol
github.com/eduriol
linkedin.com/in/eduriol
Houston, we have a problem!
“Esto no es lo que habíamos pedido” ¿Nos suena?
El teléfono
escacharrado
The Gossips, Norman Rockwell, 1948
Nos enfocamos en construir el software
CORRECTAMENTE…
Testing funcional
Tests unitarios
Testing de rendimiento
Testing de integración
Análisis estático Hacking ético
Auditorías de procesos
UAT
… ¿pero estamos construyendo el software CORRECTO?
Features Used
The Standish Group estimate of features used in custom application development, 2014
Hardly Ever
50%
Often
20%
Infrequently
30%
No confiamos en las releases
La mayoría de las veces no
contamos con una suite de tests
de aceptación lo suficientemente
robusta y completa como para
fiarnos de ella
¿Y la colaboración dentro del equipo?
¿Desarrollo? Creo que son los que se
sientan en el zulo ese de la cuarta
planta
Tenemos problemas
de calidad
No es mi problema, de la
calidad se encarga la gente
QA, ¿no?
La gente de Desarrollo no para de
devolverme el software sin corregir el
bug
Este problema parte de aquí
Como fases separadas, estimadas y
planeadas al principio del proyecto
• Análisis
• Desarrollo
• Testing
• Operaciones
BDD: Cómo colaboran Desarrollo y Negocio
BDD es un modelo de colaboración entre los usuarios de Negocio
y el equipo de Desarrollo…
… que consiste en establecer conversaciones basadas en ejemplos
concretos de uso de la aplicación, con el objetivo de reducir
malentendidos y asunciones…
… descubriendo en el proceso las features que realmente aportan
valor
¿Entonces qué es (y qué no) BDD?
• Escribir requisitos en lenguaje
Gherkin
• Automatizar pruebas con
Cucumber
• Documentar funcionalidades
después de programarlas
• Modelo de colaboración
• Un proceso de descubrimiento
• Entender necesidades de
Negocio
• Describir el software con
ejemplos
Qué es Qué no es
BDD: Cómo colaboran Desarrollo y Negocio
• Los ejemplos que describen una nueva
feature se plasman en un lenguaje sencillo
y común, sin ambigüedades (por ejemplo
Gherkin)
• El equipo de Desarrollo transforma estos
ejemplos en una serie de especificaciones
ejecutables como tests automáticos
• Una feature del software está acabada
cuando todas sus especificaciones se
ejecutan correctamente
BDD
TDD
Escribir un test que falla
N ciclos
Three amigos
Negocio QA
Dev
Un escenario de colaboración
Queremos que nuestra aplicación requiera un
password que tenga que tener al menos 8
caracteres, un número y una mayúscula
Password strenght, xkcd, Randall Munroe
Password Seguridad Aceptable?
secret Débil No
password Débil No
password1 Débil No
aBcdEfg1 Débil No
qwertY12 Débil No
dJeZDip1 Medio Sí
GaviotaErizo Fuerte Sí
GaviotaErizoCatapulta Muy fuerte Sí
¿No querrás decir que quieres
que la aplicación requiera un
password seguro?
Implementando BDD: Describiendo escenarios
ESCENARIO
Envío del formulario de contacto
Dado que Juan Pérez entra al formulario de contacto
Y rellena los campos con sus datos y el mensaje
Y acepta las cláusulas legales
Cuando envía la consulta
Entonces se muestra la confirmación de
la correcta recepción del mensaje
Dado / Given: Define el contexto en el cual se
ejecuta el escenario. En este paso se
determinan las condiciones de partida del
ejemplo.
Cuando / When: Es la acción que desata el
ejemplo. Consiste en la interacción con la
aplicación, normalmente de un usuario, cuyo
comportamiento se quiere validar.
Entonces / Then: En este paso se define el
resultado esperado por Negocio. La condición
que se debe cumplir para que el escenario se
haya ejecutado correctamente.
Implementando BDD: Automatizando escenarios
Escenario: Transfiriendo dinero a una cuenta de ahorros
Dado que mi cuenta Corriente tiene un balance de 1000.00
Y que mi cuenta Ahorro tiene un balance de 2000.00
Cuando transfiero 500.00 de mi cuenta Corriente a mi cuenta Ahorro
Entonces debo tener 500.00 en mi cuenta Corriente
Y debo tener 2500.00 en mi cuenta Ahorro
@Given(“^que mi cuenta (.*) tiene un balance de (d+)$")
public void setupInitialAccount(AccountType accountType,
double amount) {
// Setup account
}
@When(“^transfiero (d+) de mi cuenta (.*) a mi cuenta (.*)$")
public void transferAmountBetweenAccounts(double amount, AccountType source, AccountType destination) {
// Perform action
}
@Then(“^debo tener (d+) en mi cuenta (.*)$")
public void checkAccountAmount(double amount, AccountType accountType) {
// Assert amount
}
Testing exploratorio
Niveles de BDD: La pirámide del testing
UI
API / Services
Unit
UI (manual & automático)
API / Services
Unit
Prevenir errores / Aportar valor Detectar errores / Certificar releases
¿Pero entonces BDD y TDD son lo mismo?
My experience is that BDD’s emphasis on collaboration, and the use
of business-readable, executable specifications, means that this
shared language develops much more quickly. When everyone is
involved in writing documentation that describes what the system
should do, they all get a chance to learn the language of the
domain together.
So BDD really isn’t all that different to TDD. What BDD adds is a
clear emphasis on what it takes to make TDD succeed.
Matt Wynne
BDD en el proceso de construcción del software
La ejecución de los escenarios deben ser parte del proceso de
integración, construcción y despliegue del software.
Cada escenario debe poder ejecutarse de forma separada, sin ningún
orden concreto. No debe haber dependencia entre escenarios.
Los escenarios son un activo más de código a mantener bajo control de
versiones.
El proceso de construcción y despliegue del software también pasa a
ser un proceso de construcción y despliegue de documentación e
informes.
¡Ojo!, BDD no es una bala de plata
Implicación de Negocio: necesitamos que los involucrados
se impliquen desde el comienzo.
BDD está pensado para Agile: es un modelo de colaboración
de cara al descubrimiento iterativo de requisitos.
A BDD no le gustan los silos: si la organización
trabaja en grupos aislados y la colaboración no fluye,
desaparece la aclaración progresiva de objetivos.
Riesgo de alto coste en mantenimiento de tests: se requiere
experiencia y conocimiento para diseñar especificaciones
funcionales mantenibles e implementarlas correctamente
Tecnologías para BDD
¡Muchas gracias!
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Como implementar La Automatización De Pruebas y No Morir En El Intento
Como implementar La Automatización De Pruebas y No Morir En El IntentoComo implementar La Automatización De Pruebas y No Morir En El Intento
Como implementar La Automatización De Pruebas y No Morir En El IntentoSoftware Guru
 
Bdd, cucumber y gherkin. desarrollo dirigido por comportamiento
Bdd, cucumber y gherkin. desarrollo dirigido por comportamientoBdd, cucumber y gherkin. desarrollo dirigido por comportamiento
Bdd, cucumber y gherkin. desarrollo dirigido por comportamientoRoberto Andres Remonda
 
(Behavior driven development (bdd ) [sólo lectura])
(Behavior driven development  (bdd ) [sólo lectura])(Behavior driven development  (bdd ) [sólo lectura])
(Behavior driven development (bdd ) [sólo lectura])rakel_ita
 
15 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 200915 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 2009Pepe
 
WorkshopCamp México - BDD
WorkshopCamp México - BDDWorkshopCamp México - BDD
WorkshopCamp México - BDDEdgar Suarez
 
ATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónPaulo Clavijo
 
La ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágilLa ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágilSoftware Guru
 

La actualidad más candente (12)

BDD para la mejora de la calidad software
BDD para la mejora de la calidad softwareBDD para la mejora de la calidad software
BDD para la mejora de la calidad software
 
Como implementar La Automatización De Pruebas y No Morir En El Intento
Como implementar La Automatización De Pruebas y No Morir En El IntentoComo implementar La Automatización De Pruebas y No Morir En El Intento
Como implementar La Automatización De Pruebas y No Morir En El Intento
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Bdd, cucumber y gherkin. desarrollo dirigido por comportamiento
Bdd, cucumber y gherkin. desarrollo dirigido por comportamientoBdd, cucumber y gherkin. desarrollo dirigido por comportamiento
Bdd, cucumber y gherkin. desarrollo dirigido por comportamiento
 
Ejercicio scrum
Ejercicio scrumEjercicio scrum
Ejercicio scrum
 
(Behavior driven development (bdd ) [sólo lectura])
(Behavior driven development  (bdd ) [sólo lectura])(Behavior driven development  (bdd ) [sólo lectura])
(Behavior driven development (bdd ) [sólo lectura])
 
15 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 200915 Upm Solo Pruebas 2009
15 Upm Solo Pruebas 2009
 
WorkshopCamp México - BDD
WorkshopCamp México - BDDWorkshopCamp México - BDD
WorkshopCamp México - BDD
 
ATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de Aceptación
 
La ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágilLa ingeniería de requerimiento en el proceso ágil
La ingeniería de requerimiento en el proceso ágil
 
PMBoK y Prince2, ¿Iguales, diferentes o complementarios?
PMBoK y Prince2, ¿Iguales, diferentes o complementarios?PMBoK y Prince2, ¿Iguales, diferentes o complementarios?
PMBoK y Prince2, ¿Iguales, diferentes o complementarios?
 
Webminar el director de proyectos
Webminar   el director de proyectosWebminar   el director de proyectos
Webminar el director de proyectos
 

Similar a Meetup bdd & tdd: aprovecha_su_poder

Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumEduardo Riol
 
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Software Guru
 
Behavior1
Behavior1Behavior1
Behavior1arajar
 
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...Pepe
 
Behavior Driven Development(Abraham Infante).pdf
Behavior Driven Development(Abraham Infante).pdfBehavior Driven Development(Abraham Infante).pdf
Behavior Driven Development(Abraham Infante).pdfAbrahamWilfredoInfan
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweekCarlos Ble
 
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...Software Guru
 
Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Jacobo García López de Araujo
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilJohnny Ordóñez
 
Eliminando la brecha entre clientes y desarrolladores mediante BDD
Eliminando la brecha entre clientes y desarrolladores mediante BDDEliminando la brecha entre clientes y desarrolladores mediante BDD
Eliminando la brecha entre clientes y desarrolladores mediante BDDJorge Gamba
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetseusonlito
 
Despliegue plataforma wso2
Despliegue plataforma wso2Despliegue plataforma wso2
Despliegue plataforma wso2WSO2
 

Similar a Meetup bdd & tdd: aprovecha_su_poder (20)

Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
 
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...
 
Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Behavior1
Behavior1Behavior1
Behavior1
 
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...Si la gestión y desarrollo de requisitos es tan importante...  ¿Por qué no la...
Si la gestión y desarrollo de requisitos es tan importante... ¿Por qué no la...
 
Behavior Driven Development(Abraham Infante).pdf
Behavior Driven Development(Abraham Infante).pdfBehavior Driven Development(Abraham Infante).pdf
Behavior Driven Development(Abraham Infante).pdf
 
Domain driven desing
Domain driven desingDomain driven desing
Domain driven desing
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
 
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
Círculo de Crédito: Del modelo de negocio a la arquitectura, retos y experien...
 
Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesos
 
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
 
14.administración de la calidad
14.administración de la calidad14.administración de la calidad
14.administración de la calidad
 
Bddtddatdd
BddtddatddBddtddatdd
Bddtddatdd
 
Proceso desarrollo software
Proceso desarrollo softwareProceso desarrollo software
Proceso desarrollo software
 
Eliminando la brecha entre clientes y desarrolladores mediante BDD
Eliminando la brecha entre clientes y desarrolladores mediante BDDEliminando la brecha entre clientes y desarrolladores mediante BDD
Eliminando la brecha entre clientes y desarrolladores mediante BDD
 
Testing & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnetsTesting & Pizza by Lito & nitsnets
Testing & Pizza by Lito & nitsnets
 
Despliegue plataforma wso2
Despliegue plataforma wso2Despliegue plataforma wso2
Despliegue plataforma wso2
 
TDD talk
TDD talkTDD talk
TDD talk
 

Último

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (20)

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Meetup bdd & tdd: aprovecha_su_poder

  • 2. ¿Quién soy? Eduardo Riol, Líder Técnico de QA & Testing en atSistemas. Comencé desarrollando en entornos Java y .NET hace alrededor de una década pero he dedicado los últimos siete años a la Calidad del Software, tanto orientada al producto como a los procesos de desarrollo. Actualmente mis intereses se centran en el control de la deuda técnica, BDD y la integración de las actividades de QA en entornos Agile y DevOps. twitter.com/eduriol github.com/eduriol linkedin.com/in/eduriol
  • 3. Houston, we have a problem! “Esto no es lo que habíamos pedido” ¿Nos suena? El teléfono escacharrado The Gossips, Norman Rockwell, 1948
  • 4. Nos enfocamos en construir el software CORRECTAMENTE… Testing funcional Tests unitarios Testing de rendimiento Testing de integración Análisis estático Hacking ético Auditorías de procesos UAT
  • 5. … ¿pero estamos construyendo el software CORRECTO? Features Used The Standish Group estimate of features used in custom application development, 2014 Hardly Ever 50% Often 20% Infrequently 30%
  • 6. No confiamos en las releases La mayoría de las veces no contamos con una suite de tests de aceptación lo suficientemente robusta y completa como para fiarnos de ella
  • 7. ¿Y la colaboración dentro del equipo? ¿Desarrollo? Creo que son los que se sientan en el zulo ese de la cuarta planta Tenemos problemas de calidad No es mi problema, de la calidad se encarga la gente QA, ¿no? La gente de Desarrollo no para de devolverme el software sin corregir el bug
  • 8. Este problema parte de aquí Como fases separadas, estimadas y planeadas al principio del proyecto • Análisis • Desarrollo • Testing • Operaciones
  • 9. BDD: Cómo colaboran Desarrollo y Negocio BDD es un modelo de colaboración entre los usuarios de Negocio y el equipo de Desarrollo… … que consiste en establecer conversaciones basadas en ejemplos concretos de uso de la aplicación, con el objetivo de reducir malentendidos y asunciones… … descubriendo en el proceso las features que realmente aportan valor
  • 10. ¿Entonces qué es (y qué no) BDD? • Escribir requisitos en lenguaje Gherkin • Automatizar pruebas con Cucumber • Documentar funcionalidades después de programarlas • Modelo de colaboración • Un proceso de descubrimiento • Entender necesidades de Negocio • Describir el software con ejemplos Qué es Qué no es
  • 11. BDD: Cómo colaboran Desarrollo y Negocio • Los ejemplos que describen una nueva feature se plasman en un lenguaje sencillo y común, sin ambigüedades (por ejemplo Gherkin) • El equipo de Desarrollo transforma estos ejemplos en una serie de especificaciones ejecutables como tests automáticos • Una feature del software está acabada cuando todas sus especificaciones se ejecutan correctamente BDD TDD Escribir un test que falla N ciclos
  • 13. Un escenario de colaboración Queremos que nuestra aplicación requiera un password que tenga que tener al menos 8 caracteres, un número y una mayúscula Password strenght, xkcd, Randall Munroe Password Seguridad Aceptable? secret Débil No password Débil No password1 Débil No aBcdEfg1 Débil No qwertY12 Débil No dJeZDip1 Medio Sí GaviotaErizo Fuerte Sí GaviotaErizoCatapulta Muy fuerte Sí ¿No querrás decir que quieres que la aplicación requiera un password seguro?
  • 14. Implementando BDD: Describiendo escenarios ESCENARIO Envío del formulario de contacto Dado que Juan Pérez entra al formulario de contacto Y rellena los campos con sus datos y el mensaje Y acepta las cláusulas legales Cuando envía la consulta Entonces se muestra la confirmación de la correcta recepción del mensaje Dado / Given: Define el contexto en el cual se ejecuta el escenario. En este paso se determinan las condiciones de partida del ejemplo. Cuando / When: Es la acción que desata el ejemplo. Consiste en la interacción con la aplicación, normalmente de un usuario, cuyo comportamiento se quiere validar. Entonces / Then: En este paso se define el resultado esperado por Negocio. La condición que se debe cumplir para que el escenario se haya ejecutado correctamente.
  • 15. Implementando BDD: Automatizando escenarios Escenario: Transfiriendo dinero a una cuenta de ahorros Dado que mi cuenta Corriente tiene un balance de 1000.00 Y que mi cuenta Ahorro tiene un balance de 2000.00 Cuando transfiero 500.00 de mi cuenta Corriente a mi cuenta Ahorro Entonces debo tener 500.00 en mi cuenta Corriente Y debo tener 2500.00 en mi cuenta Ahorro @Given(“^que mi cuenta (.*) tiene un balance de (d+)$") public void setupInitialAccount(AccountType accountType, double amount) { // Setup account } @When(“^transfiero (d+) de mi cuenta (.*) a mi cuenta (.*)$") public void transferAmountBetweenAccounts(double amount, AccountType source, AccountType destination) { // Perform action } @Then(“^debo tener (d+) en mi cuenta (.*)$") public void checkAccountAmount(double amount, AccountType accountType) { // Assert amount }
  • 16. Testing exploratorio Niveles de BDD: La pirámide del testing UI API / Services Unit UI (manual & automático) API / Services Unit Prevenir errores / Aportar valor Detectar errores / Certificar releases
  • 17. ¿Pero entonces BDD y TDD son lo mismo? My experience is that BDD’s emphasis on collaboration, and the use of business-readable, executable specifications, means that this shared language develops much more quickly. When everyone is involved in writing documentation that describes what the system should do, they all get a chance to learn the language of the domain together. So BDD really isn’t all that different to TDD. What BDD adds is a clear emphasis on what it takes to make TDD succeed. Matt Wynne
  • 18. BDD en el proceso de construcción del software La ejecución de los escenarios deben ser parte del proceso de integración, construcción y despliegue del software. Cada escenario debe poder ejecutarse de forma separada, sin ningún orden concreto. No debe haber dependencia entre escenarios. Los escenarios son un activo más de código a mantener bajo control de versiones. El proceso de construcción y despliegue del software también pasa a ser un proceso de construcción y despliegue de documentación e informes.
  • 19. ¡Ojo!, BDD no es una bala de plata Implicación de Negocio: necesitamos que los involucrados se impliquen desde el comienzo. BDD está pensado para Agile: es un modelo de colaboración de cara al descubrimiento iterativo de requisitos. A BDD no le gustan los silos: si la organización trabaja en grupos aislados y la colaboración no fluye, desaparece la aclaración progresiva de objetivos. Riesgo de alto coste en mantenimiento de tests: se requiere experiencia y conocimiento para diseñar especificaciones funcionales mantenibles e implementarlas correctamente