SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Introducción al desarrollo guiado
por comportamiento
Un caso práctico en PHP con Behat y
phpspec
Sobre mi
Alejandro Hernández Segura
• Desarrollador PHP y Symfony
• Trabajo para ARK Schools (Londres)
• @aleherse
• github.com/aleherse
• slideshare.net/aleherse
MOTIVACIÓN
Desarrollo en cascada
Hemos desarrollado una compleja ceremonia
que nos permite asegurarnos de que hemos
pensado todas las posibles repercusiones y
cubierto todos los posibles ángulos y giros lo
antes posible de forma que no podamos ser
sorprendidos por situaciones inesperadas.
Herencia de la ingeniería civil
“A building goes together with seven billion
pieces of connective tissue. The chances of it
getting done ever without something colliding
or some misstep are small.”
[Frank Gehry]
The agile manifesto
Estamos descubriendo formas mejores de desarrollar
software tanto por nuestra propia experiencia como
ayudando a terceros. A través de este trabajo hemos
aprendido a valorar:
• Individuos e interacciones sobre procesos y herramientas
• Software funcionando sobre documentación extensiva
• Colaboración con el cliente sobre negociación contractual
• Respuesta ante el cambio sobre seguir un plan
Esto es, aunque valoramos los elementos de la derecha,
valoramos más los de la izquierda.
Idea central
Entregar iterativamente software funcional en
una pequeña escala de tiempo
Objetivos
• Evitar entregar tarde o con sobrecoste.
• Evitar entregar algo incorrecto.
• Evitar inestabilidad en producción.
• Evitar altos costes de mantenimiento.
Coste de volverse ágil
• Planificación basada en resultados.
• Flujo continuo de requerimientos.
• Diseño evolutivo.
• Continuos cambios en el código existente.
• Integración frecuente del código.
• Tests regresivos continuos.
• Frecuentes puestas en producción.
• Equipo en la misma localización.
BDD
“Behavior-driven development is about
implementing an application by describing its
behaviour from the perspective of its
stakeholder”
[The RSpec book]
• Necesitamos ver el mundo bajo el punto de
vista de nuestros clientes.
• Stakeholder son todos aquellos que puedan
tener algún interés en nuestra aplicación.
Principios en los que se basa BDD
• Suficiente es suficiente.
• Desarrollar valor para nuestros clientes.
• Todo es comportamiento.
METODOLOGÍA
Desarrollo guiado por comportamiento
debemos reunirnos con nuestros clientes y
establecer la visión o el propósito del proyecto
identificar los resultados o las metas que se deben
lograr para conseguir el objetivo
describir el tipo de cosas que el software debe
realizar en grupos de características o temáticas
¿En qué consiste una historia?
1. Título
¿En qué consiste una historia?
1. Título
2. Narrativa
¿En qué consiste una historia?
1. Título
2. Narrativa
Objetivo: In order to…
Rol: As a…
Qué hacer: I want/need to…
¿En qué consiste una historia?
1. Título
2. Narrativa
3. Escenarios
¿En qué consiste una historia?
1. Título
2. Narrativa
3. Escenarios
Título
¿En qué consiste una historia?
1. Título
2. Narrativa
3. Escenarios
Pasos
¿En qué consiste una historia?
1. Título
2. Narrativa
3. Escenarios
Pasos
Qué aceptamos como cierto: Given
¿En qué consiste una historia?
1. Título
2. Narrativa
3. Escenarios
Pasos
Qué aceptamos como cierto: Given
Qué eventos se producen: When
¿En qué consiste una historia?
1. Título
2. Narrativa
3. Escenarios
Pasos
Qué aceptamos como cierto: Given
Qué eventos se producen: When
Qué resultados se esperan: Then
¿En qué consiste una historia?
1. Título
2. Narrativa
3. Escenarios
Pasos
Qué aceptamos como cierto: Given
Qué eventos se producen: When
Qué resultados se esperan: Then
And y But lo mismo que la línea precedente
1. Título: Students pre-enrollment form
2. Narrativa:
In order to be able to apply later to sixth form
As a student
I need to give my personal information
3. Escenarios:
Student pre-enrollment from a school page
Given I access “school” frontend “pre-enrollment” page
When I enter all the information asked
And I press the submit button
Then I receive “school pre-enrollment confirmation” email
And I see “a school pre-enrollment confirmation” message
Ventajas de usar este enfoque
• Explorar el dominio del problema.
• Facilitar la conversación con clientes y equipo.
• Escribir los criterios de aceptación.
• Automatizar la comprobación de los criterios.
• Tener documentación de la lógica de negocio.
• Asignar prioridad y estimación a las historias.
UN CASO PRÁCTICO EN PHP CON
BEHAT Y PHPSPEC
¿Preguntas?
• Transparencias (goo.gl/fFbtSw)
• Ejemplo (github.com/aleherse/katas-BDD)
• Behat (behat.org)
• phpspec (phpspec.net)
• BDD, Behat, Mink Tutorial (goo.gl/xOjQ4)
• Behat by example (youtu.be/QnPmbQbsTV0)
• BDD: Busting the myths (vimeo.com/43612884)
• The Rspec book (goo.gl/aU6JM)
• PhpSpec ilustrated by examples (goo.gl/wOMKH)
• @phpspec, @BehatPHP, @everzet, @_md

Más contenido relacionado

Destacado

From User Personas to Testing: A Project Manager's Journey Towards Behat
From User Personas to Testing: A Project Manager's Journey Towards BehatFrom User Personas to Testing: A Project Manager's Journey Towards Behat
From User Personas to Testing: A Project Manager's Journey Towards BehatDesign for Drupal, Boston
 
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CICalidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CIYannick Warnier
 
To mock or not to mock
To mock or not to mockTo mock or not to mock
To mock or not to mockEloi Poch
 
TDD with BDD in PHP and Symfony
TDD with BDD in PHP and SymfonyTDD with BDD in PHP and Symfony
TDD with BDD in PHP and SymfonyKamil Adryjanek
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)Joshua Warren
 
Decoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DICDecoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DICKonstantin Kudryashov
 
BDD & Behat for Srijan Technologies
BDD & Behat for Srijan TechnologiesBDD & Behat for Srijan Technologies
BDD & Behat for Srijan TechnologiesMatt Brunt
 
Behat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdfBehat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdfseleniumbootcamp
 
PhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesPhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesMarcello Duarte
 

Destacado (14)

From User Personas to Testing: A Project Manager's Journey Towards Behat
From User Personas to Testing: A Project Manager's Journey Towards BehatFrom User Personas to Testing: A Project Manager's Journey Towards Behat
From User Personas to Testing: A Project Manager's Journey Towards Behat
 
Automated tests to a REST API
Automated tests to a REST APIAutomated tests to a REST API
Automated tests to a REST API
 
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CICalidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
 
To mock or not to mock
To mock or not to mockTo mock or not to mock
To mock or not to mock
 
SpecBDD in PHP
SpecBDD in PHPSpecBDD in PHP
SpecBDD in PHP
 
DDD with Behat
DDD with BehatDDD with Behat
DDD with Behat
 
TDD with BDD in PHP and Symfony
TDD with BDD in PHP and SymfonyTDD with BDD in PHP and Symfony
TDD with BDD in PHP and Symfony
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
 
Decoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DICDecoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DIC
 
BDD & Behat for Srijan Technologies
BDD & Behat for Srijan TechnologiesBDD & Behat for Srijan Technologies
BDD & Behat for Srijan Technologies
 
Behat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdfBehat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdf
 
Behat: Beyond the Basics
Behat: Beyond the BasicsBehat: Beyond the Basics
Behat: Beyond the Basics
 
PhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesPhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examples
 
BDD in my team: how we do it
BDD in my team: how we do itBDD in my team: how we do it
BDD in my team: how we do it
 

Similar a Introduccion al desarrollo guiado por comportamiento

Levantamiento de Requerimientos de Software: Perspectiva de Sherlock Holmes
Levantamiento de Requerimientos de Software: Perspectiva de Sherlock HolmesLevantamiento de Requerimientos de Software: Perspectiva de Sherlock Holmes
Levantamiento de Requerimientos de Software: Perspectiva de Sherlock HolmesVane Amaya
 
Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...
Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...
Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...Congreso Nacional de Software - IBERO 2015
 
Ejecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en InternetEjecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en InternetAsier Marqués
 
UXN 04-31 - El origen mítico del Product Backlog
UXN 04-31 - El origen mítico del Product BacklogUXN 04-31 - El origen mítico del Product Backlog
UXN 04-31 - El origen mítico del Product BacklogUX Nights
 
Gestión basada en Metodologías Ágiles
Gestión basada en Metodologías ÁgilesGestión basada en Metodologías Ágiles
Gestión basada en Metodologías Ágilesnetmind
 
¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?Carlos Elias Ochoa
 
Métodos de Integración Lean, Agile & Design Thinking
Métodos de Integración Lean, Agile & Design ThinkingMétodos de Integración Lean, Agile & Design Thinking
Métodos de Integración Lean, Agile & Design ThinkingVíctor Manuel García Luna
 
Analisis de sistemas de codigo abierto
Analisis de sistemas de codigo abiertoAnalisis de sistemas de codigo abierto
Analisis de sistemas de codigo abiertoMaestros en Linea
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)Enrique Polo
 
UX en el Proceso de Desarrollo de Producto
UX en el Proceso de Desarrollo de ProductoUX en el Proceso de Desarrollo de Producto
UX en el Proceso de Desarrollo de ProductoJulian Camacho
 
Del dicho al hecho: analizando proyectos
Del dicho al hecho: analizando proyectosDel dicho al hecho: analizando proyectos
Del dicho al hecho: analizando proyectosDisonancias
 
El dilema del product owner delivery vs disovery
El dilema del product owner delivery vs disovery El dilema del product owner delivery vs disovery
El dilema del product owner delivery vs disovery marcosnils
 
La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)Micael Gallego
 

Similar a Introduccion al desarrollo guiado por comportamiento (20)

Levantamiento de Requerimientos de Software: Perspectiva de Sherlock Holmes
Levantamiento de Requerimientos de Software: Perspectiva de Sherlock HolmesLevantamiento de Requerimientos de Software: Perspectiva de Sherlock Holmes
Levantamiento de Requerimientos de Software: Perspectiva de Sherlock Holmes
 
Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...
Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...
Levantamiento de requerimientos de software: Perspectiva de Sherlock Holmes -...
 
Producto Mínimo Viable
Producto Mínimo ViableProducto Mínimo Viable
Producto Mínimo Viable
 
Ejecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en InternetEjecución de servicios digitales y negocios en Internet
Ejecución de servicios digitales y negocios en Internet
 
UXN 04-31 - El origen mítico del Product Backlog
UXN 04-31 - El origen mítico del Product BacklogUXN 04-31 - El origen mítico del Product Backlog
UXN 04-31 - El origen mítico del Product Backlog
 
Gestión basada en Metodologías Ágiles
Gestión basada en Metodologías ÁgilesGestión basada en Metodologías Ágiles
Gestión basada en Metodologías Ágiles
 
Ingeniería de Software, Agilidad y Tecnología
Ingeniería de Software, Agilidad y TecnologíaIngeniería de Software, Agilidad y Tecnología
Ingeniería de Software, Agilidad y Tecnología
 
¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?
 
Programacion Extrema
Programacion ExtremaProgramacion Extrema
Programacion Extrema
 
Métodos de Integración Lean, Agile & Design Thinking
Métodos de Integración Lean, Agile & Design ThinkingMétodos de Integración Lean, Agile & Design Thinking
Métodos de Integración Lean, Agile & Design Thinking
 
Analisis de sistemas de codigo abierto
Analisis de sistemas de codigo abiertoAnalisis de sistemas de codigo abierto
Analisis de sistemas de codigo abierto
 
METODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TIMETODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TI
 
METODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILESMETODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILES
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)
 
UX en el Proceso de Desarrollo de Producto
UX en el Proceso de Desarrollo de ProductoUX en el Proceso de Desarrollo de Producto
UX en el Proceso de Desarrollo de Producto
 
Del dicho al hecho: analizando proyectos
Del dicho al hecho: analizando proyectosDel dicho al hecho: analizando proyectos
Del dicho al hecho: analizando proyectos
 
Scrum Master - Developer Capitulo 1
Scrum Master - Developer Capitulo 1Scrum Master - Developer Capitulo 1
Scrum Master - Developer Capitulo 1
 
El dilema del product owner delivery vs disovery
El dilema del product owner delivery vs disovery El dilema del product owner delivery vs disovery
El dilema del product owner delivery vs disovery
 
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
 
La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)
 

Último

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
 
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
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
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
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
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
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
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
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
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
 

Último (20)

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
 
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...
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.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
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
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
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
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
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.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
 

Introduccion al desarrollo guiado por comportamiento

  • 1. Introducción al desarrollo guiado por comportamiento Un caso práctico en PHP con Behat y phpspec
  • 2. Sobre mi Alejandro Hernández Segura • Desarrollador PHP y Symfony • Trabajo para ARK Schools (Londres) • @aleherse • github.com/aleherse • slideshare.net/aleherse
  • 5. Hemos desarrollado una compleja ceremonia que nos permite asegurarnos de que hemos pensado todas las posibles repercusiones y cubierto todos los posibles ángulos y giros lo antes posible de forma que no podamos ser sorprendidos por situaciones inesperadas.
  • 6. Herencia de la ingeniería civil
  • 7. “A building goes together with seven billion pieces of connective tissue. The chances of it getting done ever without something colliding or some misstep are small.” [Frank Gehry]
  • 8. The agile manifesto Estamos descubriendo formas mejores de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar: • Individuos e interacciones sobre procesos y herramientas • Software funcionando sobre documentación extensiva • Colaboración con el cliente sobre negociación contractual • Respuesta ante el cambio sobre seguir un plan Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.
  • 9. Idea central Entregar iterativamente software funcional en una pequeña escala de tiempo Objetivos • Evitar entregar tarde o con sobrecoste. • Evitar entregar algo incorrecto. • Evitar inestabilidad en producción. • Evitar altos costes de mantenimiento.
  • 10. Coste de volverse ágil • Planificación basada en resultados. • Flujo continuo de requerimientos. • Diseño evolutivo. • Continuos cambios en el código existente. • Integración frecuente del código. • Tests regresivos continuos. • Frecuentes puestas en producción. • Equipo en la misma localización.
  • 11. BDD
  • 12. “Behavior-driven development is about implementing an application by describing its behaviour from the perspective of its stakeholder” [The RSpec book]
  • 13. • Necesitamos ver el mundo bajo el punto de vista de nuestros clientes. • Stakeholder son todos aquellos que puedan tener algún interés en nuestra aplicación.
  • 14. Principios en los que se basa BDD • Suficiente es suficiente. • Desarrollar valor para nuestros clientes. • Todo es comportamiento.
  • 16. Desarrollo guiado por comportamiento
  • 17. debemos reunirnos con nuestros clientes y establecer la visión o el propósito del proyecto
  • 18. identificar los resultados o las metas que se deben lograr para conseguir el objetivo
  • 19. describir el tipo de cosas que el software debe realizar en grupos de características o temáticas
  • 20. ¿En qué consiste una historia? 1. Título
  • 21. ¿En qué consiste una historia? 1. Título 2. Narrativa
  • 22. ¿En qué consiste una historia? 1. Título 2. Narrativa Objetivo: In order to… Rol: As a… Qué hacer: I want/need to…
  • 23. ¿En qué consiste una historia? 1. Título 2. Narrativa 3. Escenarios
  • 24. ¿En qué consiste una historia? 1. Título 2. Narrativa 3. Escenarios Título
  • 25. ¿En qué consiste una historia? 1. Título 2. Narrativa 3. Escenarios Pasos
  • 26. ¿En qué consiste una historia? 1. Título 2. Narrativa 3. Escenarios Pasos Qué aceptamos como cierto: Given
  • 27. ¿En qué consiste una historia? 1. Título 2. Narrativa 3. Escenarios Pasos Qué aceptamos como cierto: Given Qué eventos se producen: When
  • 28. ¿En qué consiste una historia? 1. Título 2. Narrativa 3. Escenarios Pasos Qué aceptamos como cierto: Given Qué eventos se producen: When Qué resultados se esperan: Then
  • 29. ¿En qué consiste una historia? 1. Título 2. Narrativa 3. Escenarios Pasos Qué aceptamos como cierto: Given Qué eventos se producen: When Qué resultados se esperan: Then And y But lo mismo que la línea precedente
  • 30. 1. Título: Students pre-enrollment form 2. Narrativa: In order to be able to apply later to sixth form As a student I need to give my personal information 3. Escenarios: Student pre-enrollment from a school page Given I access “school” frontend “pre-enrollment” page When I enter all the information asked And I press the submit button Then I receive “school pre-enrollment confirmation” email And I see “a school pre-enrollment confirmation” message
  • 31. Ventajas de usar este enfoque • Explorar el dominio del problema. • Facilitar la conversación con clientes y equipo. • Escribir los criterios de aceptación. • Automatizar la comprobación de los criterios. • Tener documentación de la lógica de negocio. • Asignar prioridad y estimación a las historias.
  • 32.
  • 33. UN CASO PRÁCTICO EN PHP CON BEHAT Y PHPSPEC
  • 34. ¿Preguntas? • Transparencias (goo.gl/fFbtSw) • Ejemplo (github.com/aleherse/katas-BDD) • Behat (behat.org) • phpspec (phpspec.net) • BDD, Behat, Mink Tutorial (goo.gl/xOjQ4) • Behat by example (youtu.be/QnPmbQbsTV0) • BDD: Busting the myths (vimeo.com/43612884) • The Rspec book (goo.gl/aU6JM) • PhpSpec ilustrated by examples (goo.gl/wOMKH) • @phpspec, @BehatPHP, @everzet, @_md