Diseñando objetos con BDD de especificaciones

Ya hemos visto en los artículos anteriores como utilizar el lenguaje natural del cliente para describir un sistema utilizando BDD de historias, y comunicar el comportamiento esperado a través de un conjunto de escenarios. Hoy comenzaremos a adentrarnos en el segundo nivel de BDD, para especificar el comportamiento del sistema a nivel técnico.

Continuar leyendo →

BDD de historias: un ejemplo concreto en PHP

A continuación, veamos como es la implementación en PHP del ejemplo presentado en BDD de historias: un ejemplo concreto. Las librerías y herramientas Para este ejemplo concreto, realizado en PHP, voy a utilizar las siguientes librerías y herramientas: Silex: Silex es un micro framework basado en los componentes de Symfony2, el cual permite construir rápidamente una aplicación sencilla en PHP. También utilice Twig como mecanismo de plantillas para la vista. Behat: Behat es un proyecto inspirado en Cucumber, y que es capaz de interpretar nuestras características y escenarios usando el mismo formato Dado/Cuando/Entonces (llamado Gherkin). Continuar leyendo →

BDD de historias: un ejemplo concreto en Java

A continuación, veamos como es la implementación en Java del ejemplo presentado en BDD de historias: un ejemplo concreto.

Continuar leyendo →

BDD de historias: un ejemplo concreto

Para continuar con la serie de artículos acerca del Desarrollo Guiado por Comportamiento, hoy les traigo un ejemplo de BDD de historias, junto con sus implementaciones en Java y PHP. La historia y sus escenarios Como he comentado en la serie de artículos de BDD, nuestra intención es partir desde los requerimientos del cliente. Así, para este ejemplo, vamos a partir con la siguiente historia de usuario (característica del sistema): Característica: Suma de dos números Como matemático novato Yo quiero obtener la suma de dos cifras Para aprender a sumar Para poder implementar esta sencilla característica de suma de dos cifras, nos reunimos el equipo y determinamos algunos escenarios con ejemplos concretos que podamos validar. Continuar leyendo →

Automatizando la verificación de historias en BDD

En el artículo Describiendo Sistemas con BDD, vimos como escribir los requerimientos de un sistema utilizando el lenguaje natural del cliente, y describiendo los escenarios principales mediante una serie de pasos. En este artículo comentaré acerca de cómo automatizar estos requerimientos, y algunos tips que debemos tener en cuenta.

Continuar leyendo →

Participando en dojos de agilidad

La semana pasada tuve la oportunidad de participar en 3 Dojos de agilidad patrocinados por Kleer, dictados por Carlos Peix @carlospeix, instructor y coach de agilidad. El sitio de encuentro fue HackBo, un espacio comunitario para la realización de eventos relacionados a tecnología y nuevas tendencias en Bogotá. A continuación les comento mis impresiones: ¿Qué son los dojos de agilidad? El término dojo proviene de las artes marciales, y en esencia es un sitio para la práctica y aprendizaje. Continuar leyendo →

Describiendo sistemas con BDD

Luego de mi Introducción a BDD, quisiera comenzar a escribir acerca de BDD de historias, o Story BDD. Se trata de la parte de BDD que cubre las especificaciones de un sistema, expresadas en el lenguaje natural de nuestro cliente mediante características y escenarios.

Continuar leyendo →

Introducción a Desarrollo Guiado por Comportamiento (BDD)

A finales del año 2011 decidí que el 2012 sería el año en el que me enfocaría en aprender todo lo relacionado a las prácticas de pruebas del mundo ágil. Ya para ese entonces escuchaba y leía de BDD (Desarrollo guiado por comportamiento) pero decidí que me enfocaría en TDD “puro y simple” antes de comenzar a explorar otras prácticas “más avanzadas”. Y ahí fue cuando comenzo mi frustración.

Continuar leyendo →

Usando git de manera remota

En el primer artículo, Usando Git de manera local, mostré algunos de los comandos más útiles a la hora de trabajar con git de manera local. Continuando la serie de artículos de git, en esta oportunidad tratare el tema de los remotos. Git es un sistema de control de versiones distribuido, lo que nos permite conectar nuestro repositorio local a otra copia remota, y de esa manera poder trabajar en equipo con otros desarrolladores.

Continuar leyendo →

¿Qué hay en una historia?

En estos dias he estado trabajando en un proyecto probando la práctica de especificación mediante ejemplos, o como es más comunmente conocida, desarrollo dirigido por comportamiento. Entre los principales promotores de esta práctica esta Dan North, quien ha escrito varios artículos del tema. Como no se consigue mucha documentación (a la fecha solo aparenta haber un libro dedicado, el de Especificación Mediante Ejemplos de Gojko Adzic), he decidido traducir un artículo titulado ¿Qué hay en una historia? para ponerlo a disposición del público latinoamericano, ya que lo considero excelente para orientarnos en cómo escribir historias de usuario con pruebas de aceptación. Demás esta decir que las opiniones expresadas son las del autor original y no las mias propias. ¡Que lo disfruten!

Continuar leyendo →