Diferencia entre revisiones de «Concordion»

De Dos Ideas.
Saltar a: navegación, buscar
(Ejemplo de Uso)
(Ejemplo de Uso)
Línea 17: Línea 17:
 
     * si se invoca con un null, se tira una java.lang.IllegalArgumentException
 
     * si se invoca con un null, se tira una java.lang.IllegalArgumentException
  
Estos son los pasos que se recomiendan para empezar con [http://www.dosideas.com/java/353-que-es-bdd.html BDD] y [[Concordion]]:
+
Veamos algunos pasos claves para empezar con [http://www.dosideas.com/java/353-que-es-bdd.html BDD] y [[Concordion]]:
  
1. Elegimos una de las historias a ser implementada por el proyecto.
+
1. Elegir una de las historias a ser implementada por el proyecto.
  
 
Si trabajamos con [[Scrum]], trabajamos con historias, y supongamos que en esta iteración nos toca trabajar con la historia "Obtener Provincia". Para esto tenemos que tener en claro el contrato de negocio que acompaña a esta historia.
 
Si trabajamos con [[Scrum]], trabajamos con historias, y supongamos que en esta iteración nos toca trabajar con la historia "Obtener Provincia". Para esto tenemos que tener en claro el contrato de negocio que acompaña a esta historia.

Revisión del 12:23 19 mar 2009

Concordion es un framework Java de Software Libre que permite convertir especificaciones en texto común sobre requerimientos en pruebas automatizadas.

Las especificaciones

En Concordion, las especificaciones(o pruebas de aceptación) se escriben normalmente en archivos HTML, usando tablas y todos los elementos comunes para darle formato. De esta manera se logran especificaciones muy fáciles de leer y que todos pueden comprender (desde analistas de negocio hasta desarrolladores).

Las pruebas

A partir del requerimiento en HTML se realizan asociaciones entre el texto y las pruebas (instrumentación del HTML), extrayendo la información valiosa para la prueba automatizada.

Las pruebas en Concordion son pruebas JUnit.

Ejemplo de Uso

Tomamos una pequeña aplicación de servicios que desarrollamos en el Curso de Introducción al desarrollo Java EE. Donde necesitamos hacer un servicio que, dado un id de provincia, devuelva la provincia en cuestión. El contrato de negocio dice que:

   * si se invoca con un id existente, se devuelve la provincia correspondiente
   * si se invoca con un id inexistente, se devuelve null
   * si se invoca con un null, se tira una java.lang.IllegalArgumentException

Veamos algunos pasos claves para empezar con BDD y Concordion:

1. Elegir una de las historias a ser implementada por el proyecto.

Si trabajamos con Scrum, trabajamos con historias, y supongamos que en esta iteración nos toca trabajar con la historia "Obtener Provincia". Para esto tenemos que tener en claro el contrato de negocio que acompaña a esta historia.

2. Escribir la página con las especificaciones de la historia.

La página tiene que ser un resumen del criterio de aceptación acordado por el grupo. Es el acuerdo al que se llega entre desarrolladores, tester, dueño del producto y analista de negocio.

Podríamos dividir la página en sesiones: "Automatizado", "Manual" y "Fuera de Alcance". Idealmente, la prueba de aceptación debiera estar totalmente automatizada, pero en ocasiones se necesitan pruebas manuales, por ejemplo, cuando la prueba no es fácil de automatizar.

3. Escribir el detalle del criterio de aceptación.

Esto se escribe y acuerda como equipo antes de comenzar a escribir líneas de código.

Si la página HTML, usa el título Automatizado. Lo que sigue al título es un link a cada prueba de aceptación. Los tests se organizarán de forma que sean facilmente navegable.

Cada página necesita un encabezado conciso, una descripción y uno o más ejemplos. Agregando a la pagina HTML, una sesión de "Escenarios Alternativos", podemos incorporar un link por cada cuestión a la funcionalidad. Y ese link es a otra especificación sencilla.

4. Ahora, todos sabemos que significa que la historia está terminada.

Lleva algún tiempo escribir el criterio de aceptación, quizás 2 o 3 horas para una historia de 5 dias. Pero esto se gana en términos de enfoque, cobertura de los test, y el alcance de la funcionalidad.

5. Una vez completa la especificación, estamos listos para desarrollar el cumplimiento de la especificación.

Ver también