deSymfony 2012

Desarrollo guiado por comportamiento (BDD) con Symfony, Behat y Mink

Carlos Granados  · 

Presentación

Vídeo

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

estamos todos bueno buenos días muchas gracias por venir a mi presentación también quiero dar gracias a los patrocinadores que gracias a ellos estamos todos aquí estamos también los ponentes para poder transmitir los nuestros conocimientos y me gustaría empezar

presentándome un poco me llamo carlos granados vengo desde pontevedra eso que se ve ahí al fondo es la ría de pontevedra y la verdad que allí se ve muy bien los invito a visitarme y desde esta mañana soy symphony web certified de verdad en cuanto a la historia

yo llevo desarrollando software desde los tiempos pretéritos esto que veis aquí es una foto del año 85 que salió en el país semanal en un artículo que se llama algo así como los geniecillos de la informática en el cual salimos yo de aquellos tiempos hacía

videojuegos videojuegos para spectrum amstrad y estas cosas estas maquinitas que sobran así como de vuestros nietos y eso empezará y empecé yo dedicándome a la informática durante más de 15 años estuve con una empresa que se llamaba figuras que hacíamos videojuegos

videojuegos para todo tipo de plataformas y ordenadores personales pc consolas máquinas recreativas en el año 96 creé una empresa de desarrollo web nosotros iremos a las empresas iniciamos nos decían páginas que fuimos un poco adelantadas para nuestro tiempo

y después pasamos a la empresa también de videojuegos lo que pasa que laia videojuegos para móviles después cuando fui a vivir a pontevedra durante 5 años he estado llevando una tienda de comercio electrónico la que hacía de todo desde el desarrollo de la

plataforma todo el tema logístico todo todo lo que tiene que ver con como electrónico con lo cual aprendí mucho ahí y ahora desde hace un par de años trabajo para una empresa que es efe de internet and mobile una empresa de madrid que desarrolla aplicaciones

web y aplicaciones para móviles cuál es mi experiencia con symphony básicamente llevamos ocho meses desarrollando un producto que es clipping book puntocom que lo podemos definir como una especie de mezcla entre el interés de flipboard es una aplicación que

te permite navegar por internet y recoger cosas que te interesan fotos vídeos imágenes textos recortarlos y construir con ello un libro interactivo en internet que puedes ver navegar pasar sus páginas y todo eso y que acabamos de lanzar en beta hace como un

mes aproximadamente durante ese tiempo unos seis meses aproximadamente hemos estado utilizando be hat para desarrollo y testeo de la aplicación bueno que es de bebé es la traducción en inglés es behavior driven development que podemos traducir lo literalmente

por desarrollo basado en comportamiento en realidad yo diría que una traducción mejor es el desarrollo basado en funcionalidad qué es lo que se trata lo que queremos es nosotros realmente hacemos muchos tests extinta digital pero tenemos un problema que es

el que nuestros tests pasen realmente no demuestra que la funcionalidad que quería nuestro cliente la hemos conseguido lo único que hemos demostrado que tenemos un programa que funciona pero funciona bien pero no sabemos si hace lo que nos ha pedido el cliente

hemos hecho un coche pero a lo mejor no es el coche de pedido un coche deportivo nosotros muchos 600 y podría funcionar conducir pero lo que yo había perdido en un deportivo entonces eso no lo conseguimos demostrar entonces en vez de de lo que hace se trabaja

con unas historias de esas historias están definidas en un lenguaje que es natural es un lenguaje que podemos todos comprender ese lenguaje que puede entender el cliente y nosotros como desarrolladores también podemos entender tenemos un lenguaje en el que

nos comunicamos y en el que los podemos poner de acuerdo en las características que queremos desarrollar entonces pero aparte es un lenguaje natural en el que nos entendemos es un lenguaje bien definido y es un lenguaje automatizable con lo cual después podemos

coger ese lenguaje y pasarlo por herramientas de software que nos permitan trabajar con él y utilizarlo para desarrollar nuestro proyecto entonces lo que queremos hacer es que estas historias que hemos definido en acuerdo con el cliente sean las que dirijan

nuestro desarrollo nuestro desarrollo parte de estas historias hemos acordado que son la funcionalidad en la que estamos todos de acuerdo que hay que desarrollar entonces él partiendo de eso a esta es la funcionalidad que vamos a ir haciendo nosotros dirigido

por esto que hemos acordado y igualmente nos permiten después comprobar una vez que hemos implementado que lo hemos hecho bien y no sólo que hemos hecho un programa que funciona sino que funciona de acuerdo a las especificaciones que hemos definido en estas

historias e historias en inglés lo que se hacen es exagerar una serie de características características que son puntos individuales en los que nos ponemos de acuerdo que ese programa es el software va a tener la funcionalidad que se especifican por un poco

pues áreas de dominio o sea pues yo que sé una página web pues lo mejor podemos definir unas características que tienen que ver con el registro y identificación del usuario otras que tienen que ver con la presentación de las ofertas otras que tienen que ver

con la presentación del catálogo es os vamos separando un poco así como por apartados y para entonces estas características las definimos mediante un fraseo en inglés que es el siguiente yo como un algo un personaje un rol nuevamente un usuario un cliente

un cliente identificado un administrador depende un poco de lo que queremos significar quiero una característica x la que sea de forma que pueda tener un beneficio vale entonces disculpando esto es que en la pantalla un poco más estrecha de lo que es entonces

parece que se mezclan esto definimos a través de una serie de escenarios ya esta característica general que es lo que crece bueno por ejemplo el tema de lo que arme como usuario pues un primer escenario yo soy un usuario que no se ha registrado nunca entonces

qué es lo que hay que pasar pues esto esto y esto otro segundo escenario soy un usuario que ya se ha registrado y quiere lograr se vale esto es nuestro tercer escenario soy un usuario que se ha registrado pero no se acuerda la contraseña pues tiene que pasar

esto esto y esto entonces que hacemos es definir una serie de pasitos que tienen que ocurrir para cada uno de estos escenarios estos pasitos tienen primero unas precondiciones que en inglés sea un crimen o sea por ejemplo por lo que decíamos soy un usuario

que está registrado entonces precondición existe el usuario precondición el usuario se acuerda de la contraseña después ocurren una serie de acciones el usuario va a la homepage el usuario introduce pulsa el botón del o bien el usuario introduce su nombre

y contraseña el usuario pulsa el botón de registrarse y después hay una serie de resultados pues si se han dado todos estos pasos entonces tenemos que acabar que elogiar al usuario y entonces tenemos que acabar en la página de cuenta del usuario por ejemplo

ya tenemos eso es como una máquina que procesa el resultado tenemos precondiciones acciones y resultados por poner un ejemplo pues aquí tenemos un ejemplo del lenguaje que se utilizaría en estos casos yo digo este es el caso para un cajero automático un usuario

quiere retirar dinero yo como un usuario que tiene una cuenta ya está identificando para quién es el problema que estoy yo trabajando lo que quiero es retirar dinero del cajero y es para que quiero retirar el dije retira de nuevo el cajero pues lo que quiero

es poder sacar dinero cuando el banco está cerrado vale entonces ya un poco ahí nos ponemos en situación de cuál es el problema que queremos resolver entonces vamos a ver un primer escenario en la cuenta hay fondos suficientes ese es nuestro primer escenario

entonces hacemos lo primero precondición pues la cuenta hemos decidido que hay 100 dólares 100 euros perdón vale entonces también otra condición la tarjeta es válida no es una tarjeta que ya está caducada o lo que sea y además el cajero tiene dinero no es

un cajero que se ha quedado sin pasta valència que es una de las condiciones entonces qué pasa pues luego llega el usuario inserta la tarjeta y después solicita veinte euros que tendría que ocurrir pues que el cajero le dé los veinte euros que su cuenta le

reste esos veinte euros y que después le devuelva la tarjeta entonces tenemos aquí unas características y unos pasos y unas condiciones en las que es muy fácil ponerse de acuerdo con el cliente porque es una cosa que es muy evidente es mira va a ocurrir esto

si esto esto esto esto ya lo mejor el cliente tiene pero te puedo decir bueno pues que también le tiene que imprimir el recibo entonces añadimos una cosa ahí el recibo lo tiene que imprimir vale entonces un poco así entre ese diálogo entre el cliente el desarrollador

y tal se obtienen unas especificaciones muy concretas y muy fijas esto que hemos visto está escrito un lenguaje que se llama que aquí ya lo inventaron los desarrolladores de cucumber cucumber es la herramienta de vdd más conocida es una herramienta para rugby

y fue la primera herramienta de vdd realmente potente y realmente interesantes de utilizar ese lenguaje como habéis visto un lenguaje muy natural y muy comprensible todos lo entendemos lo por entender yo y mi abuela pero es un lenguaje muy específico y muy

[ ... ]

Nota: se han omitido las otras 4.680 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.