miércoles, 27 de febrero de 2013

BDD con Cucumber y Java 1/2

En esta ocasión me voy a salir un poco del tema habitual de Android y celulares, en mi trabajo hemos estado un bastante ocupados y me pareció una buena oportunidad para hablarles sobre como hacer pruebas de comportamiento usando Java y Cucumber usando el framework (cucumber for jvm). Primero que nada durante el desarrollo de software es muy importante realizar la mayoría de pruebas posibles sobre tu código para asegurar la calidad, no mencionare las diferentes ideas y metodologías que existen sobre desarrollo y prueba de software ya que no es la finalidad de este articulo, cada equipo y/o desarrollador es responsable de como manejar su ciclo y asegurar que su aplicación no falle horriblemente.

Dentro de las diferentes técnicas de desarrollo de software; BDD (Behavior Driven Development) o desarrollo basado en comportamiento, se ha vuelto muy popular en varios proyectos de software grandes. Esta técnica complementa muy bien a la metodología ágil y TDD (Test Driven Development) las cuales son la forma y técnicas mas populares de desarrollar software en la actualidad (a mi parecer). Primero una poca de explicación sobre lo que es BDD. Como el nombre en ingles lo dice, este desarrollo se centra en el comportamiento de las cosas; basándose en que el modulo es una caja negra para el usuario. Esto quiere decir que el comportamiento se evalúa de acuerdo a las salidas que este presenta basado en determinadas entradas. En pocas palabras es describir el comportamiento y asegurarse que este comportamiento sea cumplido. La finalidad es que estos escenarios de comportamiento sean escritos por un agente externo, como un business user o un usuario avanzado, en su propio lenguaje (sin necesidad de un lenguaje de programación) y que estos comportamientos se prueben automáticamente en cierto punto del desarrollo.

Cuando iniciemos el desarrollo tendremos una lista de escenarios escritos por nuestro agente los cuales describirán los puntos a considerar para marcar el desarrollo como éxito o fracaso. Por ejemplo digamos que estamos escribiendo un programa que imite a una calculadora. Nuestro agente podría decir para que una calculadora sea efectiva debe de sumar, restar, multiplicar y dividir correctamente, por lo tanto nuestro usuario nos daría una lista de escenarios parecida a esta:

Escenario: Probar suma Escenario: Probar resta
Cuando escribo 2 en la calculadora Cuando escribo 5 en la calculadora
Y presiono la tecla + Y presiono la tecla -
Y escribo 5 en la calculadora Y escribo 2 en la calculadora
Y presiono la tecla = Y presiono la tecla =
Entonces El resultado sera 7 Entonces El resultado sera 3

Como se puede ver no es necesario ningún lenguaje de programación, nuestro agente puede especificar cualquier numero de escenarios y en cualquier formato (siempre y cuando siga algún tipo de regla que re pueda programar). Si estos pasos se cumplen al momento de ejecutar nuestra calculadora podemos decir que nuestro código ha sido exitoso.

Vean la segunda parte de este articulo para saber como utilizar Behavior Driven Development (BDD) con Cucumber y Java.

No hay comentarios:

Publicar un comentario