Está en la página 1de 49

UNIVERSIDAD MAYOR DE SAN SIMÓN

FACULTAD DE CIENCIAS Y TECNOLOGÍA

DIRECCIÓN DE POSTGRADO

INTEGRACION DE PRUEBAS
AUTOMATIZADAS CON
HERRAMIENTAS DE MANEJO DE TEST
CASES

TRABAJO FINAL PRESENTADO PARA OBTENER EL


CERTIFICADO DE DIPLOMADO EXPERTO EN DESARROLLO
DE APLICACIONES EMPRESARIALES VERSIÓN II

POSTULANTE : CARLOS MAURICIO GONZALES CANDIA

TUTOR : ING. LUIS MARCELO GARAY CHOQUERIBE

Cochabamba - Bolivia
2019
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

AGRADECIMIENTO

A mi familia que siempre me apoyo en los buenos y


malos momentos en el transcurso de todo este
tiempo.

A mis amigos por creer en mi a apoyarme en las


decisiones que tome en el transcurso de mis
estudios.

A mis docentes por las enseñanzas recibidas


durante todo este tiempo.

A Dios sobre todo por la fortaleza que me dio en


momentos de incertidumbre y me guio para lograr
____________________________________________________________________________________
2
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

TABLA DE CONTENIDO
Tabla de Figuras y cuadros ...................................................................................................................... 5
RESUMEN.................................................................................................................................................. 7
1. INTRODUCCION ............................................................................................................................... 8
1.1. Antecedentes ............................................................................................................................. 9
1.1.1 Antecedentes Generales ......................................................................................................... 9
1.1.2. Antecedentes Específicos ...................................................................................................... 9
1.2. Definición del problema ............................................................................................................ 9
1.2.1. Identificación del problema .............................................................................................. 9
1.2.2. Descripción del problema ................................................................................................. 9
1.3. Objetivo general ...................................................................................................................... 10
1.4. Objetivos específicos .............................................................................................................. 10
1.5. Alcance ..................................................................................................................................... 10
1.6. Justificación.............................................................................................................................. 10
2. MARCO TEÓRICO .......................................................................................................................... 11
2.1. Automatización de pruebas .................................................................................................... 11
2.1.1. Objetivo de la automatización de pruebas ................................................................... 11
2.1.2. Ventajas de la automatización de pruebas .................................................................. 12
2.1.3. Herramientas para la automatización de pruebas ...................................................... 12
2.1.4. Cuadro comparativo entre herramientas para la automatización de pruebas ................... 17
2.2. Gestión de pruebas ................................................................................................................. 17
2.2.1. Herramientas para la gestión de pruebas .......................................................................... 18
2.2.2. Cuadro comparativo entre herramientas de gestión de pruebas ....................................... 21
2.3. Integración continua con Jenkins .......................................................................................... 21
3. MARCO PRACTICO........................................................................................................................ 22
3.1. Integración de Test Link con Jenkins .................................................................................... 22
3.1.1. Configuración de TestLink ............................................................................................. 22
3.1.1.1. Creación de un nuevo proyecto en TestLink ........................................................... 22
3.1.1.2. Creación de un campo personalizado en TestLink ................................................. 23

____________________________________________________________________________________
3
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

3.1.1.3. Creación de una suite de pruebas en TestLink ....................................................... 24


3.1.1.4. Creación de un caso de Prueba en TestLink ........................................................... 25
3.1.1.5. Creación de un plan de pruebas en TestLink .......................................................... 27
3.1.1.6. Creación de una build en Test Link .......................................................................... 27
3.1.1.7. Agregar caso de prueba en TestLink ........................................................................ 28
3.1.1.8. Asignación de casos de prueba a una build en TestLink ....................................... 28
3.1.2. Configuración en Jenkins ............................................................................................... 29
3.1.2.1. Instalación y configuración del plugin de TestLink .................................................. 29
3.1.2.2. Creación de un job en Jenkins .................................................................................. 30
3.1.2.3. Configuración del plugin de TestLink en el job de Jenkins .................................... 30
3.1.3. Ejecución en Jenkins del caso de prueba de TestLink ............................................... 32
3.1.4. Cambio de estado del caso de prueba en TestLink .................................................... 33
4. Conclusiones .................................................................................................................................... 35
5. Anexos .............................................................................................................................................. 36
5.1. TestLink .................................................................................................................................... 36
5.1.1. Instalación de Testlink .................................................................................................... 36
5.2. Jenkins...................................................................................................................................... 41
5.2.1. Instalación Jenkins .......................................................................................................... 41
6. Referencias bibliográficas ............................................................................................................... 47

____________________________________________________________________________________
4
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Tabla de Figuras y cuadros


Cuadro 1: Cuadro Comparativo entre herramientas de automatización ................................ 17
Cuadro 2: Cuadro Comparativo entre herramientas de gestión de pruebas .......................... 21
Figura 1: Pantalla de creación de nuevo proyecto en TestLink ............................................. 23
Figura 2: Pantalla de creación de un campo personalizado en TestLink ............................... 24
Figura 3: Pantalla de creación de una suite de pruebas en TestLink..................................... 25
Figura 4: Pantalla de creación de un caso de pruebas en TestLink....................................... 26
Figura 5: Código fuente clase TestCurrentTime .................................................................... 26
Figura 6: Pantalla de creación de un plan de pruebas en TestLink ....................................... 27
Figura 7: Pantalla de creación de un build en TestLink ......................................................... 27
Figura 8: Pantalla de agregar un caso de prueba a un plan de pruebas en TestLink ............ 28
Figura 9: Pantalla de asignación de una ejecución caso de prueba a un plan de pruebas en
TestLink ................................................................................................................................. 28
Figura 10: Pantalla de instalación de plugin de TestLink en Jenkins ..................................... 29
Figura 11: Pantalla de configuración del plugin de TestLink en Jenkins ................................ 29
Figura 12: Pantalla de configuración del origen del código fuente en Jenkins ....................... 30
Figura 13: Pantalla de configuración de TestLink en Jenkins ................................................ 30
Figura 14: Pantalla de configuración de Test Execution en Jenkins ..................................... 31
Figura 15: Pantalla del código fuente de suite.xml ................................................................ 31
Figura 16: Pantalla de configuración del log de resultados.................................................... 32
Figura 17: Pantalla de salida de consola del inicio de la ejecución en Jenkins...................... 32
Figura 18: Pantalla de salida de consola del fin de la ejecución en Jenkins .......................... 33
Figura 19: Pantalla del estado del caso de prueba antes de la ejecución en Jenkins ........... 33
Figura 20: Pantalla del estado del caso de prueba después de la ejecución en Jenkins ....... 34
Figura 21: Pantalla de la ejecución en Jenkins(Reconoció 2 casos de prueba y solo ejecuto
1) ........................................................................................................................................... 34
Figura 22: Pantalla de la ruta de XAMPP .............................................................................. 37
Figura 23: Pantalla de la instalación TestLink ....................................................................... 38
Figura 24: Pantalla de la instalación TestLink ....................................................................... 38
Figura 25: Pantalla de Login de la base de datos .................................................................. 39

____________________________________________________________________________________
5
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 26: Pantalla de Instalación exitosa ............................................................................. 39


Figura 27: Pantalla de Login TestLink ................................................................................... 40
Figura 28: Pantalla de formulario de creación de un nuevo Proyecto .................................... 40
Figura 29: Pantalla de descarga instalador Jenkins .............................................................. 41
Figura 30: Pantalla de descomprimir el instalador descargado ............................................. 42
Figura 31: Pantalla de ejecución instalador Jenkins para Windows....................................... 42
Figura 32: Pantalla de ruta de instalación Jenkins................................................................. 43
Figura 33: Pantalla de instalación completada de Jenkins .................................................... 43
Figura 34: Pantalla de desbloqueo de Jenkins ...................................................................... 44
Figura 35: Pantalla de instalación de plugins de Jenkins ...................................................... 44
Figura 36: Pantalla de descarga de plugins de Jenkins ......................................................... 45
Figura 37: Pantalla de creación del usuario administrador .................................................... 45
Figura 38: Pantalla de configuración url Jenkins ................................................................... 46
Figura 39: Pantalla de instalación completa .......................................................................... 46
Figura 40: Pantalla de inicio del Servidor Jenkins ................................................................. 47

____________________________________________________________________________________
6
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

RESUMEN

Las actividades relacionadas con el aseguramiento de la calidad juegan un papel importante


en la industria de software debido a su participación activa a través de todo el ciclo
productivo. El control de la calidad de los productos o servicios desde etapas tempranas de
los proyectos, permite minimizar los costos asociados con esfuerzo y tiempo, lo que implica
para el negocio un aumento de la calidad y satisfacción de los clientes. Sin embargo y dado
que su implementación no llega a ser clasificada como una actividad netamente productiva,
representa un alto costo para las organizaciones que producen software, es por ello que
surge la necesidad de implementar procesos de prueba automáticos que optimicen el ciclo
productivo y minimicen los costos. Con la inclusión de pruebas funcionales y no funcionales
automatizadas en el proceso de software, el enfoque del área se ve positivamente alterado,
pues los tiempos del proceso de control de calidad serán significativamente más cortos y los
resultados más precisos, por ende, las organizaciones podrán invertir mejor sus recursos y
fortalecer actividades como análisis de resultados, mejoramiento de procesos, productos y
servicios.

La automatización de pruebas atiende la necesidad de tener resultados más precisos de


procesos que no pueden simularse manualmente, como las pruebas con altas cantidades de
usuarios, pruebas sobre múltiples plataformas, con alto volumen de datos o pruebas en
escenarios con especificaciones particulares según las necesidades del cliente, entre otras
características. Si no hay automatización de pruebas es muy complejo detectar los fallos de
tipo no funcional dentro de una aplicación, es probable entonces, que estos fallos sean
detectados en producción, lo cual genera altos costos, no sólo por la corrección del error en
una etapa muy avanzada de un proyecto, sino porque se tiende a perder credibilidad ante
los clientes debido a que los productos no tienen un debido control de calidad en aspectos
no funcionales, principalmente. La automatización de pruebas generalmente no se enfoca en
la construcción de herramientas de automatización, sino en sacar el mayor provecho a las
herramientas existentes y generar estrategias con base en ellas. Así mismo, es necesario
tener en cuenta que para generar soluciones de alta calidad y que se ajusten a nuestras
necesidades, se requiere de algunas habilidades de programación que permitan
complementar los scripts, dado que las herramientas tienen algunas restricciones.

Una de estas herramientas es TESTLINK que es una herramienta de código abierto para la
administración de casos de prueba, puede gestionar todas las etapas de prueba, desde la
gestión de requisitos hasta la ejecución de campaña. Basado en una interfaz ergonómica e
intuitiva y fácil de implementar.

En este trabajo se hablará de la integración de pruebas automatizadas con una herramienta


para el manejo de casos de prueba como es TESTLINK con la ayuda del servidor JENKINS
para la automatización, para así facilitar el trabajo del equipo de desarrollo y tener mayor
control en el manejo de posibles errores.
____________________________________________________________________________________
7
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

1. INTRODUCCION

La tecnología alrededor del mundo avanza cada vez más rápido, por lo que se hace preciso
reinventarse y contar con el manejo de procesos y herramientas que permitan estar a la
vanguardia. Hoy en día muchas organizaciones se han esforzado por romper sus
paradigmas de administración y han optado por darle una oportunidad a la administración
basada en procesos, donde cuentan con conjunto de actividades, roles y artefactos sobre los
cuales basan su trabajo diario; sin embargo, esos procesos siguen siendo, en su mayoría,
manuales. En la industria del software hay una amplia variedad de especialidades y
enfoques, en las pruebas automatizadas se tiene como foco principal evaluar la calidad de
los procesos y productos software y detectar el mayor número de defectos antes de llevar un
producto a manos del usuario final. El área de aseguramiento de calidad tiene participación
desde la concepción del proyecto hasta el cierre del mismo, esta participación se puede
observar en un reconocido modelo de desarrollo de software; el Modelo en V que presenta
los diferentes niveles del desarrollo de software y su correspondiente etapa de pruebas.
Entre las principales pruebas del sistema podemos hablar de las pruebas funcionales y las
no funcionales. En las pruebas funcionales se comprueba que el producto o servicio cumple
con los requisitos funcionales y opera según las necesidades del usuario final, en las
pruebas no funcionales no sólo se verifica que el producto o servicio opere de forma
correcta, sino que lo haga cumpliendo los requerimientos no funcionales especificados, por
ejemplo: uso correcto de los recursos hardware, tiempos de respuesta, usabilidad,
rendimiento, estrés, entre otros.

La automatización de pruebas tanto funcionales como no funcionales, optimiza los procesos


de calidad y reduce significativamente el esfuerzo invertido en la actividad de Testing,
gracias a ello, no sólo se cuenta con resultados oportunos y precisos del comportamiento de
un producto software con base en requisitos funcionales y no funcionales, si no también es
posible construir un framework de pruebas automáticas, que permitan reutilizar en un futuro
los componentes generados en los proyectos.

Existen gran cantidad de herramientas para la gestión de pruebas (TestLink, FitNesse,


qaManager, qaBook, Squash, etc.). En esta monografía veremos la integración de las
pruebas automatizadas con la herramienta TESTLINK con la ayuda del servidor de
automatización JENKINS, esto ayudaría de sobremanera a un equipo de desarrollo ya que al
poder integrar las pruebas automatizadas con una herramienta que ayuda en la gestión cada
miembro del equipo tendría el estado de cada una de ellas y así el trabajo sería más fluido
ya que la herramienta tendría toda la información e informes de todo lo realizado.

____________________________________________________________________________________
8
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

1.1. Antecedentes
1.1.1 Antecedentes Generales

En la actualidad los equipos de desarrollo de software están manejando varias herramientas


que ayudan a la implementación e integración del trabajo que realiza cada uno, esto debido
a que los miembros en algunas ocasiones no se encuentran juntos físicamente juntos por
diferentes motivos, por lo cual se les complica mucho el trabajo en equipo.

En el caso de las pruebas de software ocurre lo mismo, los equipos de testing necesitan el
uso de herramientas para realizar de la mejor forma su trabajo, es muy importante probar
adecuadamente el software antes de ponerlo en producción para que la calidad del producto
desarrollado sea satisfactoria y se cumplan todos los requisitos del cliente.

1.1.2. Antecedentes Específicos

Existe gran diversidad de herramientas de automatización y de gestión de pruebas que son


utilizadas en el área de testing de un sistema, en este trabajo se hablara de TESTLINK que
es una herramienta open source que ayuda bastante en la gestión de las mismas.
La integración de las pruebas automatizadas y con una herramienta de gestión de los test
cases es importante para un equipo de trabajo ya que gracias a esto cada miembro del
equipo tendría toda la información y podrían integrar de manera correcta el trabajo que
realizan.

1.2. Definición del problema

1.2.1. Identificación del problema

La falta de sincronización de las pruebas automatizadas con la herramienta de gestión de


manejo de los test cases no hace un seguimiento del control de calidad del software.

1.2.2. Descripción del problema

En la actualidad no se explotan en su totalidad las herramientas que tenemos a nuestro


alcance, existen una gran variedad de herramientas que integradas ayudarían bastante en la
gestión de las pruebas y los test cases, pero que en realidad las manejamos por separados,

____________________________________________________________________________________
9
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

haciendo un doble trabajo para nosotros al momento de registrarlos y generar los reportes
correspondientes.

1.3. Objetivo general

El objetivo general es investigar el proceso de integración entre TESTLINK con las pruebas
automatizadas y ejecutadas desde el servidor Jenkins para poder así optimizar tiempo y
hacer un seguimiento continuo del progreso de las pruebas.

1.4. Objetivos específicos

Los objetivos específicos son los siguientes:

1.- Investigar sobre la automatización de pruebas.


2.-Investigar sobre las herramientas para el manejo de casos de prueba.
3.- Realizar un cuadro comparativo de las herramientas para las pruebas automatizadas.
4.- Realizar un cuadro comparativo de las herramientas para el manejo de los casos de
prueba.
5.- Configurar las herramientas para su uso correcto.
6.-Integrar TestLink con Jenkins para la ejecución de pruebas automatizadas.

1.5. Alcance

El trabajo se realizará en base a TESTLINK como herramienta para el manejo de test cases,
con la ayuda de JENKINS para la ejecución automatizada de las pruebas creadas,
queriendo lograr q al estar integradas el estado de las mismas cambie automáticamente.

1.6. Justificación

La siguiente investigación será útil para todas las empresas de desarrollo de aplicación y
para las personas que se dedican al control de calidad de software, ya que con la integración
permitirá tener sincronizado los casos de prueba registrados en una herramienta con la
ejecución automatizada de los mismos, permitiendo así un control continuo del proceso y ver
el estado de los mismos.

____________________________________________________________________________________
10
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Este material proporcionara información útil para que en un futuro las personas interesadas
puedan utilizarla para facilitar los procesos de testing que realizan, además de optimizar su
tiempo y esfuerzo ya q al que al cambiar automáticamente el estado de los casos de prueba
se reduce notablemente los errores humanos que puedan existir en el registro del proceso
de control de calidad que realiza cada uno, porque al hacerlo de forma manual uno puede
omitir o dejar pasar por alto algunas fallas en el sistema.

2. MARCO TEÓRICO

2.1. Automatización de pruebas

El término automatización se refiere a una amplia variedad de sistemas y procesos que


operan con mínima, incluso sin intervención, del ser humano” con el fin de que sean más
rápidos, eficientes y precisión. La automatización cobra importancia ya que reducen el costo
de la mano de obra directa, evitando retrasos por fallas humanas. (Báez, Bogotá D. C. 2016,
pág. 23)

En las pruebas de software, la automatización de pruebas consiste en el uso de software


especial (casi siempre separado del software que se prueba) para controlar la ejecución de
pruebas y la comparación entre los resultados obtenidos y los resultados esperados. Se
utiliza para asegurar cierto nivel de calidad del software.

Utilizando este método se pretende que el número de errores detectados y reportados en el


entorno de producción sean mínimos. Esto es muy importante, ya que según antes se
detecte un error en el ciclo de vida del software menor será el coste de haberlo encontrado y
reparado, además de los daños de imagen del producto que se provocarían si estos fallos se
encontrarán en producción.

2.1.1. Objetivo de la automatización de pruebas

El objetivo de la automatización de pruebas no es suprimir todo el testing manual, ni a los


testers manuales (Ruiz, pág. 36), lo que automatizamos son chequeos, comprobaciones que
los testers manuales ya han detectado como son; ciertas pruebas de regresión, smoke test
etc. Según este enfoque, durante la evolución de un sistema, un caso de prueba comienza
siendo manual, para luego ser automatizado, así los testers manuales pueden dedicarse a
buscar otros bugs más complejos o testear nuevas funcionalidades.

____________________________________________________________________________________
11
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Al automatizar el software se mejora la calidad del producto, disminuye el tiempo de salida al


mercado, detectamos errores con anticipación, fomentar al equipo de desarrollo a realizar y
ejecutar pruebas de manera continua, reducción de costos. (Cristóbal, pág. 11)

Gracias a la automatización de este tipo de pruebas que permite alcanzar cotas y realizar
algunos tipos de pruebas que no se podrían obtener de manera manual. Esto se debe al
potencial que nos ofrecen las herramientas encargadas de este tipo de pruebas y de la
infraestructura hardware que utilicemos. (Ruiz, págs. 37-38)

2.1.2. Ventajas de la automatización de pruebas

La automatización de pruebas tiene varias ventajas entre las ventajas más significativas
podemos mencionar las siguientes:
• Mejorar la eficiencia de las pruebas automatizando tareas repetitivas o dando soporte
a las actividades de pruebas manuales, como la planificación, el diseño, la
elaboración de informes y la monitorización de pruebas.
• Automatizar aquellas actividades que requieren muchos recursos si se hacen de
forma manual (por ejemplo, pruebas estáticas).
• Reasignación de recursos que previamente realizaban las pruebas de manera
manual, y utilizarlos para otra tarea dentro del negocio.
• Automatizar aquellas actividades que no pueden ejecutarse de forma manual (por
ejemplo, pruebas de rendimiento a gran escala de aplicaciones cliente - servidor).
• Aumentar la fiabilidad de las pruebas (por ejemplo, cuando se automatizan
comparaciones de grandes ficheros de datos y se simula su comportamiento).
• Posibilidad de programar la ejecución de un plan de pruebas o escenario deseado,
de manera desatendida, del modo que se desee.
• Posibilidad de realizar algunos tipos de prueba en menos tiempo.
(Ruiz, págs. 37-38)

2.1.3. Herramientas para la automatización de pruebas

Existen una gran variedad de herramientas para la automatización de pruebas, a


continuación, se mencionarán algunas con sus principales características:

____________________________________________________________________________________
12
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

• Selenium

Esta es la herramienta gratuita mas utilizada para automatizar pruebas, una de sus
principales ventajas es que es una herramienta de código abierto. Es un entorno de
pruebas de software para aplicaciones basadas en la web. Las pruebas pueden
ejecutarse entonces usando la mayoría de los navegadores web modernos en
diferentes sistemas operativos como Windows, Linux y OSX.

Selenium tiene el soporte de algunos de los proveedores más grandes de


navegadores que han tomado (o están tomando) pasos para hacer de Selenium una
parte nativa de su navegador. También es la tecnología central en muchas otras
herramientas de automatización del navegador, API y marcos. (Documentación oficial
Selenium, https://docs.seleniumhq.org/)

Los componentes de Selenium Son:


* Selenium IDE
Selenium IDE es un entorno de desarrollo integrado para pruebas con Selenium. Está
implementado como una extensión de Firefox o Chrome y permite grabar, editar
y depurar pruebas. Originalmente se le conoció como Selenium Recorder.
Se pueden desarrollar automáticamente scripts al crear una grabación y de esa
manera se puede editar manualmente con sentencias y comandos para que la
reproducción de nuestra grabación sea correcta.
Los scripts se generan en Selanese, un lenguaje de scripting especial para Selenium.
Selanese provee comandos que ejecutan acciones sobre objetos en el navegador,
como hacer click en un enlace, seleccionar de una lista de opciones, verificar la
presencia de un texto en particular así como para tomar la totalidad de la página
producto de las acciones.

* Selenium Remote Control


Selenium Remote Control (RC) es un servidor escrito en Java que acepta comandos
al navegador vía HTTP. RC hace posible escribir pruebas automatizadas para
aplicaciones web, en cualquier lenguaje de programación lo que permite una mejor
integración de Selenium a entornos de prueba existentes. Para hacer la escritura de
pruebas más fácil, Selenium actualmente provee controladores de dispositivos para
PHP, Python, Ruby,.NET, Perl y Java.

____________________________________________________________________________________
13
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

* Selenium WebDriver
Selenium WebDriver es el sucesor de Selenium RC. Selenium WebDriver acepta
comandos (enviados en Selenese o vía el API de cliente) y los envía a un navegador.
Esto se implementa a través de un controlador del navegador específico para cada
navegador que envía los comandos y trae los resultados de regreso. La mayoría de
los controladores del navegador lanzan y acceden a la aplicación de navegador
(como Mozilla Firefox o Internet Explorer), pero también hay un controlador
para HtmlUnit que simula un navegador. A diferencia de Selenium 1, donde el
servidor Selenium RC era indispensable, en Selenium WebDriver no se requiere de
un servidor especial para ejecutar las pruebas, en vez de ello WebDriver inicia una
instancia del navegador y lo controla

* Selenium Grid
Selenium Grid es un servidor que permite usar instancias de navegador ejecutándose
en máquinas remotas. Con Selenium Grid, uno de los servidores actúa como
concentrador. Las pruebas contactan al concentrador para obtener acceso a
instancias de navegadores; el concentrador lleva una lista de instancias de los
navegadores (Nodos de WebDriver) y permiten a las pruebas usar estas instancias.
Selenium Grid permite ejecutar pruebas en paralelo en múltiples máquinas y manejar
diferentes versiones y configuraciones de manera centralizada.

• Watir

Es una familia de librerías Ruby de Código Abierto (Open Source) para la


automatización de navegadores web. Le permite a su usuario escribir pruebas fáciles
de leer y mantener. Sencilla y flexible. Tiene la capacidad de hacer clic en enlaces,
llenar formularios de pantallas con datos y presionar botones. Watir también revisa
los resultados, incluyendo verificar si los textos esperados se muestran en las
páginas. Tiene la capacidad de enlazarse con bases de datos, leer archivos de datos
y hojas de cálculo, exportar XML y estructurar los códigos como librerías
reutilizables.(Documentación oficial Watir, http://watir.com/)

• Katalon

Su casa matriz, KMS Technology, fue fundada en 2009 de forma conjunta en Estados
Unidos y Vietnam, y tras tres años de desarrollo basados en Selenium y Appium con
soporte para Groovy (Java) fue liberado con el nombre de «Katalon Studio». Lo que
resalta de Katalon es que en vez de descargar e instalar Selenium y Appium por
separado, Katalon lo ofrece en un solo paquete y además mejora la experiencia del
usuario, lo que permite un aprendizaje rápido. Una vez lo hayamos dominado,

____________________________________________________________________________________
14
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

podemos ir a fondo con Selenium, el cual corre por debajo, latente. Además, apoya el
desarrollo continuo de software con Teamcity, qTest, JIRA, Jenkins, y
Git.(Documentación oficial Katalon, https://www.katalon.com/)

• Appium

Appium es un framework de automatización de pruebas para probar aplicaciones web


nativas, híbridas y móviles para plataformas iOS, Android y Windows en dispositivos
reales y simuladores. Dado que soporta aplicaciones multiplataforma, permite probar
aplicaciones en diferentes plataformas utilizando la misma API. Appium permite a los
usuarios elegir el idioma que tiene las bibliotecas de clientes de Selenium como Java,
Objective-C, JavaScript con Node.js, PHP, Ruby, Python, C # etc. para crear
pruebas.(Documentación oficial Appium, http://appium.io/)

• SoapUI

Es una solución multiplataforma para pruebas funcionales. Con una interfaz gráfica
amigable, SoapUI permite crear y ejecutar pruebas funcionales, de regresión y de
carga automatizadas con facilidad y rapidez. En un solo entorno de prueba, SoapUI
ofrece cobertura de la prueba completa y apoya todos los protocolos y tecnologías
estándar. Dispone de una fácil interfaz gráfica. Permite crear y ejecutar pruebas
funcionales, de regresión, de cumplimiento y de carga automatizadas con facilidad y
rapidez. En un solo entorno de prueba, SoapUI ofrece cobertura de prueba completa
y apoya todos los protocolos y tecnologías estándar.(Documentación oficial SoapUI,
https://www.soapui.org/)

• Cucumber

Cucumber es una herramienta software utilizada para ejecutar de forma automática


pruebas de aceptación en entornos web. A diferencia de las otras herramientas vistas
se basa en la utilización de un nuevo estilo BDD (Behavior-Driver Developement), de
esta forma se puede realizar descripciones funcionales en texto plano como pruebas
software automatizadas.
*BDD, Gherkin
Es un proceso de desarrollo software que más allá del desarrollo de software, más
allá del Testing, realmente, nació con el objetivo de evitar todas las malas
repercusiones que conllevaban los malos entendimientos en un proyecto. La idea es
que cada uno de los roles de un proyecto y de los clientes aporte su conocimiento
para que entre todos se pueda crear el software que importa o el que se necesita,

____________________________________________________________________________________
15
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

satisfaciendo las necesidades marcadas por el cliente. Para poder diseñar, realizar y
probar el software que se va a probar de una forma colaborativa es necesario que, en
esta colaboración, intervengan al menos tres roles dentro de un proyecto: negocio,
desarrollo y Testing. Todo este procedimiento, para aplicarlo de una forma más
cómoda se puede definir un DSL (Domain Specific Language) a este lenguaje se le
ha bautizado como Gherkin. La característica más destacada de este lenguaje es
muy similar al habitual, de hecho, soporta más de 60 idiomas, ya que su principal
objetivo es, que más allá de la implementación, negocio, 29 desarrolladores y tester,
sepan de forma conjunta cómo será el software a crear, que características tendrá y
cómo será su funcionalidad. Para poder poner en práctica este lenguaje es necesario
tener claro los siguientes conceptos:
➢ Feature: Indica el nombre de la funcionalidad que se va a probar. Debe ser un
título claro y explícito. En base a esto se realiza los escenarios con sus pruebas
concretas.
➢ Scenario: Es una descripción del escenario que se va a probar.
➢ Given: Aporta el contexto para el escenario en el que se va a ejecutar el test, tales
como: dónde se ejecuta el test, prerrequisitos en los datos. Además, incluye los
pasos necesarios para poner al sistema en el estado que se desea probar.
➢ When: Especifica el conjunto de acciones que lanzan el test, detallando la
interacción del usuario que acciona la funcionalidad que se desea testear.
➢ Then: Indica el resultado esperado en el test. Se puede observar los cambios en
el sistema y se puede ver si son los deseados o no en base a los especificados. Lo
ideal, es probar en diferentes escenarios la misma funcionalidad, de esta forma se
podrá realizar las pruebas que posteriormente sea automatizado.(Documentación
oficial, https://cucumber.io/)

• Sahi

Sahi es una herramienta de automatización y prueba para aplicaciones web que vienen
en una versión de código abierto y una versión patentada. La versión de código abierto
incluye un conjunto de herramientas básicas suficientes para la mayoría de los
propósitos de prueba (registro en todos los navegadores, reproducción en todos los
navegadores, informes de reproducción HTML, informes de reproducción de estilo JUnit,
suites y ejecución por lotes, paralelo reproducción de pruebas), mientras que la versión
Pro incluye funciones adicionales como la distribución de pruebas y la personalización de
informes.(Documentación oficial, https://sahipro.com/)

____________________________________________________________________________________
16
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

2.1.4. Cuadro comparativo entre herramientas para la automatización de pruebas

Después de realizar la investigación de algunas de las herramientas para la automatización


de pruebas podemos hacer el siguiente cuadro comparativo entre Selenium, Watir y Sahi.

Selenium Watir Sahi


Internet Explorer Internet Explorer Internet Explorer
Mozilla Firefox Mozilla Firefox Mozilla Firefox
Compatibilidad con
Google Chrome Google Chrome Google Chrome
navegadores
Safari Safari Safari
Opera Opera
Multiplataforma SI SI SI
Lenguajes de Java, C#, Ruby, Ruby Java, Ruby
Programación Groovy, Perl, PHP,
Python
Entorno Web Web Web
OpenSource SI SI SI

Cuadro 1: Cuadro Comparativo entre herramientas de automatización


Fuente: Elaboración Propia

2.2. Gestión de pruebas

Las herramientas de gestión de pruebas se utilizan para almacenar información sobre cómo
se deben realizar las pruebas, planificar actividades de prueba e informar el estado de las
mismas. Una herramienta de gestión de pruebas proporciona una plataforma para almacenar
toda la información relacionada con las actividades de prueba. Ayuda en la planificación de
pruebas y proporciona informes sobre el estado de la prueba. Una herramienta de gestión de
pruebas mantiene y planifica todos los esfuerzos de pruebas manuales, recopila datos de
ejecución de pruebas automatizadas e ingresa información relacionada con defectos. La
herramienta de gestión de pruebas ayuda a agilizar todo el proceso de prueba y proporciona
un medio de comunicación entre varios equipos de proyectos.

____________________________________________________________________________________
17
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

2.2.1. Herramientas para la gestión de pruebas

Existen una gran variedad de herramientas para la gestión de pruebas, se escogieron


algunas y sus principales características son las siguientes:

• TestLink

Testlink es un sistema de gestión de pruebas de software basado en la web, es de


código abierto (Open Source) y dispone de una amplia comunidad de foristas y
voluntarios que publican guías e información sobre cómo utilizarlo.
Para organizar las pruebas de software, Testlink define tres unidades de información
básicas que son el Proyecto de pruebas (Test Project), Plan de pruebas (Test Plan) y
el usuario (User), el resto de la información son relaciones entre estas bases.

Para gestionar el software Testing, utilizas el Testlink para:


+ Definir proyectos de pruebas (Test Project).
+ Definir los usuarios que accederán al proyecto.
+ Crear casos de prueba y su información (Test Case).
+ Organizar los casos de pruebas en “conjuntos de pruebas” (Test Suite).
+ Asignar palabras claves (keywords) a los casos de pruebas.
+ Crear planes de pruebas (Test Plan) y enlazarles casos de pruebas (Test Case).
+ Ejecutar los casos de prueba y registrar resultados.
+ Visualizar los resultados de las pruebas (Test Results).
(Documentación oficial TestLink, http://testlink.org/)

• Bugzilla

Bugzilla es un “Sistema de seguimiento de defectos” (Bug Tracking System). Un


sistema de este tipo permite a grupos de desarrolladores o individuales hacer
seguimiento a los errores (bugs) de software en el producto que se está
desarrollando.
En términos generales, la funcionalidad que proporciona es:
+ Seguimiento de errores en el código (Defectos) reportados por distintas vías (una
de ellas el Testing).

____________________________________________________________________________________
18
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

+ Seguimiento a cambios en códigos.


+ Comunicación con los integrantes del equipo.
+ Envío y revisión de cambios.
+ Aseguramiento de calidad (QA).
+ Identificación automatizada de defectos (bugs) reportados duplicados.
+ Reportes y gráficos.
+ Registro de tiempo.
+ Control de acceso, seguridad y administración.
(Documentación oficial Bugzilla, https://www.bugzilla.org/)

• Squash TM

Squash TM es el administrador de repositorio de prueba que se encuentra en el kit de


herramientas de Squash de código abierto. Permite la gestión de requisitos, casos de
prueba y ejecución de campañas en un contexto multiproyecto.

En términos generales, esta herramienta proporciona:

+ Para la gestión de errores, Squash TM tiene una interfaz nativa con Mantis,
Redmine, Jira, Bugzilla.
+ Squash TM es una aplicación web completa que es compatible con los siguientes
navegadores: Firefox, Chrome, Zafari, Internet Explorer (Versión 9).
+ Conjunto de herramientas Squash TM: Squash TM es la herramienta principal de la
suite de herramientas Squash. Interactúa con Squash TA en la parte de
automatización.(Documentación Oficial Squash TM, https://www.squashtest.org/en)

• Zephyr/Jira

Zephyr es un software de gestión de ciclo de pruebas de software, disponible como


versión empresarial y como un Add-On de Atalassian Jira.
Disponible bajo licencia (que tienen un costo), pero dispone de una edición
comunitaria (hasta 10 usuarios) gratuita.

En su versión para Jira, Zephyr te permite extender tu Jira Server o Jira Cloud para

____________________________________________________________________________________
19
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

incluir tipos de Issues y estados de software testing, estas issues podrás crearlas,
ejecutarlas y hacerles seguimiento como cualquier otra Issue de Jira.

Entre los ciclos de pruebas que puede manejar, tiene la novedad que soporta
ciclos Agile Testing.
Para gestionar el software Testing, puedes usar Zephyr para:

+ Creación y planificación de pruebas:


+ Crear Tests como Issues de Jira estándares.
+ Construir planes de prueba.
+ Definir ciclos de pruebas.
+ Hacer seguimiento al avance de las pruebas dentro de Jira.
+ Tiene disponibles planes predeterminados para amplia variedad de proyectos.
+ Ingreso de información en las pruebas (status, comentarios, adjuntos).
+ Asociaciones de defectos a los casos de pruebas.
+ Tableros e indicadores para ver la situación y progreso de las pruebas.
(Herramientas gestión de calidad, http://www.pmoinformatica.com/2015/04/herramientas-
gestion-calidad-software.html)

• Kiwi TCMS

Kiwi TCMS es una herramienta open source para la gestión del proceso de pruebas en
proyectos de software. Entre sus funcionalidades se encuentra:

+ Módulo de administración (definición de roles, permisos, productos, versiones,


prioridades, clasificaciones, entre otros).
+ Gestión de planes de prueba.
+ Gestión de casos de prueba.
+ Gestión de ejecuciones de pruebas.
+ Ejecución de casos de prueba (permite indicar estatus, comentarios, y bugs).
+ Integración con herramientas de gestión de incidentes como Jira, Bugzilla y otros.
+ Seguimiento del progreso de las pruebas a través de resúmenes y reportes variados.
(Kiwi TCMS, ¿una alternativa a TestLink?, Federico Toledo, 2018)

____________________________________________________________________________________
20
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

2.2.2. Cuadro comparativo entre herramientas de gestión de pruebas

Después de realizar la investigación de algunas de las herramientas para la gestión de


pruebas podemos hacer el siguiente cuadro comparativo entre TestLink, Squash y Kiwi TMC:

TestLink Squash Kiwi TMC


Gestión de SI SI NO
Proyectos
Gestión de planes de SI SI SI
Prueba
Notificaciones vía NO NO SI
mail
Gestión de SI SI NO
requerimientos
Gestión casos de SI SI SI
prueba
Reportes SI SI SI

Cuadro 2: Cuadro Comparativo entre herramientas de gestión de pruebas


Fuente: Elaboración Propia

2.3. Integración continua con Jenkins

La integración continua es una práctica de desarrollo de software, en la cual los


programadores suben su código a un repositorio central donde automáticamente pasan las
pruebas métricas y de calidad. Esta técnica se suele realizar regularmente para detectar
fallos cuanto antes y así mantener el código siempre actualizado.

Es decir, la integración continua es una manera de automatizar tareas cuando se sube el


código, aunque también se puede utilizar para desplegar las aplicaciones. En un repositorio
compartido viene bien utilizar una herramienta de integración continua para mantener una
integridad en el código.(Tutorial Jenkins. ¿Qué es y cómo hacer integración continua?,
https://codingpotions.com/jenkins-integracion-continua/

____________________________________________________________________________________
21
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Jenkins es un servidor de automatización de código abierto, autónomo, que se puede utilizar


para automatizar todo tipo de tareas relacionadas con la creación, prueba y entrega o
implementación de software.

Jenkins se puede instalar a través de paquetes de sistemas nativos, Docker, o incluso puede
ejecutarse de manera independiente en cualquier máquina con un Java Runtime
Environment (JRE) instalado.(Documentación oficial Jenkins, https://jenkins.io/)

3. MARCO PRACTICO

Después de la investigación realizada se decidió poner en práctica la integración de TestLink


con Jenkins para poder ejecutar las pruebas automatizadas, y que el estado de los casos de
prueba se actualice dinámicamente.

3.1. Integración de Test Link con Jenkins


Con la integración de estas herramientas lo que se busca es que automáticamente cambie el
estado de un caso de prueba en TestLink al ejecutarse un caso de prueba automatizado
desde el servidor Jenkins.
A continuación, se procederá detallar los pasos que se deben de seguir para la integración
de 2 herramientas para el manejo de los test cases y las pruebas automatizadas, las
herramientas que se integraran son TestLink que es un gestor de casos de prueba y Jenkins
que es un servidor de automatización.

3.1.1. Configuración de TestLink


A continuación, procederemos a la configuración de TestLink desde la creación del proyecto
hasta la asignación de una ejecución de caso de prueba a un plan de pruebas.

3.1.1.1. Creación de un nuevo proyecto en TestLink


Lo primero que se debe hacer al ingresar a TestLink es crear un nuevo proyecto de pruebas,
desde la página principal de TestLink accedemos al menú Gestión de proyecto de pruebas y
hacemos click en la opción crear, nos desplegara el siguiente formulario.

____________________________________________________________________________________
22
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 1: Pantalla de creación de nuevo proyecto en TestLink


Fuente: Elaboración propia

3.1.1.2. Creación de un campo personalizado en TestLink

Para poder diferenciar qué caso de prueba en TestLink corresponde con cada test dentro de
una misma ejecución, deberemos diferenciarlo a través de un campo personalizado. Este
campo personalizado aparecerá posteriormente en cada caso de prueba en TestLink de
manera que podamos identificarlo de forma única respecto al resto de casos.
Crearemos un campo personalizado que defina el package y la clase que ejecuta cada test.
Para ello, en el menú principal iremos a: Gestión de Campos Personalizados y le damos
click en la opción crear, nos desplegará un formulario donde crearemos un campo
personalizado llamado "Java Class", el cual se utilizará a nivel de cada Caso de Prueba,
será de tipo String y estará habilitado en la pantalla del diseño de casos de prueba. No lo
mostraremos en la pantalla de ejecución de pruebas.
Haremos clic en Añadir y asignar al proyecto actual para vincularlo automáticamente con el
proyecto.

____________________________________________________________________________________
23
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 2: Pantalla de creación de un campo personalizado en TestLink


Fuente: Elaboración propia

3.1.1.3. Creación de una suite de pruebas en TestLink


Necesitaremos una suite de pruebas para ir añadiendo los diferentes casos de prueba a
ejecutar. Desde la pantalla principal, iremos al menú Editar Casos de Prueba.
Nos aparecerá el proyecto generado anteriormente. Lo seleccionaremos y daremos de alta
la nueva Suite de Pruebas, haciendo clic en el icono de Herramientas y posteriormente en el
icono de Nueva Suite.
Creamos la nueva suite de pruebas.

____________________________________________________________________________________
24
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 3: Pantalla de creación de una suite de pruebas en TestLink


Fuente: Elaboración propia

3.1.1.4. Creación de un caso de Prueba en TestLink

Una vez creada la suite de pruebas podremos añadir tantos casos de prueba como se
requieran. Para ello seleccionar la suite previamente creada. Pulsamos el botón de
Herramientas y posteriormente en el icono de nuevo Caso de Prueba:
Creamos el nuevo caso de prueba. El tipo de ejecución lo deberemos marcar como
Automatizado, de esta manera el plugin de Jenkins será capaz de identificarlo.
Aquí entra en acción el campo personalizado generado anteriormente. En este campo
deberemos indicar el package y nombre de la clase que ejecutará el caso de prueba en
cuestión.

____________________________________________________________________________________
25
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 4: Pantalla de creación de un caso de pruebas en TestLink


Fuente: Elaboración propia

Este es el código fuente de la clase de test que se ejecutará y que corresponderá con el
caso de prueba. Como se puede ver, el package y nombre de la clase corresponde con el
indicado en el campo personalizado.

Figura 5: Código fuente clase TestCurrentTime


Fuente: Elaboración Propia

____________________________________________________________________________________
26
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

3.1.1.5. Creación de un plan de pruebas en TestLink

Una vez definidos todos los casos de prueba, será preciso la creación de un plan de pruebas
para proceder a su ejecución. En el menú principal iremos a Gestión de Planes de Pruebas,
luego click en crear:

Figura 6: Pantalla de creación de un plan de pruebas en TestLink


Fuente: Elaboración propia

3.1.1.6. Creación de una build en Test Link

Creamos la Build que se vinculará con el Plan de Pruebas generado anteriormente. En el


menú principal iremos al menú Gestión de Builds, luego click en crear:

Figura 7: Pantalla de creación de un build en TestLink


Fuente: Elaboración propia
____________________________________________________________________________________
27
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

3.1.1.7. Agregar caso de prueba en TestLink

Agregamos un caso de prueba al Plan de Pruebas generado anteriormente. En el menú


principal iremos al menú Agregar/Quitar caso de prueba.

Figura 8: Pantalla de agregar un caso de prueba a un plan de pruebas en TestLink


Fuente: Elaboración propia

3.1.1.8. Asignación de casos de prueba a una build en TestLink

El último paso consistirá en añadir los casos de prueba que se ejecutarán en la Build creada.
En el menú principal iremos al menú Asignar la Ejecución de Casos de Prueba.
Seleccionamos y añadimos los casos de prueba a incluir en la Build.

Figura 9: Pantalla de asignación de una ejecución caso de prueba a un plan de pruebas en


TestLink
Fuente: Elaboración propia

____________________________________________________________________________________
28
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Ya tenemos preparado el proyecto en TestLink para vincularlo con el proyecto automatizado


en Jenkins.

3.1.2. Configuración en Jenkins

A continuación, configuraremos el servidor Jenkins, desde la instalación del plugin de


TestLink hasta la ejecución automatizada de un caso de prueba.

3.1.2.1. Instalación y configuración del plugin de TestLink

Antes de generar el proyecto deberemos instalar el plugin de TestLink en Jenkins. Vamos al


menú Administrar Jenkins, luego Administrar Plugins. Buscamos e instalamos el plugin
"TestLink Plugin".

Figura 10: Pantalla de instalación de plugin de TestLink en Jenkins


Fuente: Elaboración propia

Una vez instalado el Plugin deberemos configurar el acceso a TestLink vía Jenkins. Vamos
al menú Administrar Jenkins, luego Configurar el Sistema. Configuramos el apartado de
TestLink.

Figura 11: Pantalla de configuración del plugin de TestLink en Jenkins


Fuente: Elaboración propia

____________________________________________________________________________________
29
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

3.1.2.2. Creación de un job en Jenkins

Creamos una nueva tarea con el nombre de Plugin Example TestLink.


Posteriormente configuramos el origen del código fuente.

Figura 12: Pantalla de configuración del origen del código fuente en Jenkins
Fuente: Elaboración propia

3.1.2.3. Configuración del plugin de TestLink en el job de Jenkins

Dentro del apartado de Ejecutar añadimos un nuevo paso llamado Invoke TestLink.
Aplicamos la siguiente configuración.

Figura 13: Pantalla de configuración de TestLink en Jenkins


Fuente: Elaboración propia

____________________________________________________________________________________
30
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Dentro del apartado de Test Execution indicaremos la sentencia de ejecución del proyecto.
En este caso le pasamos por parámetro el nombre de la suite, que contendrá la clase de test
a ejecutar.

Figura 14: Pantalla de configuración de Test Execution en Jenkins


Fuente: Elaboración propia

Este es el código fuente del fichero "suite.xml" del proyecto.

Figura 15: Pantalla del código fuente de suite.xml


Fuente: Elaboración propia

Por último, configuramos los logs de resultados. Establecemos la ruta donde se generarán
los logs de TestNG.
En este ejemplo hemos discriminado los tests por nombre de clase (el campo
personalizado Java Class contiene el package y nombre de la clase a ejecutar), por tanto,
deberemos escoger la opción TestNG class name. Existen otras opciones, como discriminar
____________________________________________________________________________________
31
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

por suite o por método. Para que la vinculación funcione se debe utilizar el mismo tipo tanto
en la configuración del campo personalizado en TestLink como en la opción seleccionada en
la configuración de la estrategia de búsqueda de resultados en el job de Jenkins.
Añadimos el nombre del campo personalizado para que pueda vincularlo con el Caso de
Prueba.

Figura 16: Pantalla de configuración del log de resultados


Fuente: Elaboración propia

3.1.3. Ejecución en Jenkins del caso de prueba de TestLink

Ejecutamos el job creado en Jenkins, si se realizó la configuración correctamente Jenkins


accederá a TestLink y cambiará el estado de todos los casos de prueba automatizados a
ejecutar.

Figura 17: Pantalla de salida de consola del inicio de la ejecución en Jenkins


Fuente: Elaboración propia

____________________________________________________________________________________
32
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 18: Pantalla de salida de consola del fin de la ejecución en Jenkins


Fuente: Elaboración propia

3.1.4. Cambio de estado del caso de prueba en TestLink

El estado del caso de prueba antes de la ejecución del job en Jenkins es el siguiente:

Figura 19: Pantalla del estado del caso de prueba antes de la ejecución en Jenkins
Fuente: Elaboración propia

____________________________________________________________________________________
33
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

A continuación, observamos el estado actualizado del caso de prueba en TestLink después


de la ejecución del job en Jenkins.

Figura 20: Pantalla del estado del caso de prueba después de la ejecución en Jenkins
Fuente: Elaboración propia

A continuación, vemos que de 2 casos de prueba que existían solo se ejecuto uno ya q ese
estaba vinculado al código q se ejecutó desde Jenkins.

Figura 21: Pantalla de la ejecución en Jenkins(Reconoció 2 casos de prueba y solo ejecuto 1)


Fuente: Elaboración propia

____________________________________________________________________________________
34
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

4. Conclusiones
Las conclusiones que se sacaron luego de realizar la investigación y análisis de los objetivos
específicos son las siguientes:

• Investigar sobre la automatización de pruebas. – De la investigación realizada de la


automatización de los casos de prueba se puede concluir que es una practica muy
recomendable para los equipos de desarrollo ya que ayudan de gran manera a la
optimización de tiempo y recursos, además de asegurar cierto nivel de calidad del
producto, con esto no queremos decir que se eliminen por completo las pruebas
manuales ya que el principal objetivo de la automatización es apoyar las pruebas
manuales.
• Investigar sobre las herramientas para el manejo de casos de prueba. - De la
investigación realizada sobre las herramientas para el manejo de casos de prueba se
puede concluir que existe una gran variedad de herramientas, tanto para la
automatización como para la gestión de los casos de prueba, que ayudan de
sobremanera al equipo encargado del control de calidad, ya que al manejarlas de
manera correcta se tiene un seguimiento constante a todas las tareas realizadas por
cada uno, además de tener reportes de todo el proceso realizado así reducen de
gran manera los errores humanos.
• Realizar un cuadro comparativo de las herramientas para las pruebas automatizadas. –
Luego de realizar el cuadro comparativo que se hizo sobre las pruebas
automatizadas se puede concluir que la elección que el equipo de desarrollo debe
hacer va en relación a la tecnología que se utilice porque cada uno tiene enfoques
particulares, teniendo ventajas que pueden ser aprovechadas de acuerdo al proyecto
que realizan.
• Realizar un cuadro comparativo de las herramientas para el manejo de los casos de
prueba. – Luego de realizar el cuadro comparativo que se hizo sobre las herramientas
para el manejo de casos de prueba se puede concluir que las ventajas y desventajas
que tiene cada uno van de acuerdo al uso que le demos y a la forma de trabajo del
equipo de desarrollo, existen varias que son open source (código libre) que son muy
completas, pero se debe conocer el uso adecuado para aprovecharlas de la mejor
manera.
• Configurar las herramientas para su uso correcto. – Luego de realizar las
configuraciones necesarias de las herramientas para su uso se puede concluir la
configuración de las mismas no es muy compleja pero si se debe conocer sobre ella
para aprovechar sus funcionalidades, al tener la herramienta correctamente
configurada se aumentaría la eficiencia del equipo de desarrollo y aseguraría buena
calidad del software. Además de tener un trabajo sincronizado se llevaría un control
exacto del estado el cada caso de prueba.

____________________________________________________________________________________
35
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Una recomendación que se haría tanto a las empresas como a los miembros del
equipo de desarrollo seria tener una capacitación constante, ya que a medida que
pasa el tiempo las herramientas y tecnología cambia.
No solo basta conocer el funcionamiento de las herramientas, las buenas practicas
hace que el trabajo en equipo sea optimo, la falta de entendimiento dentro de un
equipo de desarrollo hace que las herramientas por muy buenas que sean en lugar
de ayudar pueden generar conflictos.
• Integrar TestLink con Jenkins para la ejecución de pruebas automatizadas. -Luego de
realizar la integración de las herramientas se vio que la correcta integración entre ellas
hace que el trabajo que se realiza en el equipo sea sincronizado y se aproveche al
máximo sus funcionalidades, además se detectó un problema en algunas de las
herramientas para su correcta integración que es la versión de las mismas, ya que al
ser de código abierto constantemente salen actualizaciones por lo que se debe tener
cuidado en ese sentido.
Hay varias herramientas, pero de muchas no existe mucha información, haciendo
complicado el aprender el funcionamiento para la integración de las mismas.

5. Anexos

5.1. TestLink

TestLink es un sistema de ejecución de pruebas y administración de pruebas basado en la


web. Permite a los equipos de control de calidad crear y gestionar sus casos de prueba, así
como organizarlos en planes de prueba. Estos planes de prueba permiten a los miembros
del equipo ejecutar casos de prueba y realizar un seguimiento dinámico de los resultados de
las pruebas.
TestLink es un proyecto de código abierto con licencia GPL. Todo el código fuente detrás de
TestLink está disponible para su descarga gratuita a través de SourceForge o GitHub .

5.1.1. Instalación de Testlink

Para poder instalar Teslink debemos descargarlo desde la siguiente dirección url:
https://sourceforge.net/projects/testlink/files/latest/download?source=files
Todos los navegadores desde Internet Explorer 6 soportan Teslink.
Las dependencias de fondo de TestLink son:

• Un servidor web como Apache 1.3 y 2 o superior


• Un gestor de bases de datos como MySQL 4 o superior.
____________________________________________________________________________________
36
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

• Php 5.2 o superior.


Para facilitar la instalación se necesita tener instalado XAMPP.
XAMPP es un paquete de software libre, que consiste principalmente en el sistema de
gestión de bases de datos MySQL, el servidor web Apache y los intérpretes para lenguajes
de script PHP y Perl.
Descomprimimos el paquete de TestLink en el directorio htdocs dentro nuestra carpeta
XAMPP, generalmente es la siguiente ruta : “C:\xampp\htdocs”.

Figura 22: Pantalla de la ruta de XAMPP


Fuente: Elaboración Propia

TestLink posee un script de instalación automática, que te ayudará a instalar todas las
directivas de configuración, así como la estructura de la base de datos. Nuestro Servidor
Apache debe de estar corriendo al igual que nuestro gestor de base de datos Mysql.
Posteriormente desde nuestro navegador accedemos a la siguiente ruta para proceder con
la instalación: http://”nuestroServidor”:”puerto”/testlink/install/index.php
Donde debemos seleccionar New installation.

____________________________________________________________________________________
37
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 23: Pantalla de la instalación TestLink


Fuente: Elaboración Propia

Aceptamos los términos de licencia y continuamos.


En la siguiente pantalla, se verificará que se tenga los requerimientos necesarios para correr
sin problemas, si todo salió bien, al pie nos saldrá el mensaje siguiente con la opción de
continuar.

Figura 24: Pantalla de la instalación TestLink


Fuente: Elaboración Propia

En esta pantalla colocamos el login y password de mysql y el login y usuario de la base de


datos y hacemos click en Process TestLink Setup.

____________________________________________________________________________________
38
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 25: Pantalla de Login de la base de datos


Fuente: Elaboración Propia

Si todo el proceso fue exitoso nos mostrara el siguiente mensaje en la pantalla, esto quiere
decir que TestLink fue instalada exitosamente.

Figura 26: Pantalla de Instalación exitosa


Fuente: Elaboración Propia

Una vez concluida la instalación procedemos a acceder a la siguiente ruta para poder
ingresar a TestLink http://”nuestroServidor”:”puerto”/testlink/login.php
____________________________________________________________________________________
39
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

El login es : admin y el password: admin.

Figura 27: Pantalla de Login TestLink


Fuente: Elaboración Propia
Una vez introducidos los datos correctos nos mostrara la pantalla de inicio de TestLink,
inicialmente al ser primera vez q accedemos y no tenemos ningún proyecto creado nos
llevara directamente al formulario de crear un nuevo proyecto de pruebas.

Figura 28: Pantalla de formulario de creación de un nuevo Proyecto


Fuente: Elaboración Propia

____________________________________________________________________________________
40
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Ahora tenemos TestLink listo para usarlo, cabe recalcar que se puede cambiar el idioma (por
defecto viene en el idioma Ingles), crear usuarios, cambiar contraseñas y muchas opciones más.

5.2. Jenkins

Jenkins es un servidor de automatización de código abierto, autónomo, que se puede


utilizar para automatizar todo tipo de tareas relacionadas con la creación, prueba y
entrega o implementación de software.
Jenkins se puede instalar a través de paquetes de sistemas nativos, Docker, o incluso
puede ejecutarse de manera independiente en cualquier máquina con un Java Runtime
Environment (JRE) instalado.

5.2.1. Instalación Jenkins

Para poder instalar Jenkins primeramente debemos descargarlo de la página oficial desde la
siguiente dirección url: https://jenkins.io/download/
Jenkins puede ser instalado en diferentes sistemas operativos, para el ejemplo demostrativo
lo instalaremos en Windows.

Figura 29: Pantalla de descarga instalador Jenkins


Fuente: Elaboración Propia

____________________________________________________________________________________
41
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Una vez descargado el instalador del servidor Jenkins procedemos a descomprimirlo para poder
ejecutarlo, se necesita tener instalada java en la maquina donde se desea instalar.

Figura 30: Pantalla de descomprimir el instalador descargado


Fuente: Elaboración Propia

Una vez que se descomprimió el archivo descargado se procede a ejecutar el instalador.

Figura 31: Pantalla de ejecución instalador Jenkins para Windows


Fuente: Elaboración Propia

____________________________________________________________________________________
42
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Se elige la ruta de instalación de y se da a next en las siguientes ventanas.

Figura 32: Pantalla de ruta de instalación Jenkins


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/
Una vez concluida la instalación nos muestra la siguiente pantalla donde debemos hacer
click en Finish.

Figura 33: Pantalla de instalación completada de Jenkins


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/

____________________________________________________________________________________
43
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Una vez concluida la instalación automáticamente se cargará una página para desbloquear
Jenkins, debemos copiar el password de desbloqueo desde la ruta que nos indica.

Figura 34: Pantalla de desbloqueo de Jenkins


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/
Una vez introducida el password correcto de desbloquea Jenkins y nos carga una ventana
donde elegimos si elegiremos los plugins que se instalaran o instalara algunos por defecto.

Figura 35: Pantalla de instalación de plugins de Jenkins


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/

Una vez elegida cualquiera de las opciones se procederá a la descarga de los mismo para
su instalación, este paso demora algunos minutos, se debe tener paciencia.

____________________________________________________________________________________
44
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Figura 36: Pantalla de descarga de plugins de Jenkins


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/

Una vez concluida la descarga e instalación de los plugins, se cargará la página para la
creación del nuevo usuario que manejará el servidor Jenkins.

Figura 37: Pantalla de creación del usuario administrador


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/

____________________________________________________________________________________
45
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Una vez creado el usuario, la siguiente ventana es la instancia de configuración que nos
muestra la url donde el servidor Jenkins correrá.

Figura 38: Pantalla de configuración url Jenkins


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/
Una vez completada la configuración nos mostrara la venta donde nos informa que la instalación
de Jenkins se realizó con éxito y el servidor esta listo para su uso.

Figura 39: Pantalla de instalación completa


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/

____________________________________________________________________________________
46
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Una vez completada la instalación automáticamente se cargará la pagina de inicio de Jenkins, y


el servidor estará listo para su uso.

Figura 40: Pantalla de inicio del Servidor Jenkins


Fuente: https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/

6. Referencias bibliográficas
Manejo de test con Testlink
Rafael Macias Rodríguez
https://www.adictosaltrabajo.com/2013/05/07/test-link/

10 herramientas para la gestión de calidad de software.


http://www.pmoinformatica.com/2015/04/herramientas-gestion-calidad-software.html

Como configurar el plugin de TestLink en Jenkins


Cristina López Goycochea Suarez
https://enmilocalfunciona.io/como-configurar-el-plugin-de-testlink-en-jenkins/

Plugin TestLink
https://wiki.jenkins.io/display/JENKINS/TestLink+Plugin

Documentación Jenkins
https://jenkins.io/doc/

How to install Jenkins on Windows


Phi Nguyen
https://www.blazemeter.com/blog/how-to-install-jenkins-on-windows/

Jenkins Tutorial Plugin TestLink


https://github.com/tupilabs/jenkins-testlink-plugin-tutorial
____________________________________________________________________________________
47
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Automatización de Pruebas de Software con Herramientas Open Source


Henry Eduardo Carrión Cristóbal
https://docplayer.es/3812992-Automatizacion-de-pruebas-de-software-con-herramientas-
open- source-henry-eduardo-carrion-cristobal.html

Web Application Testing in Ruby


http://watir.com/

Selenium - Web Browser Automation. Installation Guide, System Requirements and User
Guide. http://www.seleniumhq.org/

Estudio de herramientas de automatización de pruebas software en aplicaciones web


José García Ruiz
https://core.ac.uk/download/pdf/143444368.pdf

Primeros pasos para el plugin para TestLink


Marco Caballero
https://medium.com/@marco.caballero.d/primeros-pasos-con-el-plugin-para-testlink-
567fe264a41c

SquashTM
https://www.squashtest.org/en/decouvrir-squash-tm/contenu-statique/outils-et-
fonctionnalites/squash-tm-test-management-en

16 herramientas open source para testers


https://testingbaires.com/2017/02/02/16-herramientas-open-source-testers/

8 herramientas para pruebas en 2018


https://pandorafms.com/blog/es/herramientas-para-pruebas/

Watir
https://es.wikipedia.org/wiki/Watir

Selenium
https://es.wikipedia.org/wiki/Selenium

Kiwi TCMS, ¿una alternativa a TestLink?


Federico Toledo
https://www.federico-toledo.com/kiwi-tcms-una-alternativa-a-testlink/

Tutorial Jenkins ¿Qué es y cómo hacer integración continua?


https://codingpotions.com/jenkins-integracion-continua/

Sahi
https://sahipro.com/
____________________________________________________________________________________
48
Integración de pruebas automatizadas con herramientas de manejo de test cases – C. Mauricio Gonzales Candia

Automatizar las pruebas de aplicaciones web con sahi


Gang Li
https://www.ibm.com/developerworks/ssa/web/library/wa-sahi/index.html

____________________________________________________________________________________
49

También podría gustarte