Las pruebas de aceptación están muertas

OkVamos a un tema controversial. Hay varios informes dando vueltas sobre el éxito de escribir los requerimientos y automatizarlos a través de pruebas de aceptación (a veces llamado Requerimientos Guiado por Pruebas, Desarrollo Guiado por Historias, y -dependiendo de a quién le pregunten- Desarrollo Guiado por Comportamiento o BDD). Sin embargo en la práctica sólo una muy pequeña parte de la comunidad utiliza esta técnica. Y ya hay varios líderes conocidos que salieron a decir que las pruebas de aceptación son una mala idea y un desperdicio de esfuerzo.

Las pruebas de aceptación que se escriben al inicio de cada iteración, ¿son una buena idea en la teoría que se convertió en una práctica inefectiva por la falta de adopción? 

Leer más...

Tutorial de Compass

Compass LogoGracias al aporte de parivero hoy publicamos el tutorial Introducción a Compass veremos varios ejemplos de integración entre Compass, Lucene, Hibernate y Spring Framework, que nos permitirán crear índices complejos de manera muy simple.

Compass es un proyecto Java de software libre que se encarga de simplificar la integración de motor de búsquedas e indexación Apache Lucene.

Leer más...

Utilizando un DSL con Drools

DroolsEn la nota anterior vimos algunos conceptos básicos de Drools e hicimos un pequeño ejemplo utilizando un archivo de reglas DRL. En este segundo artículo vamos a modificar el mismo ejemplo para crear un DSL (lenguaje específico de dominio), el cuál sea más cecano al lenguaje del usuario.

Leer más...

Inyección de dependencia en Java

Ya hace algunos años Google y SpringSource proveen frameworks de inyección de dependencia a través de sus proyectos open sources llamados Google Guice y Spring Framework, respectivamente. Igualmente, hasta hace poco tiempo atrás, no había un patrón independiente para que los desarrolladores cambiasen de framework sin tener que actualizar sus archivos fuente. Aunque si todo ocurre como lo planeado, algunas de las principales anotaciones e interfaces de inyección de dependencia serán nativas en Java SDK. 

Leer más...

NetBeans 6.7 RC1 listo para descargar

NetBeansCumpliendo con su plan de realizar entregas más frecuentes, ya está disponible para descargar NetBeans 6.7 Release Candidate 1, la nueva versión del entorno de desarrollo.

Esta versión, que si todo sale bien tendrá su versión final para fines de Junio, cuenta con soporte para Java, C/C++, PHP, Groovy y Ruby. Se incluye mejoras en el soporte para Maven, e integración con Kenai.com (que permite crear y compartir proyectos online, con otros desarrolladores). Sobre esto último hay un tutorial para crear un proyecto Kenai dentro de NetBeans 6.7.

Tutorial de Groovy

GroovyGroovy es un lenguaje dinámico ágil para la plataforma Java. Puede utilizarse como alternativa a Java, o como lenguage de scripting dentro de Java.

En el nuevo Tutorial de Groovy presentamos una introducción a este interesante lenguaje. Durante el curso veremos: 

  • conceptos básicos del lenguaje
  • uso de closures
  • manipulación de textos
  • lectura y escritura de archivos
  • lectura de XML
  • expresiones regulares
  • acceso a bases de datos

Además el tutorial incluye un proyecto para descargar con varios script de ejemplo.

Procesamiento con Spring Batch 2.0

spring frameworkGracias a los aportes de ale_holman y parivero contamos ahora con el tutorial Procesamiento con Spring Batch 2.0, una actualización completa del curso anterior para utilizar la nueva versión de este framework para el procesamiento por lotes.

En esta nueva versión se revisaron todos los capítulos y ejemplos para incluir la nueva librería Spring Batch 2.0. Además, se agregaron ejemplos para el manejo de excepciones y una muy interesante integración con Compass y Apache Lucene, para crear índices de manera simple.

Leer más...

Primeros pasos con Drools

droolsEn una nota anterior se presentó a Drools, un motor de reglas Java que se encarga de aplicar reglas de negocio dentro de nuestras aplicaciones. De esta manera aparece el concepto de Sistema de Administración de Reglas de Negocio (BRMS - Business Rules Management System), el cual nos permite parametrizar las reglas del negocio de forma externa a la aplicación que las utiliza.

En este artículo vamos a ver un poco más sobre Drools, y daremos los primeros pasos con este framework junto a un pequeño ejemplo de uso.

Leer más...

Drools 5.0 publicado

DroolsEl equipo de Drools acaba de anunciar la publicación de Drools 5.0, una nueva gran versión del motor de reglas más conocido en Java. Y el cambio más grande es que ahora vamos a tener que dejarlo de llamar "motor de reglas"! 

El API y la implementación de Drools tiene una nueva separación que no está más orientada a las reglas. Es un cambio estratégico importante, ya que Drools apunta a soportar otros tipos de lógica, como workflows y procesamiento de eventos. En vez de "orientado a las reglas", Drools está "orientado al conocimiento".

Leer más...

Armando un mock de un servidor HTTP

JettyLos Mock Objects son "objetos falsos" que sustituyen a otro en funcionalidad. Se utilizan ampliamente en las pruebas unitarias para poder simular el comportamiento de las dependencias. Por suerte hay varios frameworks que nos permiten crear mocks de objetos facilmente. Pero, ¿qué pasa cuando la dependencia es un servidor HTTP externo? Supongamos que tenemos un objeto que realiza alguna petición HTTP a un servidor web externo, que brinda algún tipo de servicio. ¿Cómo podemos simular el comportamiento de este servidor?

En este artículo vamos a ver cómo armar una prueba unitaria con JUnit que utilice Jetty para simular el comportamiento de un servidor HTTP.

Leer más...

Apache Hadoop bate dos récords mundiales

Apache HadoopEl equipo de Yahoo anunció que logró batir el record en el concurso anual GraySort, siendo ganador en 2 categorías. GraySort consiste en un conjunto de benchmarks, cada uno con sus propias reglas. Todos los benchmarks miden el tiempo para ordenar distinta cantidad de registros de 100 bytes cada uno (los primeros 10 bytes son la clave del registro, el resto el valor).

Para repartir la carga utilizaron un cluster gigante coordinado con Apache Hadoop. De esta manera, Apache Hadoop logró ordenar 1 Terabyte de datos en 62 segundos, y 1 Petabyte en 16.25 horas. Es la primera vez que un producto de software libre logra ganar esta competencia.

Leer más...