Guia de Jenkins

On 10 septiembre, 2012, in Herramientas, by twiindan

El otro dia hablamos de los sistemas de integración continua. Comentamos varias herramientas como Jenkins (antiguo Hudson) o Cruise Control.

En mi caso siempre he utilizado Jenkins, ya que a sido la que más plugins tiene desarrollados y mejor se integraba con las herramientas y arquitecturas que se estaban desarrollando. Aquí comparto una guía totalmente gratuita sobre Jenkins donde explica como empezar o como realizar la mayoria de las funciones de este particular “mayordomo”.

El libro se puede descargar gratuitamente de la pagina web de “Wakaleo” (rellenando unos datos)  o se puede comprar en la editorial O’Reilly por 35 dolares.

 

Tagged with:  

Un poco de humor para alegrar el día 🙂

Tagged with:  

Seguro que más de uno de vosotros habéis tenido que realizar una integración entre diversos componentes de software que llevan mucho tiempo sin integrarse… normalmente esto provocaba una situación de incompatibilidades entre los componentes que comprometía una perdida de tiempo muy grande en el desarrollo del software.

Para solucionar este escenario, una de las prácticas que se está implantando en las empresas dentro del desarrollo de software es el sistema de integración continua. Pero que es realmente este sistema?

Según la definición de Martin Fowler: “La integración continua es una práctica de desarrollo de software en la cuál los miembros de un equipo integran su trabajo frecuentemente, como mínimo de forma diaria. Cada integración se verifica mediante una herramienta de construcción automática para detectar los errores de integración tan pronto como sea posible. Muchos equipos creen que este enfoque lleva a una reducción significativa de los problemas de integración y permite a un equipo desarrollar software cohesivo de forma más rápida.”

Para ello se pueden utilizar un software especializado en automatizar tareas y que estas se ejecuten de forma automática cuando se genere un evento como puede ser Cruise Control o Jenkins. Que tareas se pueden automatizar en estas plataformas?

  • Compilación de los componentes
  • Integración de todo el desarrollo
  • Ejecución de pruebas unitarias
  • Ejecución de pruebas de integración
  • Ejecución de pruebas de aceptación
  • Obtener métricas de calidad de código
  • Despliegues automáticos

Estos son solo algunos ejemplos de las tareas automaticas que se pueden realizar si aplicamos una metodología de integración continua con alguna de las herramientas que hemos comentado anteriormente y de sus plugins. Realmente se pueden automatizar muchas más tareas, ya que son herramientas muy versátiles a las que se le pueden añadir plugins para aumentar la funcionalidad.

Como funciona realmente? La herramienta se conecta automáticamente a un repositorio de versiones (SVN, CVS, GitHub, Mercurial…) y detecta cuando se ha subido una nueva versión de código en el repositorio. Una vez detectado el cambio se desencadenan las operaciones automáticas que se hayan configurado en la herramienta como la compilación o la ejecucción de tests unitarios.

Que conseguimos realmente con esto?

  • Un feedback temprano al equipo ya que en el caso de que el software no compile o no pase los tests unitarios el sistema avisara como que ha habido una compilación fallida.
  • Tenemos una build de forma automática cada vez que se suba el código al repositorio. Esto implica una reducción del riesgo a la hora de integrar el producto.
  • Permite la detección temprana de bugs, ya que estos se detectaran también en la subida de código al ejecutarse las pruebas de integración y aceptación de forma automática
  • Monitorización constante de las métricas del software (duplicidad de código, coberturas, complejidad…).

Como véis ventajas muy importantes y que nos permiten bajar los riesgos de la construcción del producto y poder reaccionar con mayor rapidez cuando se introducen bugs en el código o se sube una compilación fallida.

Con la integración continua ya no oiremos más “it works in my machine!!!!”

Más información: http://martinfowler.com/articles/continuousIntegration.html

Tagged with:  

Despues de este paron veraniego de escribir, vuelvo a estar aquí con las pilas recargadas!

Estaba pensando esta mañana con que volver a escribir cuando me ha llegado que Testing Experience tiene un nuevo número! Que mejor manera de volver a escribir que como lo deje, anunciando los articulos de esta gran revista sobre testing!

En esta ocasión el tema a tratar es sobre un mundo que se esta poniendo muy de moda y que esta en pleno auge como es el Testing en dispositivos moviles. Sinceramente yo estuve un tiempo enfranscado con este tema durante el año pasado y me parecio que era un mundo que aun estaba bastante verde en general y que se estaba acabando de definir. Igualmente he visto ya cosas muy chulas en automatización con Robotium y alguna cosa con Cucumber!

A parte quería aprovechar para felicitar a mi compañero del trabajo Ruben Fernandez que despues de muchos años que le diera por culo para que escribiera algo se ha decidido ha hacerlo!!!! Si al final voy a ser una persona persuasiva y todo :). Os aconsejo su articulo “Testing on a Real Handset vs. Testing on a Simulator – the big battle” y espero que este solo sea el primero de muchos articulos 😉

Recordad que la podéis descargar de forma gratuita en la página de Testing Experience o suscribiros al formato en papel por una cuota de 8 € el numero.