Check the new version here

Popular channels

App para integrar Bugzilla & CruiseControl

Buenas...
Le comento que para la facu tuve que crear una app que medie entre estas dos herramientas; quien quizás las utilice por separado, quizás podrá implementar fácilmente el módulo y utilizarlo sin problemas.

A continuación una pequeña introducción a cerca de las herramientas para aquellos que no las conocen...

...el proyecto...


Introducción
La integración continua es una práctica de desarrollo de software en la cual el equipo de trabajo integra su código de manera personal, a intervalos regulares de tiempo; cada integración se verifica mediante un proceso de testing automático para detectar los errores de “fusión” tan pronto como sea posible. A nivel teórico, se considera que este enfoque lleva a una reducción significativa de los problemas de integración y permite al equipo desarrollar software cohesivo de forma más eficaz y eficiente. También aporta el mencionado proceso, la reducción de lapsos de integración, testing inmediato tras un commit, mejor calidad del producto gestionando mediante incidencias, reportes para seguimiento, asignación a resolutores, corrección y testing de aplicaciones.
Ha emergido esta metodología como herramienta de facto para automatizar el proceso de desarrollo, por su simplicidad para programar y ejecutar construcciones y sobre todo por la cantidad de herramientas adicionales con las que se puede integrar/ampliar su funcionalidad. Adentrándonos en el proceso de implementación, el mismo comienza cuando se descargan las fuentes desde el gestor de versiones (CVS, Git, Subversión, etc.), ejecutando el proceso de compilación a posterior (Continuum, Hudson, Jenkins, CruiseControl), realizando el correspondiente testing y la siguiente generación - administración incidencias en caso de necesitarse (Bugzilla, Mantis, Jira, etc.).



Integración CruiseControl - Bugzilla

El origen del presente proyecto radica en la necesidad de implementar una fusión de las herramientas mencionadas, lo que conlleva al desarrollo de un plug-in de capa media que realice la inserción de registros de errores tras las compilaciones realizadas por CruiseControl. Para brindar mayor especificidad, se debe realizar la anexión del sistema de bug tracking en el ambiente estable de integración continua con que cuenta el cliente de este proyecto.
La aplicación de seguimiento de incidencias utiliza un sistema de bases de datos relacional basado en PostgreSQL™ o MySQL™, herramientas estas que no disponen de soporte nativo para XML, punto que explicaremos a continuación; en el caso de CruiseControl™, maneja los registros internos en archivos XML, imposibilitando así en primera instancia la migración de datos hacia el sistema de seguimiento de bugs como Bugzilla que utilizan sistemas de bases de datos sin soporte para XML. La carencia de compatibilidad de los sistemas de almacenamiento de estos sistemas de tecnologías diversas lleva a los implementadores de plataformas de esta índole a realizar desarrollos mediante el uso de herramientas de DM por ejemplo para recibir los datos desde el origen, procesarlos y lograr una inserción en el sistema destino, logrando así una correlación de los datos con que cuenta la organización en su gestión diaria. Se plantea mediante el pedido de integración de herramientas para el ambiente de IC, el inconveniente de seleccionar la mejor forma de integrar los dos orígenes de datos, tarea que compete al equipo de resolución encargado de la ejecución del trabajo; cualquiera sea la opción elegida existen variables definidas a priori que deben remarcarse:

•La aplicación, script, código o sistema que interactúe con ambas aplicaciones debe cumplir con requisitos de seguridad establecidos y explicitados por el cliente, nunca obviando requisitos que puedan afectar o volver vulnerables las aplicaciones intervinientes.
•Se debe extraer la mayor cantidad de información posible de los registros de compilaciones disponibles en directorios de la aplicación “compilador”, a fin de simplificar a posterior las tareas de administración de incidentes en el sistema de seguimiento.
•El sistema, aplicación, o modulo a desarrollar, debe actual a nivel de capa media (middleware), haciendo de nexo entre compilador y s sistema de seguimiento de incidencias, siendo invocado a posterior de un ciclo completo de compilación.

En el marco de la investigación y desarrollo del módulo de middleware necesario para integrar estos productos cabe destacar que el producto obtenido del presente trabajo debe además de cumplimentar los requisitos del cliente y de funcionalidad establecidos a priori, ser de total transparencia para el usuario final, contando además con un mantenimiento mínimo o inexistente, habiendo superados las pruebas de performance/funcionamiento/calidad diseñadas para testear tales características.
Estadísticamente comprobado esta que sistemas de seguimiento de bugs generan una reducción de plazos respecto a cortes de servicio, en relación a despliegues y sistemas en producción incrementando así la productividad y eficiencia de los desarrolladores (cabe destacar que un aumento en la calidad del producto incrementa la satisfacción del cliente). Es también un hecho el aumento de las bases de conocimiento necesarias para la formalización de los procesos tendientes a la resolución de inconveniente y la correspondiente reducción de plazos y costos.
Un sistema de seguimiento de errores genera canales de comunicación con clientes y proveedores (en sistemas de gran escala), los cuales proveen retroalimentación necesaria para alimentar los procesos de mejora continua en la ejecución de actividades de los ciclos de vida del software. Los usos de un sistema como Bugzilla, (producto seleccionado en este caso), abarcan desde control de colas de soporte IT, gestión de administración de sistemas, diseño y seguimiento de problemas en el desarrollo (tanto en pre como en post-fabricación), y seguimiento de fallos de software y hardware.

La arquitectura del entorno donde se integran los productos CruiseControl™ y Bugzilla™, se detalla de manera sintetizada a continuación especificando también los demás componentes del diagrama IC, para el desarrollo de software científico.



Arquitectura de entorno IC

...a la luz de la incompatibilidad en los tipos de recursos manejados en sus sistemas de almacenamiento, el fin principal del presente proyecto es proveer al cliente final de un producto de capa media que pueda migrar los registros de incidencias desde CruiseControl™ hacia Bugzilla™ de manera transparente para el usuario cumpliendo los estándares de performance y calidad preestablecidos; la arquitectura final del sistemas de IC queda representada a continuación (donde se detalla el sistema middleware desarrollado e implementado en la suite de herramientas):




Sistema de integración: middleware

El producto devenido de la presente empresa (no sin la correspondiente adaptación) puede satisfacer la necesidad de integración de las herramientas mencionadas, incluso en diferentes plataformas ya que será desarrollado en JAVA; la aplicación de este proceso de integración brinda además una solución de compatibilidad a mediana estala de dos tecnologías de manejo de información diferentes como lo son XML y MySQL.
La aplicación limita el accionar a la lectura-escritura de los archivos XML originados por BUILDS de CruiseControl™, generando nuevamente estos de acuerdo al DTD utilizado por Bugzilla™, importado más tarde a la base de datos MySQL, desde donde podrán leerse a posterior; el plug-in, se ejecutara, de acuerdo a lo definido desde CruiseControl™, posterior a un BUILD (como ya se mencionó), desde el archivo de configuración de la aplicación. El registro generado, al contar con información incompleta para su inserción poseerá un carácter “genérico”, debiendo ser administrado por un gestor-administrados de bugs, quien por ejemplo debe asignarle un resolutor (ya que no se genera dicho campo durante la compilación de CruiseControl™).
La aplicación puede hacer uso de herramientas de terceros de código abierto, para realización del proceso de lectura-escritura-inserción de datos mencionado anteriormente, por contar el sistema de seguimiento de incidentes (Bugzilla™), de sistemas de validación a través de generadores de clave dinámica. La estructura interna de la aplicación a desarrollar está compuesta de la siguiente manera:


Estructura middleware.

La estructura muestra la interacción de las clases de lectura-interpretación-escritura de la aplicación de migración de datos. La importación desde el archivo generado (XML) hacia la base de datos MySQL™ se realiza mediante el script un script de Bugzilla™ desarrollado para procesos de migraciones hacia versiones posteriores. Cabe destacar que la herramienta de integración requiere que el XML DataSource sea estructurado o haya sido creado mediante el DTD de Bugzilla™, especificando además los campos obligatorios con valor asignado.







....no quiero aburrirlos con estructuras, mas diagramas de secuencias, metodos de prueba e instalación y demás (hay pdfs tras pdfs de modelo de análisis, requerimientos, diagrama de estructura, de clases, etc., etc.)....

...si alguien esta interesado en el programilla me manda un mp y se lo comparto ya que la idea es que sea usado y no duerma en el cajon de una facultad o es sus laboratorios donde se esta sacando provecho del mismo...

....es de mi propiedad y quizás les pueda servir....para usarlo, para tomar la idea o solo para verlo y criticar sus errores, que es como devienen las grandes cosas...

Abzos!
0
0
0
0
0No comments yet