Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA,
INGENIERÍA, CIENCIAS FÍSICAS Y
MATEMÁTICA
CARRERA DE INGENIERÍA INFORMÁTICA
QUITO , 2019
DERECHOS DE AUTOR
Yo Velasco Tanguila Gina Elizabeth en calidad de autora y titular de los derechos morales del
trabajo de titulación Análisis comparativo de herramientas para la automatización de pruebas de
Software, modalidad Proyecto de Investigación, de conformidad con el Art. 114 del CODIGO
ORGANICO DE LA ECONOMIA SOCIAL DE LOS CONOCIMIENTOS, CREATIVIDAD E
INNOVACIÓN, concedo a favor de la Universidad Central del Ecuador la licencia gratuita ,
intransferible y no exclusiva del uso comercial de la obra , con fines estrictamente académicos.
Conservo a mi favor todos los derechos de autor sobre la obra, establecidos en la normativa citada.
Así mismo, autorizo a la Universidad Central del Ecuador para que realice la digitalización y
publicación de este trabajo de titulación en el repositorio virtual, de conformidad a lo dispuesto en
el Art. 144 de la Ley Orgánica de Educación Superior.
El autor declara que la obra objeto de la presente autorización es original en su forma de expresión
y no infringe el derecho de autor de terceros, asumiendo la responsabilidad por cualquier
reclamación que pudiera presentarse por esta causa y liberando a la Universidad de toda
responsabilidad.
-----------------------------------------
Gina Elizabeth Velasco Tanguila
Cc: 1723623219
ginaelizabethvelasco@gmail.com
ii
APROBACIÓN DEL TUTOR
----------------------------------------------
DOCENTE - TUTOR
Cc.1709026577
DEDICATORIA
Este proyecto de investigación en primer lugar se lo dedico a dios ya que el siempre esta guiando
mis pasos y permitiéndome avanzar para cumplir cada una de mis metas, gracias a su bendición
Este gran paso en mi vida profesional también se lo dedico a mis padres Fausto Velasco y Roció
Vaca, ya que sin su apoyo, cariño y su bendición no lo hubiera logrado, a mi madre Roció por sus
palabras de aliento para continuar con este largo camino que no fue fácil pero hoy es recompensado
al permitirme subir un escalón más en mi vida profesional. A mi padre Fausto por guiarme por el
camino correcto y siempre enseñarme que en la vida nunca hay que darse por vencido y que con el
A mi esposo Gustavo Cóndor y a mi hijo Cristopher Cóndor por ser un pilar fundamental en mi
vida. Mi hijo es la fuerza que día a día me empujaba a luchar para culminar este camino ya que se
que sé que puedo ser un ejemplo para él en un futuro. Mi esposo que sin con su comprensión y su
ayuda nada de esto sería posible ya que siempre confió en mi y en que lograría cumplir este gran
sueño.
A mis hermanos Jonathan, Najely y Valeria por la ayuda que me brindaron con mi hijo, no es fácil
lograr culminar una carrera sin el apoyo y el cariño de sus hermanos ya que muchas veces se
necesita del apoyo familiar para continuar con cualquier proyecto de vida.
A mi abuelita Anita Santillán y a mi tía Gladys Velasco que se que desde el cielo me envían
siempre su bendición, mi abuelita que desde pequeña me enseñó a luchar muy duro para conseguir
Gina Velasco T.
AGRADECIMIENTOS
Doy gracias a Dios por la fuerza y la salud que me dio para poder cumplir este sueño.
A mis padres por su ayuda moral y personal, por su amor y su cariño para poder culminar
A mi esposo por su ayuda a lo largo de esta carrera, ya que sin su ayuda no hubiera podido
A m hijo por ser mi inspiración para cumplir mis metas, por ser ese tesoro grande que la
Al Ing. Mario Morales que me acompaño a lo largo de esta carrera y que mas que mi Tutor
fue mi profesor, que desde las aulas hasta este momento en el que culmina mi carrera ha
sabido guiarme de una manera muy profesional, por ser una excelente persona y un
excelente profesional.
A mis amigos y amigas que siempre me brindaron apoyo y aliento para seguir adelante y
DERECHOS DE AUTOR...................................................................................................................ii
APROBACIÓN DEL TUTOR ...........................................................................................................iii
DEDICATORIA ................................................................................................................................ iv
AGRADECIMIENTOS ......................................................................................................................v
CONTENIDO .................................................................................................................................... vi
LISTA DE FIGURAS ...................................................................................................................... viii
LISTADO DE TABLAS .....................................................................................................................x
RESUMEN ......................................................................................................................................... xi
ABSTRACT ...................................................................................................................................... xii
INTRODUCCIÓN ............................................................................................................................. 1
1. DEFINICIÓN DEL PROBLEMA ............................................................................................. 2
1.1 Planteamiento del Problema ................................................................................................... 2
1.2 Formulación del Problema ..................................................................................................... 2
1.3 Interrogantes de la Investigación ............................................................................................ 2
1.4 Hipótesis ................................................................................................................................. 2
1.5 Objetivos de la Investigación ................................................................................................. 2
1.5.1 Objetivo General ................................................................................................................ 2
1.5.2 Objetivos Específicos ......................................................................................................... 3
1.6 Justificación............................................................................................................................ 3
1.7 Alcance ................................................................................................................................... 3
1.8 Limitaciones ........................................................................................................................... 3
2. MARCO TEORICO ................................................................................................................... 4
2.1 Antecedentes .......................................................................................................................... 4
2.2 Marco Conceptual .................................................................................................................. 5
2.2.1 Calidad de Software ........................................................................................................... 5
2.2.2 Revisiones Técnicas ........................................................................................................... 6
2.2.3 Métricas de software .......................................................................................................... 7
2.2.4 Pruebas de Software ........................................................................................................... 7
2.2.5 Proceso de Pruebas ............................................................................................................. 7
2.2.6 Técnicas de Pruebas ........................................................................................................... 8
3. METODOLOGÍA .................................................................................................................... 13
3.1 Metodología de la Investigación. ......................................................................................... 13
3.2 Diseño Descriptivo. .............................................................................................................. 13
3.3 Procedimiento. ..................................................................................................................... 15
4. CÁLCULOS Y RESULTADOS .............................................................................................. 16
4.1 Estudio de herramientas. ...................................................................................................... 16
4.1.1 UnifiedFunctionalTesting................................................................................................. 16
4.1.2 Selenium. .......................................................................................................................... 16
4.1.3 Eggplant. .......................................................................................................................... 16
4.1.4 Ranorex. ........................................................................................................................... 16
4.1.5 TestComplete. .................................................................................................................. 16
4.1.6 Visual Studio Test Professional. ...................................................................................... 17
4.2 Selección de las herramientas. ............................................................................................. 18
4.2.1 Características de las herramientas................................................................................... 18
4.2.2 Criterios para la selección de herramientas ...................................................................... 20
4.3 Justificación de la selección de herramientas ....................................................................... 25
5. DISCUSIÓN ............................................................................................................................ 38
6. CONCLUSIONES Y RECOMENDACIONES ....................................................................... 39
7. ANEXOS.................................................................................................................................. 40
7.1.1 Instalación y Configuración de las herramientas Selenium ............................................. 40
7.1.2 Instalación y Configuración de las herramientas TestComplete ...................................... 45
BIBLIOGRAFÍA.............................................................................................................................. 48
LISTA DE FIGURAS
Figura 1Diagrama de Caja Negra ....................................................................................................... 8
Figura 2 Diagrama de Caja Blanca .................................................................................................... 9
Figura 3Flujo de Casos de Prueba .................................................................................................... 11
Figura 4Ingreso a grabación Selenium. ............................................................................................ 26
Figura 5Crear Proyecto en Selenium. .............................................................................................. 27
Figura 6Establecer URL de prueba. ................................................................................................. 27
Figura 7Grabación Selenium. ........................................................................................................... 28
Figura 8Creación de caso de prueba. ............................................................................................... 28
Figura 9Configuración rapidez de ejecución caso de prueba. .......................................................... 29
Figura 10Resultado de grabación de caso de prueba. ...................................................................... 29
Figura 11Creación de proyecto TestComplete. ................................................................................ 30
Figura 12Configuración de caso de prueba. ..................................................................................... 30
Figura 13Iniciargrabación del caso de prueba. ................................................................................. 30
Figura 14Grabación TestComplete. ................................................................................................. 31
Figura 15Resultado de la grabación de caso de prueba TestComplete. ........................................... 31
Figura 16Ejecutar los casos de prueba. ............................................................................................ 32
Figura 17Resultado de la ejecución de las pruebas. ......................................................................... 32
Figura 18Reproducir caso de prueba. ............................................................................................... 33
Figura 19Reproducción caso de prueba TestComplete. ................................................................... 33
Figura 20Resultado de la ejecución de las pruebas TestComplete................................................... 33
Figura 21Reporte de casos ejecutados vs errores. ............................................................................ 34
Figura 22Reporte ejecutado con Test ResultsReporting. ................................................................. 34
Figura 23Reporte TestCompleteHTML. .......................................................................................... 35
Figura 24Herramientas de Integración para gestión de incidencias. ................................................ 35
Figura 25Reporte Generado Jenkins. ............................................................................................... 36
Figura 26 Descarga Selenium Server (SeleniumHQ, 2015)............................................................. 40
Figura 27 DescargaSeleniumWebDriver para Java (SeleniumHQ, 2015). ...................................... 40
Figura 28Descarga Chrome Driver (SeleniumHQ, 2015). ............................................................... 41
Figura 29Creación de Proyecto Eclipse ........................................................................................... 42
Figura 30 Creación de un paquete. ................................................................................................... 42
Figura 31Nombrar un paquete.......................................................................................................... 42
Figura 32Creación de una clase. ...................................................................................................... 43
Figura 33Nombramiento de la clase................................................................................................. 43
Figura 34Clase Creada. .................................................................................................................... 43
Figura 35Configuración BuildPath. ................................................................................................. 44
Figura36Librerías Selenium. ............................................................................................................ 44
Figura 37Seleccionar Librerías Selenium. ....................................................................................... 45
Figura 38Descargar Trial TestComplete. ......................................................................................... 45
Figura 39InstalaciónTestComplete. ................................................................................................. 46
Figura 40InstalaciónTestComplete en Chrome. ............................................................................... 46
Figura 41Finalizar Instalación TestComplete. ................................................................................. 47
Figura 42Pantalla Inicio TestComplete. ........................................................................................... 47
LISTADO DE TABLAS
Tabla 1:Definiciones de Calidad. ....................................................................................................... 5
Tabla 2: Análisis de las herramientas adaptación de (GlobeTesting, 2012). .................................. 17
Tabla 3 Características importantes de las herramientas .................................................................. 19
Tabla 4: Popularidad por ranking de las herramientas. .................................................................... 20
Tabla 5: Puntaje Popularidad adaptación (Sabev, 2017). ................................................................ 20
Tabla 6: Puntaje Costo Licencia....................................................................................................... 21
Tabla 7: Puntaje Instalación y Configuración adaptación (Sabev, 2017). ...................................... 21
Tabla 8: Puntaje SUS (SystemUsabilityScale). ................................................................................ 22
Tabla 9: Puntaje Grabación y Reproducción adaptación (Sabev, 2017). ......................................... 23
Tabla 10: Puntaje Facilidad de Programación. ................................................................................. 23
Tabla 11: Puntaje por Eficiencia adaptación (Sabev, 2017)............................................................. 24
Tabla 12: Puntaje por Eficiencia. ..................................................................................................... 24
Tabla 13:Resultado aplicación de criterios de selección. ................................................................. 25
Tabla 14:Resumen aplicaciones seleccionadas para comparación. .................................................. 25
Tabla 15Cuadro comparativo de herramientas por caso de prueba. ................................................. 36
TITULO: Análisis comparativo de herramientas para la automatización de pruebas de software.
RESUMEN
ABSTRACT
The present research work is descriptive, comparative and bibliographic, whose main objective was
the analysis of tools for the automation of functional tests, based on a theoretical framework
describing the most important definitions of quality and software testing. The selection of the tools
was made based on the application of criteria of popularity and maturity from where two tools were
taken as a result, they meet the main needs of the user to facilitate the execution of functional tests,
also three test cases were performed and applied to the selected tools in order to get data relevant
for comparison. Based on the analysis and comparison made in the present work, it was possible to
get results that were used for the elaboration of conclusions and recommendations that can be used
for future works related to the topic of automation of software tests.
Los sistemas o aplicativos son creados por personas, por lo que no se puede garantizar que no se
hayan cometido errores durante el desarrollo e implementación de los mismos. Por lo que el costo
asumido por los errores encontrados luego de haberse adquirido el sistema pone en pérdida de
dinero y tiempo de los recursos asignados para el proceso de desarrollo. Según (Chinarro Morales,
Ruiz Rivera, & Ruiz Lizam, 2017) para evitar este tipo de percances se inició con las pruebas de
software para garantizar la disminución de fallos del sistema en producción. Anteriormente las
pruebas de software estaban orientadas a la corrección directa del código fuente de sistemas
realizados por los programadores. Tomando en cuenta el tiempo invertido de los desarrolladores se
vio la necesidad de crear un grupo para lo que es Test únicamente, creando así el equipo de control
de calidad. Conforme se ha ido avanzando en el tiempo y la tecnología, se inició la utilización
masiva de test para garantizar el cumplimiento de la especificación de los requerimientos dados por
el usuario, dichos test se realizan al final del desarrollo del software
Se debe tomar en cuenta que el ciclo de pruebas es algo largo ya que se deben realizar diferentes
tipos de pruebas, este esfuerzo y tiempo no es solo por parte del área de Calidad sino también por
parte del usuario al realizar las pruebas funcionales y en el caso de necesitarse pruebas de regresión
el tiempo se duplica ya que se repite el proceso de pruebas por ambas partes.
1
1. DEFINICIÓN DEL PROBLEMA
Actualmente, el área de Control de Calidad realiza sus pruebas funcionales de manera manual
basándose en los requerimientos funcionales que muchas veces no son claros a su vez ni por el
usuario, esto ocasiona que la empresa tenga que invertir más tiempo y recursos para subsanar los
errores no encontrados, lo que implica que los usuarios reporten incidencias cuya frecuencia retrasa
el óptimo desarrollo de sus funciones.
Buscar herramientas que ayuden con la tarea de realizar pruebas funcionales automatizadas seria
una solución para disminuir el tiempo de inversión en el proceso de calidad, las mismas que no se
pueden elegir si no se cuenta con ayuda para la selección, es importante saber qué tipo de
herramientas permiten realizar este tipo de pruebas y bajo qué condiciones podrían seleccionarse.
1.4 Hipótesis
Es posible determinar criterios que permitan valorar herramientas de automatización para pruebas
de software.
2
1.5.2 Objetivos Específicos
1.6 Justificación
1.7 Alcance
1.8 Limitaciones
3
2. MARCO TEORICO
2.1 Antecedentes
Los sistemas o aplicativos son creados por personas, por ende no se puede garantizar que no se
hayan cometido errores durante el desarrollo e implementación de los mismos. Por lo que el
costo asumido por los errores encontrados en el sistema luego de haberse adquirido pone en
pérdida de dinero y tiempo de los recursos asignados para el proceso de desarrollo. Para evitar
este tipo de percances se inició con las pruebas de software para garantizar la disminución de
fallos del sistema en producción. Anteriormente las pruebas de software estaban orientadas a
la corrección directamente del código fuente de los programas realizados por los
programadores(Chinarro Morales, Ruiz Rivera, & Ruiz Lizam, 2017).
Se debe tomar en cuenta que el ciclo de pruebas es algo largo ya que se deben realizar
diferentes tipos de ellas, este esfuerzo y tiempo no es solo por parte del Analista de Calidad
sino también por parte del usuario al realizar las pruebas; por otro lado la verificación del
sistema luego de corregido un error nos conduce a lo que se conoce como pruebas de
regresión(López León & Millo Sánchez, 2016).
4
2.2 Marco Conceptual
La Ingeniería de software se orienta a un objetivo específico que es cumplir con la satisfacción del
usuario. Para cumplir con lo anterior, se plantea a la Ingeniería como la disciplina encargada de
todos los aspectos relacionados con la producción de software, incluyendo la gestión y
aseguramiento de calidad, mediante propuestas que apuntan hacia la forma de gestionar los
proyectos (Sepúlveda Cuevas & Cravero Leal, 2014). A continuación en la tabla 1 veremos una
serie de definiciones de calidad descritas por algunos autores.
Calidad del software La calidad puede entenderse como el grado en (Sepúlveda Cuevas &
el que el software posee una combinación Cravero Leal, 2014)
deseada de atributos como la confiabilidad o
interoperabilidad, entre otros
5
mantenibilidad y facilidad de pruebas.
Las definiciones de calidad están orientadas a las facilidades que ofrece el software una vez esté
terminado, según (López Echeverry, Cabrera, & Valencia Ayala, 2008) éste debe contener las
siguientes capacidades:
Las revisiones técnicas son el método más utilizado para validar la calidad de un producto .En este
proceso se encuentran involucrado el esfuerzo humano que examina o ayuda a examinar un
producto, pero lo importante es que se comprenda que el resultado de cada acción debe ser eficaz
para cumplir con un resultado exitoso (Somerville, 2011).
6
Esfuerzo de la repetición:Es aquel que se dedica a la corrección de los errores
descubiertos durante la revisión.
Tamaño del producto del trabajo: Es la medición del tamaño del producto del
trabajo que se ha revisado.
Errores menores detectados: Es el número de errores detectados que pueden
clasificarse como menores ya que no requieren un gran esfuerzo para corregirse.
Errores mayores detectados: Es el número de errores encontrados que pueden
clasificarse como mayores ya que requieren más esfuerzo para corregirse.
Las métricas de software se miden fácilmente, pueden ser por tamaño, complejidad entre otras.
Todo esto ser realiza para demostrar que existe calidad en el software, se construyen basándose en
datos históricos del producto, según (Somerville, 2011) las métricas del software se dividen en dos
clases:
Métricas dinámicas.- Son métricas recogidas por las mediciones que se realizan a un
programa en ejecución.
Métricas estáticas.-Son métricas recogidas por mediciones hechas en el diseño,código, o
documentación de un software.
La prueba de software puede serusada para mostrar la presencia de errores, pero nunca su ausencia.
Es una actividad realizada para evaluar la calidad del producto y mejorarla, identificando defectos
y problemas. Es una verificación dinámica del comportamiento de un programa contra el
comportamiento esperado, usando un conjunto finito de casos de prueba, seleccionados de manera
adecuada (Paz Mera, 2016).
Es importante que se elabore un proceso en el cual exista un plan y una matriz de pruebas para que
al ejecutar los casos de prueba se pueda dictaminar si el caso funciona adecuadamente y así
establecerlo como una conformidad, en el evento de que un caso de prueba al ejecutar el producto
de software no funcione de forma adecuada se relacionará como una no conformidad. A estas
métricas se les define un nivel o puntuación acorde a la clasificación, las técnicas y la matriz que se
utilicen. Las métricas ayudan a estimar los tiempos, esfuerzos y asignaciones; determinan también
7
los niveles de riesgo para que el equipo de desarrollo pueda ajustar los flujos de actividades y
optimizar así los recursos y el talento de los equipos de desarrollo. Por tanto, la implementación de
un proceso de pruebas brinda las pautas para definir objetivos, analizar y viabilizar los
requerimientos, diseñar, detallar, programar, implementar y asegurar la calidad de un producto de
desarrollo software (Paz Mera, 2016).
Existen dos grandes agrupaciones para las pruebas de software: de caja negra y de caja blanca,
estas están orientadas a encontrar circunstancias en las que el programa no se comporta de acuerdo
a las especificaciones. A continuación se especifica la funcionalidad de cada una de las
agrupaciones (López León & Millo Sánchez, 2016).
Caja Negra: Puede utilizarse para lograr objetivos de cobertura de entrada y salida como
se muestra en la Figura 1 , con entradas humanas, vía interfaces a un sistema, o parámetros
de interfaz de las pruebas funcionales. En esta técnica es importante identificar las clases
de equivalencia y luego se generan los casos de prueba con los diferentes valores o
especificaciones a ser probados, la técnica vista no se preocupa tanto por cómo está hecha
la aplicación sino que cumpla con las especificaciones dadas por el usuario (Paz Mera,
2016)
Caja Blanca: Es un tipo de pruebas de software que se realiza sobre las funciones internas
de un módulo. Así como las pruebas de caja negra ejercitan los requisitos funcionales
desde el exterior del módulo, las de caja blanca están dirigidas a las funciones internas, en
la Figura 2 se muestra como de igual se toma en cuenta las entradas y las salidas
(Pressman S., 2010).
8
Figura 2 Diagrama de Caja Blanca
Los tipos de prueba que se verán a continuación se basan en las pruebas funcionales, pueden
hacerse en diferentes niveles dependiendo del objetivo de las pruebas, cada una de ellas se realizan
en determinados momentos del ciclo de vida del software. Según (Fernández Pérez, Cué Delgado,
Cruz Aguila, Gonzalez Jorrín, Acosta Molina, & Hernández Aguila, 2007) se listan los siguientes
tipos.
9
Integración.- El objetivo es probar la unión de las componentes del sistema, una vez que
hayan pasado las pruebas unitarias se deber verificar que los componentes interactúen
correctamente en cuanto a funcionalidad. Este tipo de prueba deberá realizarse durante la
fase de construcción, una vez sea implementados todos los componentes.
Sistema.-Comprueba la funcionalidad de todo el sistema y cualquier detalle de diseño
interno. Se deben verificar principalmente los requisitos no funcionales definidos para el
producto, comprobar que el sistema puede gestionar los volúmenes de información
requeridos, seguridad e interfaces con otros sistemas funcionando correctamente bajo las
condiciones más extremas.
Aceptación.- Es un conjunto de pruebas que se ejecutan nuevamente en acompañamiento
del usuario, teniendo como principal objetivo cubrir correctamente con todos los requisitos
solicitados en el sistema.
Regresión.-Son pruebas que se realizan para verificar que cambios ocurridos en algún
componente del sistema no provoquen errores adicionales en otros componentes que ya
han sido probados, por lo que se realiza una regresión de pruebas.
Los casos de prueba conllevan los requisitos funcionales, por lo que cada requisito especifica
mínimo un caso de prueba. Cada caso de prueba está compuesto por varios pasos a ejecutar,
dependiendo de la complejidad del requisito, y cada paso está compuesto por una acción, que será
realizada por el tester o el usuario. Para que un caso de prueba tenga un resultado esperado exitoso
los pasos deben cumplir con los requerimientos establecidos por el usuario. Si uno de los pasos no
lo cumple, todo el caso de prueba resultará fallido en la figura 3 se muestra un flujo ejemplo de
casos de prueba. Existen diferentes técnicas de derivación de casos de prueba para probar una
unidad de software. Estas se pueden dividir en dos, de caja negra (funcional) o de caja blanca
(estructural). Los casos de prueba son esenciales para todas las actividades de pruebas, según
(Ochoa, 2018):
10
Identificar los casos de prueba y escenarios relevantes para
ejecución.
Las pruebas automatizadas son sólo un tipo de prueba que utiliza scripts para ejecutar
automáticamente una serie casos bajo prueba para comprobar que los pasos se codificaron
adecuadamente. Las pruebas automatizadas tienen como propósito aligerar el proceso de ejecución
de pruebas esto según (Ochoa, 2018), sin embargo traen consigo limitantes, como la alta
dependencia que se tiene con las herramientas de automatización y la complejidad que conlleva su
configuración a la hora de interactuar con ellas .Para lo cual se requiere que el personal capacitado
y que tenga el conocimiento adecuado sobre el uso de estas herramientas.
11
automatización de las pruebas funcionales puede ser complicada, por lo que el personal que realice
esta tarea se debe familiarizar con los principios básicos de cómo crear este tipo de pruebas. A
continuación se describen algunos principios básicos para lograr la automatización de estas pruebas
(Ramesh, 2014).
12
3. METODOLOGÍA
La siguiente investigación es de tipo aplicada al método descriptivo, pues el objetivo está orientado
a identificar características principales de un tema en dos o más grupos (Vara Horna, 2012). Es
decir, únicamente pretenden medir o recoger información de manera independiente o conjunta
sobre los conceptos o las variables a las que se refieren. Se ha escogido el tipo de investigación
descriptiva comparativa que plantea que los estudios analizan la forma como varían algunas
características entre dos o más grupos de interés, de tal manera que se recolecta información
relevante con respecto a un mismo fenómeno y luego se comparará los datos recogidos (Hernández
Sampieri & Fernández Collado, 2010).
Partiendo de que se aplicarán criterios para selección de herramientas diremos que se utilizaran
ocho criterios divididos en popularidad y madures para lo cual se definió que para popularidad se
medirá esta como criterio y para madurez que es como va mejorando conforme al tiempo un
software, se medirán siete criterios que se encuentran divididos en costo, instalación y
configuración, usabilidad, facilidad de programación, grabación y reproducción, eficiencia y
calidad en reportes.
El autor (Sabev, 2017) planteó estos ocho criterios para herramientas que permiten automatización
de pruebas, en base a esto diremos que se tomaran los criterios que serán aplicados de la siguiente
manera.
Popularidad.- Es muy importante que una herramienta de software sea popular en su industria, así
como entre los investigadores, las innovaciones son continuas por lo que en este caso de toma
como criterio de popularidad al número de búsquedas acerca de las herramientas que serán
13
analizadas para lo cual se toman como índice a las páginas más visitadas según (Sabev, 2017), estas
son Google, Google Scholar, Research Gate y Wikipedia.
Costo de Licencia.- El costo de una herramienta es muy importante debido a que las compañías
buscan obtener herramientas de calidad y con costos que se encuentren dentro de los presupuestos
por lo que es costo de la licencia es un criterio de evaluación necesario para la evaluación de estas
herramientas, este criterio se lo toma dentro de la madurez de un software ya que los costos pueden
variar de acuerdo a las características que se van mejorando en cada herramienta.
Usabilidad.- Según la ISO/IEC 9241-11 se indica que para la evaluación de una herramienta de
software debe existir usabilidad, esto es necesario para verificar la herramienta garantice que puede
ser utilizada por usuarios específicos y cumplir con el objetivo de la misma que en este caso es la
automatización de pruebas.
Facilidad de Programación.- Este criterio viene atado de la usabilidad ya que es importante que la
herramienta tenga facilidad en el uso y en este caso al utilizarla para programar scripts que cumplan
con el objetivo de la herramienta que es automatizar pruebas, es importante saber si se puede
programar en cualquier lenguaje ya que el no tener conocimiento sobre el lenguaje de
programación puede ocasionar demora en aprender a utilizar la misma.
Eficiencia.- Este ítem se refiere a la capacidad de rendimiento que tiene la herramienta en relación
con en el tiempo de ejecución, por lo que se tomará como índice el tiempo que se demora en
ejecutarse un caso de prueba, partiendo de este se verá la eficiencia de la herramienta.
14
lo que es importante tener en cuenta si la herramienta tiene la opción de generar reportes o al
menos de integrarse con otras aplicaciones que permitan generar los mismos.
Estos criterios serán aplicados en la sección de cálculos y resultados basados en las características
de cada una de las herramientas, para la ponderación de cada uno de estos criterios se tomará la
valoración dada por algunos autores como (Sabev, 2017), (Chinarro Morales, Ruiz Rivera, & Ruiz
Lizam, 2017), entre otros que muestran que para facilidad se debe medir de 1 a 5 siendo 5 el valor
más alto y 1 el valor más bajo, en el caso de no cumplir el valor podrá ser 0.
Como se tienen ocho criterios de evaluación para el cálculo final de la selección de herramientas se
debe tener como máximo un valor de 40 ya que todas las ponderaciones dan como máximo 5
puntos y si lo multiplicamos por los ocho criterios nos da el puntaje máximo dicho anteriormente.
3.3 Procedimiento.
15
4. CÁLCULOS Y RESULTADOS
Debido las necesidades de utilizar herramientas para la automatización se ha requerido analizar las
características más relevantes de una variedad de herramientas. Para dicho análisis se ha tenido en
cuenta la fácil utilización, las tecnologías soportadas, la integración con herramientas externas de
gestión, el posible soporte de las herramientas y las plataformas compatibles (GlobeTesting,
2012)nos proporciona un ranking de las mejores herramientas para automatización:
4.1.1 UnifiedFunctionalTesting.
4.1.2 Selenium.
Automatiza los navegadores. Principalmente sirve para automatizar aplicaciones web con fines de
prueba, las tareas de administración basadas en la web pueden y deberían también ser
automatizadas (SeleniumHQ, 2015).
4.1.3 Eggplant.
Eggplant ayuda a monitorear y analizar la experiencia de usuario de extremo a extremo y mejorar
los resultados de negocio por medio de la automatización de pruebas(EggPlant, 2018).
4.1.4 Ranorex.
Automatizalas pruebas en un escritorio de Windows y luego las ejecuta localmente o remotamente,
en dispositivos móviles IOS o Android reales o en simuladores / emuladores.
4.1.5 TestComplete.
Herramienta de automatización de pruebas de la industria con un motor de reconocimiento de
objetos híbridos impulsado por Inteligencia Artificial para detectar y probar cada aplicación de
escritorio, web y móvil con facilidad (SmartBear, 2019).
16
4.1.6 Visual Studio Test Professional.
Esta herramienta ayuda a la coordinación de todas las actividades de administración de pruebas,
incluidas las pruebas de planificación, creación, ejecución y seguimiento desde una ubicación
central de un sistema(Microsoft, 2019).
Unifiedfunc Visual
Características tionalTestin Selenium Eggplant Ranorex Testcomplete Studio Test
g Professional
Simulación
equivalente a la
acción del usuario
final.
Administración /
almacenamiento
de objetos.
Soporte en
variedad de
navegadores
Parámetros de
reconocimiento de
objetos.
Lenguaje
orientado a
objetos ,
integración con
herramientas
externas y
librerías
17
Integración con
herramientas de
gestión de pruebas
Numerosas
tecnologías Solo web
soportadas?
Facilidad de
creación de
scripts.
Lenguajes
soportados para la Numerosos Numerosos Numerosos Numerosos
Visual Basic SenseTalk
creación de lenguajes lenguajes lenguajes lenguajes
scripts.
Integración con
proceso de
desarrollo.
A continuación se muestra una tabla con características relevantes para cada aplicación.
18
Tabla 3 Características importantes de las herramientas
Ultima Lenguajes Estado de Ultima
Herramienta Desarrollador URL Licencia Demo
Versión Soportados Actualización Actualización
https://w $800
Own,
Unifiedfuncti ww.micr UFT_14. usuario/
MicroFocus keyworddrive 30 días ACTIVA 2019
onalTesting ofocus.c 51 por 3
n, VBScript
om meses
Java, .NET,
JavaScript,
https://w
Python, Free
ww.selen
Selenium SeleniumHQ 3.141.59 Ruby, PHP, (Apache N/A ACTIVA 2018
iumhq.or
Perl, R, 2.0)
g/
Objective C,
Haskell
$4950
Java, .NET,
https://eg anual
Eggplant Eggplant 18.2.3 C#, Ruby, 30 días ACTIVA 2019
gplant.io/ por
C++, Python
usuario
$2900
https://w .NET
anual
Ranorex RanorexGmbH ww.ranor 8.3 (C#,VisualBa 30 días ACTIVA 2018
por
ex.com/ sic)
usuario
JavaScript,
Python, $8400
https://s
SmartBear VBScript, anual
Testcomplete martbear. 14.0 30 días ACTIVA 2019
Software JScript, por
com/
Delphi, C++, usuario
C#
https://vi
sualstudi
$250
o.micros .NET
Visual VT PRO mensual
Microsoft oft.com/e (C#,VisualBa 30 días ACTIVA 2019
Studio Test 2017 es por
s/vs/test- sic)
usuario
professio
nal/
Para obtener los datos de popularidad se obtuvieron resultados de Google donde se lleva a cabo una
búsqueda con el nombre de la herramienta y el nombre "herramienta de prueba" el número de
resultados se registra en la columna Google Search, una búsqueda similar a la anterior se realiza en
Google Scholar, ResearchGate y Wikipedia de tal manera que se mide el ranking de popularidad
en las pagina de búsqueda más relevantes. Por lo que en la tabla 4 se registra la popularidad
sumando los 4 valores de Ranking y se los divide para 4, siendo así el que tenga menor valor el
que se encuentre en primer lugar de popularidad.
19
Tabla 4: Popularidad por ranking de las herramientas.
Google Ranking Google Ranking Research Ranking Wikipedia Ranking
Herramienta Popularidad
Search GS Schoolar GSch Gate RG (1 año) WK
Unifiedfuncti 29,800,00
3 70.100 2 21 2 4416 2 2,25
onalTesting 0
41,100,00
Selenium 2 816.000 1 16 3 21637 1 1,75
0
11,900,00
Eggplant 4 54.100 3 1 6 107 5 4.5
0
Ranorex 276,000 6 305 6 3 5 901 4 5.25
Testcomplete 1,170,000 5 9.650 5 9 4 1326 3 4.25
Visual
89,600,000 1 21.100 4 43 1 0 6 3
Studio Test
Se realizó el análisis de las herramientas de acuerdo a 8 criterios dados y evaluados por (Sabev,
2017): Popularidad (P), Costo Licencia (CL), Instalación y Configuración (IC), Usabilidad (U),
Facilidad de Programación (FP),Grabación y Reproducción de scripts (GR), Eficiencia (E),
Reportes(R).Veremos a continuación la tabla de los resultados aplicando los criterios descritos
anteriormente a cada una de las herramientas.
A. Popularidad (P).- Se dará puntos similares acorde a las herramientas, para lo cual se
tomara la valoración de la tabla 5 , con estos valores se darán los puntajes de popularidad
siendo 5 el puntaje más alto y se lo da al valor más bajo encontrado en la tabla 4 de como
ya se explicó anteriormente :
5
0 - 3.0
3.1 - 6.0 4
6.1 - 7.5 3
20
7.6 – 9.0 2
9.0 – 15 1
5
Gratuitas
>1000/por usuario 4
1000-2000/por usuario 3
2001-5000/por usuario 2
5000-10000/por usuario 1
21
Instalación Puntaje Instalación Puntaje Documentación Configuración
2 1/ si tiene 2 /facilidad
0 – 120 /segundos
0 /dificultad alta
5
80 – 100
73 – 84 4
52 – 72 3
39 – 51 2
26 - 38 1
22
el criterio respectivo donde 5 es el puntaje más alto y se van restando los puntos negativo
en el caso de no cumplir con la descripción de la tabla 9 :
Descripción Puntaje
Descripción Puntaje
5
Facilidad de Programación y elección de lenguajes de programación
23
G. Eficiencia (E).-La ejecución rápida de la prueba es muy importante para una
herramienta de automatización, especialmente cuando hay muchos casos de prueba.
(Sabev, 2017) tomó un conjunto simple de 4 casos de prueba es grabados en diferentes
herramientas , tomando como objeto de prueba la calculadora de Windows y como datos
los ejercicios de suma, resta, multiplicación y división. De estos casos se obtuvo la tabla
11 de puntajes por tiempo de ejecución la cual veremos a continuación siendo 5 el valor
más alto para el menor tiempo de ejecución.
5
0-5
5 - 10 4
11 - 20 3
21 - 40 2
40 - 90 1
Descripción Puntaje
5
Reportes automáticos y configurables
24
Reportes manuales o que se generen a partir de otras herramientas 3
Se registran los valores obtenidos de cada uno de los criterios y se realizo una sumatoria en la
tabla 13.
P CL IC U FP GR E R Resultado
Herramienta
UnifiedfunctionalTesting 5 2 4 3 3 3 4 4 28
Selenium 5 5 3 4 4 4 4 3 32
Ranorex 4 2 3 3 3 4 4 4 27
Testcomplete 4 2 4 3 3 3 3 5 27
Visual Studio Test 5 2 3 3 3 3 3 3 25
Eggplant 4 2 3 3 3 3 3 3 24
De la valoración por criterios de cada una de las herramientas se tomaron 2 con un índice de
valoración superior se muestran en la tabla 14, en este caso dieron como resultado una herramienta
con licencia gratuita (Selenium) y una con licencia pagada (TestComplete) para la comparación de
las mismas, los valores se obtuvieron de acuerdo a la metodología descrita en la sección 3.
Como se puede observar en la tabla 13 se obtuvieron las dos mejores herramientas de acuerdo a
popularidad y madurez, además de seleccionarlas por facilidad de programación ya que se necesita
que permita generar scripts en varios lenguajes de programación.
Herramienta P CL IC U FP GR E R Resultado
Testcomplete 4 2 4 3 3 3 3 5 27
Selenium 5 5 3 4 4 4 4 3 32
25
4.3.1 Caso de Prueba
Para demostrar el funcionamiento de las herramientas se plantea tomar una página web (Tienda
Online). Se encuentra realizada en lenguaje Java Script, las herramientas tiene la opción de realizar
scripts de pruebas en varios lenguajes uno de ellos es el seleccionado.
Caso I.- El primer caso de prueba es la grabación de la prueba en las diferentes herramientas.
a) Selenium.- Se debe acceder a la página web a probar en la siguiente dirección:
https://ginaelizabethvelasco.wixsite.com/zafirostudio. Se ingresa a Selenium y se escoge la
opción de grabar prueba.
Selenium al ingresar a grabación obliga a que el usuario cree un nuevo proyecto y que se registre la
URL de la página a probar, es necesario recordar que esta herramienta permite realizar pruebas
únicamente Web. Una vez registrada la URL de la página se debe ingresar el nombre del caso de
prueba a grabar, se pueden grabar y crear varios casos de prueba dentro de un proyecto.
26
Figura 5Crear Proyecto en Selenium.
27
Figura 7Grabación Selenium.
Se puede observar que una vez que se realizo la grabación de la prueba, se muestra una ventana en
la cual se reflejan los comandos ejecutados en la pagina Tienda Virtual, los mismos que se
encuentran asociados al caso de prueba registrado como “Agregar artículos al carro de compras”.
Se tiene la opción de configurar la rapidez del tiempo de ejecución de las pruebas.
28
Figura 9Configuración rapidez de ejecución caso de prueba.
29
Figura 11Creación de proyecto TestComplete.
30
Figura 14Grabación TestComplete.
En el caso de TestComplete se observa que al crear la grabación se genera el script en conjunto con
un grupo de imágenes que muestran la secuencia de grabación del caso de prueba.
Caso II.- Se debe realizar la validación de los casos de prueba, es decir la reproducción de los
mismos de tal manera que se observe el tiempo de ejecución, así como los casos de éxito y los
errores generados al ejecutar las pruebas que se grabaron en el Caso I.
a) Selenium.- Una vez que se registra el caso de prueba como resultado de la grabación, se
tiene la opción de reproducir la prueba, y se va registrando en el Log los pasos que se
ejecutan correctamente así como los casos que generan algún tipo de error.
31
Figura 16Ejecutar los casos de prueba.
Después de la ejecución de los casos de prueba se muestra en la consola los pasos que dan
resultados exitosos , en el caso de que un paso genere un error éste se muestra en la consola , de tal
manera que el usuario puede observar la ejecución de la grabación paso a paso.
32
Figura 18Reproducir caso de prueba.
Figura 19Reproducción
19 caso de prueba TestComplete.
Una vez que se ejecuta el caso de prueba grabado se muestra en una consola de log los resultados
de la ejecución, se muestra el número de casos que se reprodujeron y cuántos de estos fueron
exitosos, en el caso de haber un error se muestra el detalle del mismo.
Figura 20Resultado
Resultado de la ejecución de las pruebas TestComplete.
33
a) Selenium.-Selenium IDE Muestra un reporte de los casos ejecutados y errores
encontrados, además tiene la opción de exportar el script y ejecutar reportes en PDF, XML
o gráficos al integrarse con otras herramientas.
Selenium no tiene la opción de ejecutar reportes directamente desde la herramienta, pero se pueden
ejecutar reportes desde herramientas con las que se permite integración en la Figura 19. Se tiene un
ejemplo de cómo se muestra el reporte en la herramienta Test ResultsReporting.
34
Figura 23Reporte TestCompleteHTML.
TestComplete tiene la opción de integrarse con otras herramientas para la elaboración de reportes,
una vez ejecutados los casos de prueba las herramientas que se muestran en la consola sirven como
gestor de incidencias, los mismos que permiten generar reportes de los errores que sean registrado,
a continuación se muestra un ejemplo de reporte generado en la herramienta Jenkins Figura 31.
35
Figura 25Reporte Generado Jenkins.
Se realizaron 3 casos para probar el funcionamiento de cada una de las herramientas aplicadas para
el mismo tipo de prueba, en este caso una página Web cuyo lenguaje de programación es
JavaScript, tomando como casos la grabación, ejecución y generación de reportes que son
relevantes y cubren el objetivo de la
la automatización de pruebas. Cada una de las herramientas
cumple con los casos establecidos de diferente manera por lo cual se realiza la tabla 15 donde se
encuentra la comparativa de la herramienta para cada caso.
Tabla 15Cuadro
Cuadro comparativo de herramientas por caso de prueba.
36
momento de realizar esta observar en que parte de la
acción se puede elegir el pantalla se encuentra el
componente con solo paso que está siendo
dirigirse a la pantalla de la ejecutado.
página.
Tiene la opción de No tiene la opción de
seleccionar la velocidad configurar la velocidad de
con la que se va a ejecutar ejecución de la prueba.
el caso de prueba. Muestra el tiempo de
No muestra el tiempo de ejecución de la prueba.
ejecución de la prueba. La consola de log se
encuentra organizada,
permitiendo que la lectura
Caso II de la ejecución sea fácil.
(Ejecución caso de prueba) Permite organizar la
ejecución por medio de
filtros, de tal manera que se
puede ordenar los logs por
tipo, nombre, hora, etc.
Tiene la opción de reportar
un error a cualquiera de las
herramientas de integración
para gestión de incidencias.
Se puede exportar el script En la versión paga se tiene
para generar los reportes la opción de integrarse con
por medio de otras herramientas de gestión de
herramientas. incidencias para registrar
Se debe conocer acerca de errores y de esta manera
Caso III
herramientas de generación generar reportes en estas
(Generación de reportes)
de reportes por ejemplo herramientas.
JasperReport. La elaboración de los
reportes en las herramientas
con las que se integra son
intuitivas.
37
5. DISCUSIÓN
Es importante tener en cuenta que Selenium siendo una herramienta gratuita cubre con lo requerido
de una herramienta de automatización de pruebas, la grabación y ejecución de los casos de prueba
son efectivas. Para una empresa que no posee el presupuesto necesario para la parte de pruebas
Selenium es la herramienta perfecta para la elaboración de pruebas funcionales.
De acuerdo con los resultados obtenidos en el análisis de las herramientas independientemente del
tipo de licencia que posee la herramienta, se puede decir que existe un mejor desempeño por parte
de TestComplete ya que tiene integración directa con herramientas de gestión de incidencias y un
diseño intuitivo al momento de la grabación de un caso de prueba, esto es muy importante ya que
facilita el tiempo de utilización de la herramienta, al tener integración con las herramientas de
gestión permite obtener reportes de asignación y resolución de errores.
Las limitaciones que se obtuvieron al momento de generar esta investigación fueron, el registro de
errores en las herramientas de integración en TestComplete ya que se utilizó la versión de prueba.
Otra de las limitaciones fue el generar reportes en Selenium ya que las herramientas que cubren con
esta funcionalidad necesitan de programación, pero es importante saber que existe mucha
documentación para la elaboración de los reportes por lo que se pudo realizar esta acción en
Selenium.
38
6. CONCLUSIONES Y RECOMENDACIONES
6.1 Conclusiones
Tomando en cuenta un modelo referencial que parte de los siguientes criterios: popularidad, costo
licencia, instalación y configuración, usabilidad, facilidad de programación, Grabación y
reproducción de scripts, Eficiencia y elaboración de reportes, se evaluaron una cantidad de
herramientas que cumplen con el objetivo de automatización de pruebas.
Se determinó una gama de herramientas y la descripción relevante de cada una para mejorar la
selección, de tal manera que si un usuario necesita alguna herramienta diferente a las analizadas
puede dirigirse al cuadro de descripción de las mismas y tomar una de su preferencia siempre que
esta cumpla con las necesidades requeridas.
Cada empresa puede tener una necesidad diferente al momento de obtener un software para
automatización de pruebas, con el análisis de las herramientas más populares se pudo obtener
cuales se acercan más a las necesidades de los usuarios en cuanto a calidad de software
6.2 Recomendaciones
Para la comparación de las herramientas seleccionadas en este caso dos, se tomaron como índice
una herramienta gratuita y una licenciada por lo que se pudo observar la perspectiva en cuanto a
costos, para una futura investigación se recomienda realizar una comparación entre dos
herramientas con licencia pagada ya que ahí se puede también notar qué tanto interviene en cuanto
a características el costo de cada una de ellas.
Es importante tener en cuenta que para automatizar pruebas no solamente se debe permitir grabar
los casos y reproducirlos automáticamente, sino también disminuir tiempos en la elaboración de
reportes y de informes de pruebas. Para estudios futuros, se sugiere analizar herramientas de
integración para generación de reportes que se encuentren ligadas a herramientas de automatización
de software.
39
7. ANEXOS
A continuación se listan los pasos a seguir para la configuración de selenium web driver para
eclipse.
40
e. Driver para el navegador Chrome(chromedriver_win32).
41
Figura 29Creación de Proyecto Eclipse
42
Figura 32Creación de una clase.
43
15. Click derecho en “SeleniumProyecto” y seleccionamos la opción BuildPath.
16. En la pantalla seleccionar la opción Configure BuildPath.
17. Click en la pestaña Libraries.
18. Click en la opción AddExternalJARs.
Figura36Librerías Selenium.
44
Figura 37Seleccionar Librerías Selenium.
21. Una vez realizado este paso ya podremos utilizar nuestro proyecto y programar
nuestras pruebas con Selenium Webdriver.
2. Ejecutar el programa .
3. Presionar Install y esperar que se instale el programa.
45
Figura 39InstalaciónTestComplete.
6. Finalizar la instalación.
7. Ejecutar TestComplete.
46
Figura 41Finalizar Instalación TestComplete.
47
BIBLIOGRAFÍA
Aristegui O., J. L. (2010). Los casos de prueba en la prueba de software. Revista Digital
Lámpsakos, 3, pag.27-34.
Chinarro Morales, E., Ruiz Rivera, M. E., & Ruiz Lizam, E. (2017). Desarrollo de un modelo de
pruebas funcionales de software basado en la herramienta SELENIUM. Revista Industrial Data ,
20 (1), 139-148.
Esmite, I., Farías, M., Farías, N., & Pérez, B. (2007). Automatización y Gestión de las Pruebas
Funcionales usando Herramientas Open Source Centro de Ensayos de Software (CES). XIII
Congreso Argentino de Ciencias de la Computación (CACIC). Uruguay.
Fernández Pérez, Y., Cué Delgado, R. L., Cruz Aguila, C. L., Gonzalez Jorrín, M., Acosta Molina,
D., & Hernández Aguila, V. (2007). Pruebas de aceptación para un software con la presencia de
una entidad certificadora de la calidad. Universidad de las Ciencias Informáticas, 1 (3), Pag.81-93.
Hernández Sampieri, R., & Fernández Collado, C. (2010). Metodología de la Investigación (Vol.
5ta edición). Mexico: MC Graw Hill.
López Echeverry, A. M., Cabrera, C., & Valencia Ayala, L. E. (2008). Introducción a la calidad de
Software. Scientia et Technica Año XIV, 39, pg.326-331.
López León, H., & Millo Sánchez, R. (2016). Pruebas de Software en XEOS. VI Taller
Internacional de Tecnologías de Software Libre y Código Abierto. Cuba: Universidad Central
“Marta Abreu” de las Villa.
48
Ochoa, L. L. (2018). Automatización de Pruebas de Software. 16th LACCEI International Multi-
Conference for Engineering, Education, and Technology.Perú.
Paz Mera, J. A. (2016). Análisis del proceso de pruebas de calidad de software. Ingeniería
Solidaria, 12 (20), Pg. 163-176.
Pressman S., R. (2010). INGENIERÍA DEL SOFTWARE. UN ENFOQUE PRÁCTICO (Vol. 7).
Mexico: University of Connecticut.
Ramesh, K. (28 de Abril de 2014). Automatizar las pruebas funcionales. Revista Antioqueña de las
Ciencias Computacionales y la Ingeniería de Softwar ,
http://fundacioniai.org/raccis/v4n1/n6a2.pdf.
Sabev, P. (2017). A Comparative Study of GUI Automated Tools for Software Testing. En S. 2017
(Ed.), The Third International Conference on Advances and Trendsin Software Engineering (págs.
pag.7-15). Rusia: Department of Informatics and Information Technologies “Angel Kanchev”
University of Ruse .
Sepúlveda Cuevas, S., & Cravero Leal, A. (2014). Estandarización de los procesos asociados al
desarrollo de proyectos informáticos: un caso de estudio. Revista Computación y Sistemas, 18 (2),
375-389.
Vara Horna, A. A. (2012). Siete pasos para una tesis exitosa (Vol. 2012). (U. S. Porres, Ed.) Peru,
lIMA: Facultad de Ciencias Administrativas y Recursos humanos.
49