SlideShare una empresa de Scribd logo
1 de 22
•© FATTO Consultoria e Sistemas - www.fattoCS.com.br
Vision práctica del BDD (Behavior
Driven Design) para agilizar el proceso
de desarrollo
Presenta:
Marcelo Nascimento Costa
“Consultor en el área de calidad de software, automatización de pruebas,
ALM/DevOps y gerencia de proyectos. Profesor de graduación y pos-
graduación de la Universidad Veiga de Almeida. Ministra ponencias y
webinars en asuntos relativos de automatización de desarrollo, pruebas y
aceptación de software. Experiencia de participación en proyectos de
consultoria, desarrollo de software e implantación de procesos en empresas
como a Accenture, Ipiranga, Globosat, Oi Móvel e Oi Fixa, Banco BBM,
Telefonica-SP, Vivo, Banco Modal e Brasil Telecom. En el caso de las
empresas de telecomunicaciones, las empresas de telefonía móvil y de
telefonía móvil, En el caso de las empresas de telecomunicaciones, como
Telemar y Embratel y en la implantación de la arquitectura del Sistema de
Pago Brasileño (SPB) en el Banco Central, actuó como líder de proyectos y
administrador de bases de datos en el inicio de diversas empresas de
telecomunicaciones, como Telemar y Embratel.
Minibio
•2
 Definición de BDD
 Como funciona el BDD
 Ventajas
 Dudas comunes
 Diferencias entre BDD y TDD
 Buenas prácticas
 Specflow como Herramienta de BDD
 Ejemplo de Specflow
Agenda
•3
BDD - Definición
“Behavior-driven development Trata
de la implementación de una aplicación
a través de la descripción de su
comportamiento segun la perspectiva de
sus stakeholders”
-- Dan North
Crear software que
importa!
 Tiene valor de negócio tangible
 Entrega incremental
 Facil de mantener y administrar
 Facil de entender y comunicar
Objetivo de Valor
 Es un conjunto de prácticas ágiles para agilizar el desarrollo de
software a través de la integración de las User Stories definidas
para el software con la automatización de las pruebas funcionales
del software desarrollado.
 El BDD es una evolución hecha a partir de la implantación de
técnicas TDD (Test Driven Development).
 El BDD no es una metodología de desarrollo de software, pero
incorpora y mejora las ideas de muchas de esas metodologías.
En otras palabras, que es BDD?
•6
Funcionamiento del BDD
•7
Necesidad de
implantación de
una
funcionalidad de
backlog
Levantamiento
de User Stories
como Usuários y
partes
interesadas
Descripción de
dos escenarios
de
comportamiento
(features)
Levantamiento
de dos ejemplos
concretos como
resultado
esperado de
User Stories
Definición de
dos pruebas
funcionales
automatizadas
com base en los
Ejemplos
Levantamiento de User Stories
•8
Ideas
Retroalimentación
Datos
Historias de Usuários
Nuevas o actualizadas
Dueño del producto
Dev team
Tester
Escenario: Transferir dinero para una conta de ahorros
GIVEN la cuenta de número <número> con el límite <límite> y el saldo <saldo>
WHEN el dueño realiza el depósito en el valor de <depósito> en la cuenta
AND el dueño realiza el primer saque en el valor de <first_saque> en la cuenta
AND el dueño realiza el segundo saque en el valor de <segundo_saque> en la cuenta
THEN el dueño tiene el saldo en el valor de <saldo_esperado> en la cuenta
Ejemplos:
| número | limite | saldo | deposito | primer lugar | segundo lugar | saldo esperado |
| 111 | 1000 | 0 | 100 | 10 | 10 | 80 |
| 222 | 1000 | 0 | 200 | 10 | 10 | 180 |
Ejemplo de una implementación BDD
(Notación Gherkin)
•9
 BDD ofrece un nivel de entendimiento común entre expertos de dominio,
product owners, desarrolladores y probadores.
 Agilizar el proceso disminuyendo el gap entre los requisitos / User Stories
y la automatización de las pruebas de aceptación del usuario
 La notación simple utilizada por el BDD - Given-Then-When - para las
pruebas de aceptación son próximas al entendimiento de los involucrados
en el proyecto
 Garantiza la regresión de las funcionalidades después de la re-ejecución de
todas las pruebas de aceptación.
 Acelera la creación de las pruebas con la generación automática de los
pasos del código de pruebas a partir de los escenarios descritos
Ventajas y Benefícios de BDD
•10
TDD- Ejercita el código vinculado a cada método del objeto.
BDD -valida si el resultado presentado por la UI está de acuerdo
con el comportamiento definido en los ejemplos en el User Story.
Diferencias fundamentales del BDD x
TDD
•11
10
0
Pasó por el tratamiento
de Excepciones?
10
0
Popup con el mensaje
"Error: División no válida"?
 Implementar la definición de User Stories como detalle de requisitos
 Envolver al usuario en la definición de los ejemplos concretos para
las pruebas
 Puntuar la historia de usuario mediante la definición de las pruebas
de aceptación para servir como base para la ejecución de las
pruebas en el BDD
 Implementar una arquitectura con la herramienta BDD (Specflow /
Cucumber / Jbehave) que se ejecuta en varias plataformas
 Puntuar las tareas de mantenimiento para contemplar el
mantenimiento de los escenarios implementados en la herramienta
de BDD
Por donde comienzo?
•12
Buenas prácticas para la
implementación del BDD
•13
Involucramiento
en las User
Stories
User Stories
siguiendo el
estándar
INVEST
Coach
Arquitectura
Herramienta
BDD
Entregar el BDD
en Sprint
 Es una herramienta Opensource integrada al ecosistema .Net que
genera y ejecuta pruebas definidas a partir del patrón Given-When-
Then
 Es totalmente integrado al entorno Visual Studio contemplando
plantillas de proyectos que pueden ser instanciadas en el propio
Visual Studio.
 Soporta marcos de pruebas como MSTest y Nunit (2 y 3)
 Utiliza como notación de ejecución de pruebas el WebDriver del
Selenium, ampliamente conocido en el mercado.
 Después de la configuración correcta, puede ejecutar
multibrowsers (Chrome, IE y Firefox)
Que és Specflow?
•14
Definición de
las
características
Definición de
los escenarios
Definición de
los pasos
Código de
implementación
de los pasos
Biblioteca de
Automatización
de IU
Ejecución de
los escenarios
Analizar los
defectos
generados por
la ejecución de
los escenarios
Corregir el
código de
producción
para la
resolución de
defectos
Dinamica de SpecFlow
•15
Orientación de
Negócios
Orientación
Técnica
Orientación de
NegóciosOrientación
Técnica
Arquitectura .Net de Ejecución con
Continuos Delivery
•16
Arquitetura
1.Builds 2.Runs
5. Drives
3. Drives
4. Drives
TFS Build
SpecFlow Paquete
NUnit Paquete
Selenium Paquete
Prueba ejecutable
5. Outputs
Ejemplo SpecFLow – escenario Válido
•17
Exemplo SpecFLow – Cenário Inválido
•18
Código Exemplo
•19
Verificação do Resultado
•20
 El BDD es una realidad en el mercado y posee una herramienta
fuerte
 Una de las pruebas automatizadas en la versión funcional a través
de BDD y de la técnica de visión a través de TDD, sin potencial
alguno para calmar un software de calidad que se entrega de
acuerdo con las premisas principales.
 Temiendo que haya invertido en tiempo y recursos una curva de
aprendizaje para los primeros proyectos utilizando BDD.
 El ideal es papeles diferentes para una creación de las pruebas TDD
y otro para la creación de las pruebas BDD
Conclusión
•21
•© FATTO Consultoria e Sistemas - www.fattoCS.com.br
[Twitter]
https://www.facebook.co
m/marcelo.costa.92123
[MARCELO NASCIMENTO COSTA]
linkedin.com/in/marcelo-
costa-aa04174
marcelo.costa@fattocs.com.br
[Website]
marncosta

Más contenido relacionado

La actualidad más candente

SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. Cristhian Martinez
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderEduardo Riol
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareAlejandro Flores
 
Modelo de desarrollo concurrente
Modelo de desarrollo concurrenteModelo de desarrollo concurrente
Modelo de desarrollo concurrentesamuel ospino
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015Globant
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareSaul mendoza valdez
 
Modelos del proceso de software_GRUPO3_INF162
Modelos del proceso de software_GRUPO3_INF162Modelos del proceso de software_GRUPO3_INF162
Modelos del proceso de software_GRUPO3_INF162Sharon Calcina
 
03 unidad i modelos de ing soft
03 unidad i   modelos de ing soft03 unidad i   modelos de ing soft
03 unidad i modelos de ing softvictdiazm
 
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...Argentesting
 

La actualidad más candente (20)

Metodologia XP
Metodologia XPMetodologia XP
Metodologia XP
 
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Meetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poderMeetup bdd & tdd: aprovecha_su_poder
Meetup bdd & tdd: aprovecha_su_poder
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de software
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Rup
RupRup
Rup
 
Modelo de desarrollo concurrente
Modelo de desarrollo concurrenteModelo de desarrollo concurrente
Modelo de desarrollo concurrente
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptual
 
2.modelos del proceso
2.modelos del proceso2.modelos del proceso
2.modelos del proceso
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Paradigmas
ParadigmasParadigmas
Paradigmas
 
DevOps and Real World ROI
DevOps and Real World ROIDevOps and Real World ROI
DevOps and Real World ROI
 
Xp y Entornos de Desarrollo Software
Xp y Entornos de Desarrollo SoftwareXp y Entornos de Desarrollo Software
Xp y Entornos de Desarrollo Software
 
Modelos del proceso de software
Modelos del proceso de softwareModelos del proceso de software
Modelos del proceso de software
 
Modelos del proceso de software_GRUPO3_INF162
Modelos del proceso de software_GRUPO3_INF162Modelos del proceso de software_GRUPO3_INF162
Modelos del proceso de software_GRUPO3_INF162
 
03 unidad i modelos de ing soft
03 unidad i   modelos de ing soft03 unidad i   modelos de ing soft
03 unidad i modelos de ing soft
 
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
Argentesting 2018 - Taller de Buenas prácticas para una interacción exitosa e...
 

Similar a BDD práctico para agilizar el desarrollo

Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010Fitira
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareMiguel Sanchez
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions SpanishCDS
 
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.pptELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.pptMarko Zapata
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps
 
SOA en la Práctica: WCF &amp; WSSF
SOA en la Práctica: WCF &amp; WSSFSOA en la Práctica: WCF &amp; WSSF
SOA en la Práctica: WCF &amp; WSSFjuliocasal
 
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25Demian Raschkovan
 
Presentación institucional itc
Presentación institucional itcPresentación institucional itc
Presentación institucional itcbenitodiazd
 
16 Vector Software SFIC 2009
16 Vector Software SFIC 200916 Vector Software SFIC 2009
16 Vector Software SFIC 2009Pepe
 

Similar a BDD práctico para agilizar el desarrollo (20)

Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de software
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.pptELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
 
Trabajo
TrabajoTrabajo
Trabajo
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
Desarrollo de software.pptx
Desarrollo de software.pptxDesarrollo de software.pptx
Desarrollo de software.pptx
 
Desarr
DesarrDesarr
Desarr
 
Desarrollo de proyectos
Desarrollo de proyectosDesarrollo de proyectos
Desarrollo de proyectos
 
Trabajo
TrabajoTrabajo
Trabajo
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil Corporativo
 
SOA en la Práctica: WCF &amp; WSSF
SOA en la Práctica: WCF &amp; WSSFSOA en la Práctica: WCF &amp; WSSF
SOA en la Práctica: WCF &amp; WSSF
 
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
 
Presentación institucional itc
Presentación institucional itcPresentación institucional itc
Presentación institucional itc
 
16 Vector Software SFIC 2009
16 Vector Software SFIC 200916 Vector Software SFIC 2009
16 Vector Software SFIC 2009
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learningSoftware Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDiSoftware Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosSoftware Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressSoftware Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (20)

SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
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
 
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
 
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
 
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)
 
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
 
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...
 
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...
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
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...
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

BDD práctico para agilizar el desarrollo

  • 1. •© FATTO Consultoria e Sistemas - www.fattoCS.com.br Vision práctica del BDD (Behavior Driven Design) para agilizar el proceso de desarrollo Presenta: Marcelo Nascimento Costa
  • 2. “Consultor en el área de calidad de software, automatización de pruebas, ALM/DevOps y gerencia de proyectos. Profesor de graduación y pos- graduación de la Universidad Veiga de Almeida. Ministra ponencias y webinars en asuntos relativos de automatización de desarrollo, pruebas y aceptación de software. Experiencia de participación en proyectos de consultoria, desarrollo de software e implantación de procesos en empresas como a Accenture, Ipiranga, Globosat, Oi Móvel e Oi Fixa, Banco BBM, Telefonica-SP, Vivo, Banco Modal e Brasil Telecom. En el caso de las empresas de telecomunicaciones, las empresas de telefonía móvil y de telefonía móvil, En el caso de las empresas de telecomunicaciones, como Telemar y Embratel y en la implantación de la arquitectura del Sistema de Pago Brasileño (SPB) en el Banco Central, actuó como líder de proyectos y administrador de bases de datos en el inicio de diversas empresas de telecomunicaciones, como Telemar y Embratel. Minibio •2
  • 3.  Definición de BDD  Como funciona el BDD  Ventajas  Dudas comunes  Diferencias entre BDD y TDD  Buenas prácticas  Specflow como Herramienta de BDD  Ejemplo de Specflow Agenda •3
  • 4. BDD - Definición “Behavior-driven development Trata de la implementación de una aplicación a través de la descripción de su comportamiento segun la perspectiva de sus stakeholders” -- Dan North
  • 5. Crear software que importa!  Tiene valor de negócio tangible  Entrega incremental  Facil de mantener y administrar  Facil de entender y comunicar Objetivo de Valor
  • 6.  Es un conjunto de prácticas ágiles para agilizar el desarrollo de software a través de la integración de las User Stories definidas para el software con la automatización de las pruebas funcionales del software desarrollado.  El BDD es una evolución hecha a partir de la implantación de técnicas TDD (Test Driven Development).  El BDD no es una metodología de desarrollo de software, pero incorpora y mejora las ideas de muchas de esas metodologías. En otras palabras, que es BDD? •6
  • 7. Funcionamiento del BDD •7 Necesidad de implantación de una funcionalidad de backlog Levantamiento de User Stories como Usuários y partes interesadas Descripción de dos escenarios de comportamiento (features) Levantamiento de dos ejemplos concretos como resultado esperado de User Stories Definición de dos pruebas funcionales automatizadas com base en los Ejemplos
  • 8. Levantamiento de User Stories •8 Ideas Retroalimentación Datos Historias de Usuários Nuevas o actualizadas Dueño del producto Dev team Tester
  • 9. Escenario: Transferir dinero para una conta de ahorros GIVEN la cuenta de número <número> con el límite <límite> y el saldo <saldo> WHEN el dueño realiza el depósito en el valor de <depósito> en la cuenta AND el dueño realiza el primer saque en el valor de <first_saque> en la cuenta AND el dueño realiza el segundo saque en el valor de <segundo_saque> en la cuenta THEN el dueño tiene el saldo en el valor de <saldo_esperado> en la cuenta Ejemplos: | número | limite | saldo | deposito | primer lugar | segundo lugar | saldo esperado | | 111 | 1000 | 0 | 100 | 10 | 10 | 80 | | 222 | 1000 | 0 | 200 | 10 | 10 | 180 | Ejemplo de una implementación BDD (Notación Gherkin) •9
  • 10.  BDD ofrece un nivel de entendimiento común entre expertos de dominio, product owners, desarrolladores y probadores.  Agilizar el proceso disminuyendo el gap entre los requisitos / User Stories y la automatización de las pruebas de aceptación del usuario  La notación simple utilizada por el BDD - Given-Then-When - para las pruebas de aceptación son próximas al entendimiento de los involucrados en el proyecto  Garantiza la regresión de las funcionalidades después de la re-ejecución de todas las pruebas de aceptación.  Acelera la creación de las pruebas con la generación automática de los pasos del código de pruebas a partir de los escenarios descritos Ventajas y Benefícios de BDD •10
  • 11. TDD- Ejercita el código vinculado a cada método del objeto. BDD -valida si el resultado presentado por la UI está de acuerdo con el comportamiento definido en los ejemplos en el User Story. Diferencias fundamentales del BDD x TDD •11 10 0 Pasó por el tratamiento de Excepciones? 10 0 Popup con el mensaje "Error: División no válida"?
  • 12.  Implementar la definición de User Stories como detalle de requisitos  Envolver al usuario en la definición de los ejemplos concretos para las pruebas  Puntuar la historia de usuario mediante la definición de las pruebas de aceptación para servir como base para la ejecución de las pruebas en el BDD  Implementar una arquitectura con la herramienta BDD (Specflow / Cucumber / Jbehave) que se ejecuta en varias plataformas  Puntuar las tareas de mantenimiento para contemplar el mantenimiento de los escenarios implementados en la herramienta de BDD Por donde comienzo? •12
  • 13. Buenas prácticas para la implementación del BDD •13 Involucramiento en las User Stories User Stories siguiendo el estándar INVEST Coach Arquitectura Herramienta BDD Entregar el BDD en Sprint
  • 14.  Es una herramienta Opensource integrada al ecosistema .Net que genera y ejecuta pruebas definidas a partir del patrón Given-When- Then  Es totalmente integrado al entorno Visual Studio contemplando plantillas de proyectos que pueden ser instanciadas en el propio Visual Studio.  Soporta marcos de pruebas como MSTest y Nunit (2 y 3)  Utiliza como notación de ejecución de pruebas el WebDriver del Selenium, ampliamente conocido en el mercado.  Después de la configuración correcta, puede ejecutar multibrowsers (Chrome, IE y Firefox) Que és Specflow? •14
  • 15. Definición de las características Definición de los escenarios Definición de los pasos Código de implementación de los pasos Biblioteca de Automatización de IU Ejecución de los escenarios Analizar los defectos generados por la ejecución de los escenarios Corregir el código de producción para la resolución de defectos Dinamica de SpecFlow •15 Orientación de Negócios Orientación Técnica Orientación de NegóciosOrientación Técnica
  • 16. Arquitectura .Net de Ejecución con Continuos Delivery •16 Arquitetura 1.Builds 2.Runs 5. Drives 3. Drives 4. Drives TFS Build SpecFlow Paquete NUnit Paquete Selenium Paquete Prueba ejecutable 5. Outputs
  • 17. Ejemplo SpecFLow – escenario Válido •17
  • 18. Exemplo SpecFLow – Cenário Inválido •18
  • 21.  El BDD es una realidad en el mercado y posee una herramienta fuerte  Una de las pruebas automatizadas en la versión funcional a través de BDD y de la técnica de visión a través de TDD, sin potencial alguno para calmar un software de calidad que se entrega de acuerdo con las premisas principales.  Temiendo que haya invertido en tiempo y recursos una curva de aprendizaje para los primeros proyectos utilizando BDD.  El ideal es papeles diferentes para una creación de las pruebas TDD y otro para la creación de las pruebas BDD Conclusión •21
  • 22. •© FATTO Consultoria e Sistemas - www.fattoCS.com.br [Twitter] https://www.facebook.co m/marcelo.costa.92123 [MARCELO NASCIMENTO COSTA] linkedin.com/in/marcelo- costa-aa04174 marcelo.costa@fattocs.com.br [Website] marncosta