Integración de Jira, Redmine y Bugzilla en TestLink

9
25990

Integración de Jira, Redmine y Bugzilla en TestLink

Índice de contenidos

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Intel Core 2 CPU T7200 @ 2.00GHz x 2
  • Sistema Operativo: Ubuntu 13.04 x32
  • Sublime Text 2
  • Servidor Apache con Redmine
  • TestLink 1.9.5
  • Bugzilla 4.4
  • Jira 5
  • Mysql 5.5

2. Introducción

Hoy en día disponemos de múltiples herramientas para gestionar los requisitos funcionales de nuestros proyectos, podemos especificarlos en herramientas como Redmine, Jira, Bugzilla, Mantis o herramientas de administración de requisitos propiamente dichas, como Pivotal Tracker.

En otro tutorial os hablé de una herramienta para comprobar estas funcionalidades, TestLink.

El problema lo encontramos a la vez que encontramos la necesidad de saber si hemos cubierto o no todas estas funcionalidades, de eso voy a hablaros.

Dadas las integraciones que nos permite TestLink podemos vincular, enlazar, los requisitos del propio producto con los test de funcionalidad (Pruebas de aceptación) que vamos a gestionar en TestLink.

Básicamente lo que buscamos es llevar una trazabilidad entre nuestras pruebas de aceptación con los propios requisitos del proyecto, así como enlazarlos con los posibles fallos que vayamos encontrando a la hora de realizar dichas pruebas.

Y de esta manera saber si cubrimos todas las funcionalidades de nuestro proyecto.

En este tutorial vamos a ver como integrar las siguientes herramientas:

  • Jira
  • Redmine
  • Bugzilla

TestLink proporciona integración con otras herramientas como Mantis, Trac, Eventum, gForge… pero se haría un tutorial larguísimo, y lo más seguro es que se haga de una manera bastante similar a las que vamos a ver a continuación.

Si queréis conocer más sobre las herramientas que vamos a utilizar ver los siguientes enlaces:

  • Documentación oficial de TestLink sobre integración de otras herramientas, versión algo anticuada.
  • Página oficial Jira.
  • Tutorial Redmine de Jose Manuel Sánchez en Adictos al trabajo.
  • Tutorial Bugzilla de Alejandro Pérez García en Adictos al trabajo.

3. Integración de Jira en TestLink

Jira es un gestor de proyectos desarrollado por Atlassian que permite a los equipos planificar, construir y finalizar grandes proyectos.

Si quieres conocer como funciona te recomiendo visitar la página oficial. No es una herramienta OpenSource por lo que requiere una suscripción.

Bien ahora entramos en la chicha del asunto.

Para integrar un Issue / Bug tracker en TestLink, debemos realizar una serie de pasos.

  • Vamos al directorio de TestLink y realizaremos una modificación en nuestro fichero custom_config.inc.php, añadimos las siguientes lineas:
          $g_interface_bugs = 'JIRA'; // Old value 'NO';
          $g_bugInterfaceOn = true; // Old value false;
        
  • Tenemos que crear un fichero tipo .cfg.php para nuestro issue tracker en el directorio Testlink/cfg, por ejemplo: «jira.cfg.php con el siguiente contenido:
          <?php 
          define('BUG_TRACK_DB_HOST', 'localhost'); 
    
          define('BUG_TRACK_DB_NAME', 'nombreBDJira'); 
    
          define('BUG_TRACK_DB_USER', 'nombreUsuarioBDJira'); 
    
          define('BUG_TRACK_DB_PASS', 'contraseñaUsuarioBDJira'); 
    
          define('BUG_TRACK_HREF', "servidorJira/browse/"); 
    
          define('BUG_TRACK_DB_TYPE', 'mysql'); #Tipo BD
    
          define('BUG_TRACK_ENTER_BUG_HREF',"servidorJira/secure/CreateIssue!default.jspa"); #Link a creacion de issues
    
          ?>
        
  • Reiniciamos de nuevo el servidor y vamos a TestLink.

Una vez en TestLink, en el menú principal accedemos a «Issue tracker management» o «Gestión del Gestor de Defectos»:

Se nos mostrará la siguiente interfaz:

Ahí tenéis un ejemplo de como configurar una interfaz de Jira soap, en Type podéis seleccionar el tipo de Issue Tracker que váis a utilizar, y TestLink os proporciona ejemplos. Por ejemplo para Jira BD no hay implementación, aunque aparece la opción, por lo que probaremos con SOAP.

Nota: Para evitar errores a la hora de crear issues añadir la siguiente linea en configuration del Issue Tracker:

    MIK 
  

Lo comentaré más adelante.

Bien, tras crear todo esto es momento de asignar el Issue Tracker a nuestro proyecto.
En el menú principal accedemos a «Project Management» o «Gestión de Proyectos de Pruebas».

Al crear un nuevo proyecto o editar uno ya creado, en Issue Tracker o «Integración del Gestor de Defectos» checkeamos la opcion de Activo y seleccionamos el gestor.

A partir de ahora, siempre que ejecutemos un test en TestLink, si no los pasamos nos aparecerá la opción de crear una Issue/Bug en nuestro tracker o vincularlo con uno ya existente:

Vale, ahora paso a explicarlos el tema del error que os comenté antes.
Si no añadimos en la configuración del IssueTracker la Key de nuestro proyecto en Jira, nos mostrará el siguiente error en un popup:

"Create JIRA Ticket FAILURE => com.atlassian.jira.rpc.exception.RemotePermissionException: 
    The project specified does not exist or you don't have permission to create issues in it."

Sin embargo si ya lo hicimos anteriormente, la issue se creará sin ningún problema :

Comprobamos su creación en Jira:


4. Integración de Redmine en Testlink

Redmine es una aplicación web muy flexible para gestionar nuestros proyectos, generar una documentación, gestionar nuestros test, crear issues… Está desarrollado sobre el framework de Ruby on Rails y es Open Source con licencia GNU. Si quieres conocer más sobre Redmine ver el tutorial que os enlacé antes o visita la página oficial.

Para integrar Redmine con Testink tenemos que instalar un plugin en Redmine.

Podemos descargarlo del siguiente enlace.

Lo desempaquetamos dentro del directorio Plugins de nuestro directorio de redmine:

Una vez desempaquetado, reiniciamos nuestro servidor de Redmine, y accedemos a la lista de plugins desde Administracion>Extensiones y lo configuramos a nuestro gusto.


Ahora vamos a configurar nuestro proyecto en Redmine, si no lo hicimos anteriormente, para obtener :

  • El identificador del proyecto, en Administración>Configuración>Proyecto checkeamos la opción «Generar Identificadores de proyecto»
  • Una clave de la Api para la configuración del Issue Tracker- En Configuración>Repositorios checkeamos «Habilitar la gestión del repositorio y damos en Generar clave. La utilizaremos después, conviene copiarla 😉

Activamos el uso de Servicio web Rest desde Configuración > Autenticación

Ahora continuaremos desde TestLink.

Creamos un Issue Tracker como hicimos con Jira, pero esta vez de tipo Redmine Rest. Igualmente podemos ver un ejemplo haciendo click en Show configuration example.

Igual que lo hacíamos con Jira lo linkeamos a un Proyecto. A la hora de ejecutar un test podemos, igual que con Jira, vincular los Issues o crear uno nuevo en Redmine.

Voy a enseñaros un ejemplo de vincular a un issue ya existente:

Una vez hecho esto dará un mensaje de aprovación y podremos ver en TestLink que se ha asociado a la Issue creada anteriormente en Redmine con ese id.

5. Integración de Bugzilla en TestLink

Bugzilla es una herramienta para el manejo de fallos y bug puramente dicha. Nos permite manejar el proceso del desarrollo de nuestro software mejorando la comunicación y aumentando la calidad de nuestro software. Si te interesa saber más de esta herramienta visita el tutorial que os enlacé antes o visita la página oficial

Para la integración de Bugzilla en TestLink seguiremos, casi a rajatabla, los mismos pasos que hicimos con Jira. De todas formas os haré un pequeño seguimiento.

Creamos nuestro fichero /cfg/bugzilla.cfg.php con la siguiente configuración:

    define('BUG_TRACK_DB_HOST', 'localhost');
    define('BUG_TRACK_DB_NAME', 'bugzilla');
    define('BUG_TRACK_DB_USER', 'bugzilla');
    define('BUG_TRACK_DB_PASS', 'bugzilla');
    /** link to the bugtracking system, for viewing bugs */
    define('BUG_TRACK_HREF', "http://localhost/bugzilla-4.4/show_bug.cgi?id=");
    /** link to the bugtracking system, for entering new bugs */
    define('BUG_TRACK_ENTER_BUG_HREF',"http://localhost/bugzilla-4.4/");
  

Hecho esto vamos al fichero custom_config.inc.php y establecemos lo siguiente:

  $g_interface_bugs='BUGZILLA';

Lo siguiente sera crear un Issue tracker en TestLink:

Lo asignamos a nuestro proyecto.

Y a partir de ahora podremos vincular nuestros test fallidos a un Bug en Bugzilla.

Vemos como se vinculan correctamente:

Podemos vincular varios Issues al mismo caso de prueba:

Y el mismo Issue a varios casos de prueba:


6. Conclusión

De esta manera vinculamos nuestras especificaciones del software con los problemas que hemos ido encontrando, de forma que tanto el cliente como el encargado de realizar las pruebas puede seguir una trazabilidad de los requisitos, de las pruebas y los posibles fallos. Mejorando así la calidad de nuestro software y de nuestro proyecto.

TestLink nos proporciona gran compatibilidad con nuestros Gestores de Issues, por lo que podemos trazar más nuestros proyectos, generar una documentación y un catálogo sólido de nuestras pruebas, ya sean unitarias como de aceptación.

Os recomiendo encarecidamente leer este tutorial sobre TDD, BDD y Pruebas de Aceptación realizado por Daniel Díaz para enlazarlo con este tutorial, saber mejor de que estamos hablando, y tratar de combinar estas técnicas con las opciones que nos proporciona TestLink.

Alguna sugerencia o duda podéis comentar.

Un saludo , Rafael.

Volver al índice

9 COMENTARIOS

  1. Hola rafael!

    actualmente uso testlink y redmine por separado dado que el plugin que tambien lo habia visto en otra pagina está desactualizado. podria ser que haya otra forma de realizar la integracion entre las dos herramientas o haya otro plugin?

    Gracias.

  2. Hola.

    En TestLink, al crear un nuevo proyecto no me permite ingresar un identificador de proyecto.

    Cuá sería el identificador del proyecto en TestLink?

    Gracias.

    • Ya pude instalar el plugin de Redmine para que se comunique con TestLink, pero al correr un test case en TestLink y querer crear un defecto me tira el error:

      Create REDMINE Ticket FAILURE => redmine::_requesturl:http://localhost:3000/redmine – response:{«url»:»http://localhost:3000/redmine/projects/proyecto1.xml»,»content_type»:»application/xml»,»http_code»:401,»header_size»:433,»request_size»:167,»filetime»:-1,»ssl_verify_result»:0,»redirect_count»:0,»total_time»:0.016,»namelookup_time»:0,»connect_time»:0,»pretransfer_time»:0,»s
      ize_upload»:0,»size_download»:0,»speed_download»:0,»speed_upload»:0,»download_content_length»:-1,»upload_content_length»:-1,»starttransfer_time»:0.016,»redirect_time»:0,»redirect_url»:»»,»primary_ip»:»::1″,»certinfo»:[],»primary_port»:3000,»local_ip»:»::1″,»local_port»:56642} – content: «» – serialized issue:N;

      Qué tengo que cambiar?

  3. Teneis la siguiente errata para el caso de Redmine.
    La API Key no se obtiene de ahí, es específica para cada usuario y se obtiene:
    1. Logándose con el usuario elegido para la conexión
    2. Mi cuenta > Clave de acceso de la API > Mostrar

  4. Hola Rafel realice la configuración con lo cambios correspondientes para adaptarlo a mis parámetros, cuando voy a la ejecuciòn y selecciono un caso fallado obtengo el siguiente error «Fatal error: Call to a member function getIssue() on a non-object in C:wampwwwtestlinklibissuetrackerintegrationjirasoapInterface.class.php on line 140», no logro entender que puede estar pasando, por lo que agradecerìa mucho tu consejo, gracias

  5. Hola

    Buenas estoy siguiendo tu guía dentro de la versión de Bugzilla y tenia una pregunta necesito tener Bugzilla instalado para que la integración funcione?

  6. Hola!!!

    Create REDMINE Ticket FAILURE => redmine::_requesturl:http://172.17.20.193:3000/ – response:{«url»:»http:\/\/172.17.20.193:3000\/\/projects\/mchs.xml»,»content_type»:»application\/xml»,»http_code»:401,»header_size»:490,»request_size»:145,»filetime»:-1,»ssl_verify_result»:0,»redirect_count»:0,»total_time»:0.009314,»namelookup_time»:3.3e-5,»connect_time»:0.000296,»pretransfer_time»:0.000326,»size_upload»:0,»size_download»:0,»speed_download»:0,»speed_upload»:0,»download_content_length»:0,»upload_content_length»:0,»starttransfer_time»:0.009291,»redirect_time»:0,»certinfo»:[],»primary_ip»:»172.17.20.193″,»primary_port»:3000,»local_ip»:»172.17.20.191″,»local_port»:48992,»redirect_url»:»»} – content: «» – serialized issue:N;

    Help plizz

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad