Tesina Currao Junio 2022
Tesina Currao Junio 2022
Tesina Currao Junio 2022
2022
2022
Facultad de Tecnología Informática
Análisis de Automatización de Testing para sitios Web
Currao, Domingo Yamil
Agradecimientos
A la Lic. María Belén Piedrabuena, que con todos sus consejos, predisposición y empatía
impulsó a que se desarrolle esta tesina.
A la Mg. Paula Angeleri, por su constante ayuda y apoyo durante toda la carrera de
Licenciatura en Sistemas.
Al Mg. Sergio Aguilera, por su motivación y ayuda constante durante toda la carrera de
Licenciatura en Sistemas.
Al PhD. Alejandro Mitaritonna, por todos los conocimientos y dedicación en la carrera de
Licenciatura en Sistemas.
A todos mis compañeros, amigos y familia, por brindar la ayuda necesaria para realizar esta
tesina y carrera.
Agradecimientos 2
Índice de tablas 6
Índice de figuras 6
Resumen 7
Abstract 8
Introducción 9
Contexto del problema 9
Justificación 13
Organización de la tesina 14
Alcance 14
Limitaciones 16
Objetivos 17
Objetivo general 17
Objetivos específicos 17
Objetivos personales 18
Hipótesis 19
Marco teórico 19
Proceso de evaluación 19
Características 23
Característica Adaptabilidad 24
Característica Calidad de los artefactos 25
Característica Eficiencia 27
Característica Instalabilidad 28
Característica Satisfacción de los usuarios 29
Característica Usabilidad 30
Antecedentes 31
Bug 31
Debugging 32
Quality Management 33
Estado del arte 34
Desarrollo de la tesina 34
Java y Selenium 34
Introducción Herramienta 35
Java 35
Selenium 35
Maven 37
TestNG 38
Framework generado 38
ATDD 39
Característica Adaptabilidad 40
Característica Calidad de los artefactos 42
Característica Eficiencia 43
Característica Instalabilidad 44
Característica Satisfacción de los usuarios 46
Característica Usabilidad 48
Katalon 49
Introducción Herramienta 49
Groovy 52
Katalon TestOps 52
Katalon Recorder 53
Katalium 54
Framework generado 54
Característica Adaptabilidad 54
Característica Calidad de los artefactos 55
Característica Eficiencia 56
Característica Instalabilidad 57
Característica Satisfacción de los usuarios 60
Característica Usabilidad 61
Cucumber 63
Introducción Herramienta 63
Gherkin 63
Junit 64
Maven 64
Selenium 64
BDD 65
Framework generado 65
Característica Adaptabilidad 66
Característica Calidad de los artefactos 66
Característica Eficiencia 68
Característica Instalabilidad 69
Característica Satisfacción de los usuarios 71
Característica Usabilidad 72
Realizar las Pruebas 73
Tabla comparativa de métricas de herramientas 73
Analizar las Evaluaciones 77
Resultados 78
Conclusiones 79
Líneas futuras de investigación 80
Bibliografía 81
Glosario 83
Anexos 86
Proceso de evaluación: MyFEPS 86
Escala Likert 86
Tipos de metodologías de Testing 87
Testing Relámpago 88
CI/CD 89
Page Object Model (Pattern) 89
ISTQB 89
Test Management Tools 90
XPath 91
Código de las herramientas 93
Índice de tablas
Índice de figuras
Resumen
La tesina desarrollada consta del análisis de la automatización del testing aplicado a sitios
Web, otorgando conclusiones que mencionan por qué se debe utilizar en las empresas de software
de hoy en día, por qué es importante realizar testing automatizado y cómo debemos automatizar y
probar nuestros sistemas Web.
Se realizó en dicha tesina la evaluación de tres (3) opciones de herramientas de testing
automatizado. El primero Java y Selenium (herramienta 1.0), el segundo Katalon (herramienta 2.0) y
el tercero Cucumber (herramienta 3.0), utilizando de referencia la Arquitectura MyFEPS que permitió
obtener conclusiones no sólo de la evaluación realizada sino de la importancia del Testing
Automatizado.
Se investigaron varias herramientas (o frameworks) que se utilizan en las empresas de hoy
en día1 para automatizar las pruebas manuales de los casos de pruebas de sitios Web.
En las evaluación realizadas se aplicaron métricas tomando como referencia la arquitectura
elegida y se ponderaron las características evaluadas de las herramientas para obtener resultados
sobre la importancia del testing automatizado.
Finalmente con los resultados obtenidos de la evaluación y junto a la investigación realizada
del testing automatizado, se elaboraron conclusiones finales que dieron espacio a líneas futuras de
investigación.
Por otro lado se expusieron fundamentos propios y también obtenidos de la Arquitectura
MyFEPS que indican por qué se debe utilizar la automatización del testing en las empresas.
Abstract
This final work consists of the analysis of the automation of testing applied to websites, giving
conclusions that mention why it should be used in today's software companies, why it is important to
make automated testing and how we should automate and test our web systems.
In this work, the evaluation of three (3) options of automated testing tools was developed. The
first Java and Selenium (Framework 1.0), the second Katalon (Framework 2.0) and the third
Cucumber (Framework 3.0) using references of MyFEPS Architecture, which allowed conclusions to
be drawn not only from the evaluation developed, but also from the importance of Automated Testing.
A lot of tools (or frameworks) are used in the businesses of today. In this evaluation, metrics
of the chosen architecture were applied and the evaluated characteristics of the tool were weighted to
obtain results on the importance of automated testing.
Finally, with the results obtained from the evaluation and together with the research carried
out on automated testing, final conclusions were drawn up that gave space to future lines of research.
Also, fundamentals were exposed and also obtained from MyFEPS Architecture that indicate why
testing automation should be used in companies.
1
Se comenzó el desarrollo de esta tesina en el mes de junio de 2019.
Introducción
2
The Software Report - Recuperado el 19 de abril de 2021
https://www.thesoftwarereport.com/the-top-100
CESSI - Cámara de la industria Argentina del Software - Recuperado el 19 de abril de 2021
https://www.cessi.org.ar/empresas_argentinas
3
Telam - Recuperado el 24 de mayo de 2019
http://www.telam.com.ar/notas/201905
4
Mercurial - The Definitive Guide - Recuperado el 26 de junio de 2019
http://hgbook.red-bean.com/read/how-did-we-get-here.html
Figura 1: Se muestra gráficamente las ventajas de automation comparadas con tareas manuales 5
Utilizando sólamente el testing manual tampoco ayuda cuando no hay una buena gestión en
las empresas que deberían focalizar la calidad de sus productos en vez de las subidas a producción.
La gestión debe priorizar la calidad de los sistemas frente a las promesas de funcionalidades que se
comprometen con los clientes y stakeholders, si esto no se realiza así, se incurrirá en errores o fallas
del sistema que impactarán directamente al usuario o cliente.
Aprovechando la automatización de las pruebas, para que en menos tiempo se puedan
probar más cosas, se pueden entregar funcionalidades del sistema a producción, satisfacer al cliente
en menor tiempo y con una cobertura de calidad aceptable.
De ahí surgen las pruebas automatizadas, que tienden a reemplazar gran parte de las
pruebas que se realizan de forma manual. Esto se podría también pensar como la automatización de
las tareas repetitivas, que en este caso, son las pruebas manuales.
Este reemplazo de las pruebas manuales por las automatizadas tiende a cubrir, al principio
del pasaje, un porcentaje chico de coverage o cobertura de pruebas, pero lo ideal es que el mismo
crezca cada vez más, lo que le dará robustez a las pruebas de regresión que se realicen.
El coverage6 indica cuál es el porcentaje de pruebas que tiene un proyecto. Las mismas
pueden ser automatizadas o manuales. Es importante tener separado esto en secciones para poder
realizar un seguimiento mayor de cuantas pruebas son manuales, cuantas automatizadas, cuantas
5
Recuperado el 11 de mayo del 2022 -
https://www.professionalqa.com/manual-testing-vs-automation-testing
6
Recuperado el 25 de enero del 2022 -
https://www.guru99.com/test-coverage-in-software-testing.html
de un tipo de pruebas y cuantas de otros tipos. (Ver en el anexo de esta tesina Test Management
Tools).
Lo importante de la cobertura de pruebas es que al necesitar probar nuevamente el producto
(un sistema web, cualquier tipo de aplicación o software) que tenemos cubierto, sólo tenemos que
ejecutar esos casos de prueba nuevamente para aprobar o no la salida a producción del mismo,
teniendo en cuenta si el porcentaje de cobertura es igual al porcentaje de aprobación de la ejecución
realizada.
La herramienta que más se utilizan hoy en día para realizar la automatización de sitios Web
es Selenium7 (con el lenguaje de programación Java, por ejemplo). Selenium posee una de las
comunidades de desarrolladores más grandes en internet, lo que permite a los programadores
obtener soporte de forma rápida al necesitar resolver inconvenientes en el desarrollo8.
Durante mis años de experiencia en el área de QA he insistido e impulsado el uso de Java y
Selenium para todo tipo de pruebas en desarrollos Web. Si bien hay muchas otras herramientas
(tools9) que compiten (y conviven) con Java y Selenium, no tienen la misma comodidad para trabajar
con ellas, no tienen la misma comunidad extensa, escalabilidad, entre otras cosas que mencionamos
en esta tesina.
De todas formas, uno como líder de un área de QA siempre tiene que plantear la idea de
cómo quiere que el área crezca y se desarrolle, pero por otro lado, y quizás esto sea hasta más
importante, debe escuchar la opinión de los técnicos que trabajan con él o para él, ya que un líder de
QA suele estar enfocado en la gestión y pierde el foco de las tecnologías de automation que salen al
mercado y mejoran cada vez más las automatizaciones y la calidad de lo sistemas que prueban.
7
Testingbaires - Recuperado el 24 de mayo de 2019 https://testingbaires.com/2017
8
Seleniumhq - Recuperado el 26 de junio de 2019- https://www.Seleniumhq.org/support/
9
Tools de testing - Recuperado el 25 de junio de 2019 -
https://www.guru99.com/automated-testing-tools.html
10
Sitio Web oficial de HP QTP - Recuperado el 25 de junio de 2019 -https://www.microfocus.com/
● Katalon12, que también permitiendo el desarrollo de objetos permite realizar los casos de
prueba de un sitio Web a testear. Tiene una versión gratuita para principiantes o proyectos
propios y una versión paga para organizaciones. Esta herramienta es una de las evaluadas
para la obtención de conclusiones en esta tesina.
● Cucumber13, que cada vez su puesta en escena es más fuerte14, es una herramienta que
permite el desarrollo basado en el comportamiento, donde con un lenguaje natural nos
permite acercarnos a lo que quiere el cliente y luego programarlo para realizar nuestras
pruebas automatizadas. En esta tesina utilizamos esta herramienta a modo demostrativo de
cómo se utiliza.
● Webdriver.io15, que utilizando la simpleza para programar de Javascript permite desarrollar
pruebas para Web como para aplicaciones mobile. Esta herramienta es un framework que se
utiliza junto a Node.js.
● Cypress16, que como se define en su propia página web, es un framework que es rápido ya
que utiliza Javascript y permite probar todo lo que se ejecuta en un navegador o browser.
Este framework tiene su versión gratuita o paga según cantidad de usuarios, entre otras
cosas.
11
Imagen obtenida del sitio oficial - Recuperado el 11 de mayo de 2022 -
https://www.microfocus.com/en-us/products/uft-one
12
Sitio Web oficial de Katalon - Recuperado el 25 de julio de 2019 - https://www.katalon.com/
13
Sitio Web oficial de Cucumber- Recuperado el 25 de julio de 2019 - https://cucumber.io/
14
Recuperado el 25 de julio de 2019 - Conclusión en base a la experiencia que se tiene trabajando
en esto y desde el sitio: https://www.guru99.com/automated-testing-tools.html
15
Sitio Web oficial de Webdriver.io - Recuperado el 16 de mayo de 2022 - https://webdriver.io/
16
Sitio Web oficial de Cypress- Recuperado el 25 de julio de 2019 - https://www.cypress.io/
Por último, las compañías de hoy en día tienen que analizar cuál de todas las soluciones
existentes en el mercado les permiten resolver la automatización de las pruebas manuales que
tienen implementadas en su compañía para así mejorar la calidad de los sitios Web desarrollados.
Esto deben realizarlo en conjunto con su equipo ya que ellos son los que van a utilizar las
herramientas y son los que tienen que tener el expertis de las tools para utilizarlas de la forma más
eficiente posible.
Justificación
Hoy en día, y cada vez más, las empresas necesitan implementar herramientas de testing
automatizado18 para garantizar la cobertura de las pruebas en sus proyectos.
Cuando una empresa, que posee un servicio web, crece, también lo hace dicho servicio web
mencionado. Cuando esto pasa, al ser esta web un sistema que comienza a escalar, empieza a no
17
Sitio oficial - Recuperado el 25 de julio de 2019 - https://www.cypress.io/features
18
Computing - Recuperado el 24 de mayo de 2019 - http://www.computing.es/analytics/informes
ser viable tener casos de prueba que se ejecutan de forma manual debido al tiempo y costo que esto
lleva.
Se propuso a través de esta tesina realizar investigaciones, análisis, evaluaciones y
proporcionar conclusiones para que todo este trabajo junto pueda ser utilizado como un documento
que le sirva a todas las empresas (tengan un sistema web o no) y también a los analistas de calidad
(QA, QC, Testers), Desarrolladores, PM’s, entre otros interesados.
Organización de la tesina
Alcance
1. Adaptabilidad
2. Calidad de los artefactos
3. Eficiencia
4. Instalabilidad
5. Satisfacción de los usuarios
6. Usabilidad
Limitaciones
● Las Test Suites desarrolladas son en las herramientas Java y Selenium, Katalon y Cucumber,
no se realizaron casos de prueba o test suites en otras herramientas mencionadas.
● No se desarrollaron todos los casos de prueba que testean a todo el sitio Web propuesto a
modo de ejemplo, sino un conjunto de casos de prueba de los atributos a probar en la
evaluación a realizar con los conceptos de MyFEPS.
● Los casos de prueba y test suites fueron desarrollados en local, se ejecutan en local para las
Objetivos
Objetivo general
Objetivos específicos
● Evaluación de las herramientas 1.0, 2.0 y 3.0 mediante los conceptos de la metodología
MyFEPS.
● Utilización de algunos de los procesos del framework MyFEPS como guía para esta
evaluación a realizar.
● Realización de tres (3) Test Suites (colección de casos de pruebas automatizados) en las
herramientas mencionadas apuntando al sitio Web de prueba elegido.
● Ponderación de las herramientas en base a los puntos (características elegidas) a evaluar.
● Obtención de las conclusiones de la evaluación a desarrollar.
● Exponer ideas propias frente a las conclusiones obtenidas, y frente a estas, permitir la
utilización de la herramienta elegida para uso de empresas u otros analistas de calidad.
● Impulsar el automation en todas las empresas tengan un sistema web a probar o no, trabajen
en sistemas o no. (Automatizar los procesos o sistemas de las empresas considero que es el
futuro de todas las empresas).
Objetivos personales
19
Sito oficial - Recuperado el 11 de mayo de 2022 - https://www.linkedin.com
Hipótesis
Se propone como hipótesis de esta tesina demostrar que el testing automatizado es una
práctica imprescindible para las empresas de hoy en día. Para demostrar esto, se realizaron
evaluaciones de tres herramientas mencionadas para otorgar la conclusión sobre una de ellas como
buena práctica para que las empresas tengan como referencia una herramienta a utilizar para la
automatización de sitios Web.
La investigación realizada en esta tesina demuestra mediante su contenido y los ejemplos
desarrollados en las herramientas de testing automatizado que se puede aplicar lo mencionado en la
misma en las empresas de hoy en día.
Marco teórico
Proceso de evaluación
En esta tesina se evaluaron tres herramientas utilizando el marco de trabajo MyFEPS como
guía. Se utilizó para la evaluación de las herramientas el proceso ágil de evaluación MyFEPS (en la
sección Bibliografía se mencionan los documentos utilizados de MyFEPS).
Este proceso ágil se compone de las etapas definidas en la siguiente tabla y que son
compatibles con la norma ISO/IEC 25040.20
20
Sitio oficial ISO/IEC 25040- Recuperado el 06 de julio de 2019 -
https://iso25000.com/index.php/normas-iso-25000/iso-25040
21
El id es el indicador de la actividad a realizar en la documentación de MyFEPS. Para mayor
información ir a la sección de Bibliografía de esta tesina
22
SDET - Recuperado el 25 de enero de 2022 - https://www.linkedin.com/pulse/que-es-un-sdet
23
QSAT - MyFEPS - Recuperado el 06 de julio de 2019 - Sitio oficial:
https://sites.google.com/a/comunidad.ub.edu.ar/myfeps/qsat-1
24
Documento MyFEPS ágil. Para mayor información ir a la sección de Bibliografía de esta tesina
25
Documento MyFEPS ágil. Para mayor información ir a la sección de Bibliografía de esta tesina
30 Realizar las Pruebas Se pidió a los stakeholders que ejecuten los casos de
prueba de la evaluación (ejecución de las características)
guiados por el Evaluador
26
Google Sheets - Recuperado el 06 de agosto de 2019 - Sitio oficial
https://www.google.com/sheets/about/
Se omitió en esta tabla las precedencias de cada una de las actividades a realizar, pero las
mismas se detallan en la documentación de MyFEPS definida en la Bibliografía de esta tesina.
Características
27
Excel - Recuperado el 06 de agosto de 2019 - Sitio oficial
https://www.microsoft.com/es-ar/microsoft-365/excel
Se mencionan a continuación las características que se utilizaron como referencia para medir
las herramientas y llegar a las conclusiones indicadas en esta tesina:
Característica Adaptabilidad
1. Adaptabilidad a diferentes entornos, que posee los siguientes atributos utilizados para la
medición en esta tesina:
a. Esfuerzo en horas hombre para la adaptación de la herramienta elegida en los
diferentes entornos a utilizar (en este caso la computadora a utilizar)
b. Tiempo necesario para la adaptación del framework a instalar en el entorno o
computadora a utilizar
c. Valor monetario que se necesita para implementar la herramienta (o framework de
Nos habla de la calidad que poseen cada uno de los componentes utilizados en nuestro
framework de automation. En esta tesina evaluamos algunos atributos como la cohesividad,
acoplamiento, trazabilidad, modularidad, reusabilidad, existencia de documentación estándar y
calidad de código fuente.
Utilizamos del framework MyFEPS las siguientes subcategorías de la característica Calidad
de los artefactos:
1. Cohesividad, es el grado de unión entre los componentes del framework a analizar. Indica
qué tan dependientes son los componentes entre sí.
El marco de trabajo MyFEPS menciona que se debe ejecutar un Parser para analizar el
grado de cohesividad de un software.
28
Figura 5: Alta cohesión y bajo acoplamiento
28
Alta cohesión y el bajo acoplamiento - Recuperado el 07 de agosto de 2019 -
https://blog.koalite.com/2015/02/cohesion-y-acoplamiento/
Característica Eficiencia
Nos habla de la cantidad de recursos mínimos que necesitamos para permitir realizar
29
Sitio oficial de Phoneblocks - Muestra la modularidad - Recuperado el 11 de mayo de 2022 -
https://www.onearmy.earth/project/phonebloks
nuestras pruebas automatizadas con éxito. Esto quiere decir que desarrollaremos nuestras pruebas
de la forma más rápida y con la menor cantidad de recursos disponibles.
Utilizamos del framework MyFEPS las siguientes subcategorías de la característica
Eficiencia:
Característica Instalabilidad
Instalabilidad:
Nos indica la facilidad de uso de esta herramienta que en este caso son los programadores
de pruebas automatizadas.
Utilizamos del framework MyFEPS las siguientes subcategorías de la característica
satisfacción de los usuarios:
1. Confort físico, nos indica el grado de comodidad que cada stakeholder tiene al utilizar la
herramienta de automation. O sea se evalúa el confort del uso de la herramienta de
automation.
3. En la comprensión de las salidas del sistema, nos indica el grado de comprensión de las
salidas de la herramienta, o sea el output que la misma nos otorga para demostrar que una
prueba fue ejecutada de forma correcta, incorrecta, entre otra información de salida al
usuario de la herramienta.
realizan en el sistema por parte del desarrollador de las pruebas de automation. Se podría
indicar como el grado de conocimiento de los procesos de la herramienta que tienen los
desarrolladores de la misma.
Figura 7: UI vs UX 30
Característica Usabilidad
Nos indica la facilidad para que un usuario pueda desempeñar las pruebas automatizadas de
una forma eficiente.
30
UX vs UI - Recuperado el 11 de mayo de 2022 -
https://openclassrooms.com/en/courses/4556206-design-the-visual-side
6. Efectividad del Help, es el grado de ayuda que posee la herramienta para ayudar al usuario
en toda la usabilidad de la herramienta de automatización
Antecedentes
Bug
Comenzaremos este apartado citando una de las frases más conocidas en el área de
pruebas de software:
“Las pruebas de software son el proceso de ejecutar un programa con la intención de
Debugging
El término debugging también está relacionado al término bug, pero en este caso se refiere
al arreglo de este error encontrado. Este término si bien fue anterior al mencionado refiere ya no a
31
Recuperado el 25 de enero de 2022 01:42 pm
https://sites.google.com/a/comunidad.ub.edu.ar/myfeps/introduccion
32
Recuperado el 25 de enero de 2022 01:41 pm
https://www.nationalgeographic.org/thisday/sep9/worlds-first-computer-bug/
algo de sistemas, pero si está relacionado a ingeniería. El mismo fue escrito en un periódico llamado
Journal of the Royal Aeronautical Society de 1945. 33 34
Figura 9: Tomada de la herramienta 3.0 donde se visualiza la posibilidad de realizar un debug del
test case automatizado. También se visualiza en la línea de código 27 un breakpoint (se explica la
definición en el Anexo de la tesina).
Quality Management
La gestión de la calidad se remonta a los años 1924 donde William Edwards Deming,
considerado el padre del Quality Management, propuso aplicar a las empresas de producción
armamentista el método propuesto por Walter Shewhart sobre el control de calidad. 35
Esto ocurrió durante la segunda guerra mundial, lo que ocasionó que las empresas que
utilizaban estos métodos estadísticos en los procesos mejoren su eficiencia sin sacrificar la seguridad
de los empleados o de los productos.
William Edwards Deming es considerado el padre de la gestión de calidad y existe un premio
en su nombre. Este premio es uno de los más importantes referido a la calidad que se le puede
33
Recuperado el 25 de enero de 2022 01:21 pm http://www.worldwidewords.org/qa/qa-bug1.htm
34
Sitio web oficial de Royal Aeronautical Society https://www.aerosociety.com/
35
Recuperado el 25 de enero de 2022 - https://www.etq.com/blog/the-history-of-quality-management/
otorgar a las empresas.36 Se empezó a otorgar en Japón gracias a la ayuda que Deming ofreció al
país y a sus empresas luego de finalizada la segunda guerra mundial.
También, cuando hablamos de la gestión de la calidad de sistemas, tenemos que mencionar
la ISO 9000 que es la familia de estándares que ayuda a las organizaciones a encontrar las
necesidades de los clientes y la de los interesados. La primera publicación de la ISO 9000 fue en
1987 por la ISO (International Organization for Standardization).
Desarrollo de la tesina
Java y Selenium
36
Recuperado el 25 de enero de 2022 - https://hmong.es/wiki/Deming_Prize
Introducción Herramienta
Java
La plataforma Java es una tecnología que nos permite ejecutar aplicaciones en múltiples
sistemas operativos. Estas aplicaciones se desarrollan en el lenguaje de programación Java que
posee una máquina virtual que nos permite ejecutar un programa realizado en este lenguaje. Existen
también un conjunto de herramientas conocidas como JDK (Java Development Kit) para el desarrollo
de estas aplicaciones en el lenguaje Java.37
Selenium
Selenium IDE
Esta herramienta permite, mediante una interfaz gráfica o IDE, automatizar de forma sencilla,
grabando mediante el navegador Firefox, las acciones que se realizan a una página web. La
herramienta Selenium IDE posee un lenguaje llamado Selenese38, que realiza acciones sobre los
37
¿Qué es Java? - Recuperado el 26 de enero de 2022 - Sitio oficial de Java
https://www.java.com/es/about/whatis_java.jsp también se adjunta la documentación de Oracle
(dueño de Java) https://www.oracle.com/java/technologies/javase-documentation.html
38
¿Qué es Selenese? - Recuperado el 26 de enero de 2022 -
https://www.tutorialspoint.com/what-is-selenese
objetos del DOM39 (Document object model o en español Modelo de objetos del documento) de un
sitio web para poder interactuar con los mismos.
Si bien el Selenium IDE es una herramienta muy fácil de usar, ya que graba las acciones que
se realizan en un sitio web, cuando se necesita modificar el código que genera, no es tan robusto
como otro de los componentes de Selenium llamado Webdriver que mencionaremos a continuación.
Figura 10: Se muestra el uso de Selenium IDE con el sitio utilizado para las pruebas de la tesina
Selenium WebDriver
39
Glosario DOM - Recuperado el 26 de enero de 2022 -
https://developer.mozilla.org/es/docs/Glossary/DOM
Figura 11: Se visualizan a modo ejemplo los 3 componentes para conectar los casos de prueba
(tests en el lenguaje que se desee), selenium (con web driver) y los navegadores (o drivers utilizados
en el framework a crear).40
Selenium Grid
Maven
Esta herramienta, también a utilizar en la herramienta 1.0, nos permitirá instalar las
dependencias necesarias para este framework creado. Maven41 permite mediante el lenguaje de
marcas extensibles XML42 instalar y ordenar en Java otros componentes necesarios para la creación
de nuestro framework, como pueden ser TestNG (explicado a continuación) o los drivers de los
navegadores como Chrome o Firefox que utilizaremos.
40
Recuperado el 05 de abril de 2022 -
https://www.dataart.com.ar/news/como-utilizar-selenium-webdriver
41
Sitio oficial de Maven - Recuperado el 05 de abril de 2022 - https://maven.apache.org/
42
Recuperado el 25 de enero del 2022 -
https://developer.mozilla.org/es/docs/Web/XML/XML_introduction
Lo que se realizó con Maven es poder incorporar en el XML (o archivo pom.xml) las
versiones que necesitamos y que se puedan descargar esas dependencias ya mencionadas en el
archivo XML.
Los paquetes disponibles a descargar por Maven se encuentran en el sitio oficial de esta
herramienta.43
Esta herramienta de gestión de dependencias pertenece a la Apache Software Foundation44
y es gratuita. Está basada también en el concepto (patrón) Project Object Model.45
TestNG
Framework generado
Si bien ya hemos definido las herramientas o componentes por separado, en este apartado
hablaremos del framework realizado uniendo estas herramientas.
Utilizando un entorno de desarrollo como Eclipse,48 construimos en esta tesina un framework
(herramienta 1.0) que puede realizar pruebas automatizadas de un sistema Web y que también, en
un futuro, ese mismo framework al ser escalable pueda crecer y crear pruebas automatizadas para
Apis.
43
Repositorio del sitio oficial de Maven - Recuperado el 25 de enero del 2022 -
https://mvnrepository.com/
44
Sitio oficial de Apache - Recuperado el 25 de enero del 2022 - https://www.apache.org/
45
Recuperado el 25 de enero del 2022 - https://www.guru99.com/page-object-model
46
Sitio oficial de TestNG - Recuperado el 25 de enero del 2022 - https://testng.org/doc/
47
Sitio oficial de Junit - Recuperado el 25 de enero del 2022 - https://junit.org/junit5/
48
Sitio oficial de Eclipse (IDE de desarrollo) - Recuperado el 25 de enero del 2022 -
https://www.eclipse.org/downloads/
Con Java y Selenium utilizaremos un patrón, que también se explica en el Anexo de esta
tesina, llamado Page Object Model, que es muy utilizado en pruebas de automation para crear un
repositorio de objetos Web con los cuales se puede interactuar para la creación de casos de prueba.
La creación de este framework (herramienta 1.0) es completamente de código abierto y
gratuita, la cual llevó la creación de clases y funciones necesarias para la realización de Test Suites
(o conjuntos de casos de pruebas agrupados con un fin). También este framework nos permite la
ejecución de los casos de prueba por separado o en conjunto (mediante Test Suites).
Se crearon ambientes (o también llamados perfiles) que nos permitieron guardar datos
específicos de un entorno. Para explicar un poco más esto, sería tener distintos ambientes de
pruebas por ejemplo uno de Test y uno de Producción, los cuales tendrán urls distintas que simularán
cómo se crean estos perfiles para las empresas que necesiten utilizarlos. Cambiando estos perfiles
uno puede apuntar un Test Suite a la url o ambiente de producción o a un ambiente de pruebas, sin
tener que modificar los casos de prueba.
ATDD
49
Recuperado el 30 de enero de 2022 - https://www.agilealliance.org/glossary/atdd/
Figura 12: Se muestra en la imagen los pasos a realizar con ATDD. Discutir las historias a realizar,
Destilar las pruebas a realizar en un formato compatible, Desarrollar las pruebas, Demo de las
pruebas desarrolladas. 50 51
Característica Adaptabilidad
50
Recuperado el 05 de abril de 2022 -
https://josepablosarco.wordpress.com/2015/03/31/tdd-vs-bdd-vs-atdd/
51
Recuperado el 11 de mayo de 2022 -
https://www.digite.com/es/agile/el-desarrollo-orientado-a-pruebas
Todas las herramientas de desarrollo de Java pueden ser descargadas en cualquiera de los
sistemas operativos mencionados.52
Selenium también es una herramienta multiplataforma que se puede utilizar en todos los
sistemas operativos mencionados que la instalaremos en nuestro proyecto a través de Maven. 53
TestNG es una característica que se le aplica al proyecto de Java para ser utilizado como un
proyecto de pruebas, también es multiplataforma y su instalación al proyecto la haremos a través de
Maven.54
Maven también es multiplataforma y nosotros lo instalaremos a través del Eclipse y luego
crearemos un proyecto en Java de tipo Maven. 55
El esfuerzo en horas hombre para la adaptación de la herramienta depende mucho del
seniority del desarrollador de pruebas, pero hay que considerar que son todas las herramientas
mencionadas utilizadas por una comunidad muy grande en internet y que puede buscarse y
encontrarse mucha documentación fácilmente por internet.
Para la instalación de la herramienta 1.0 no es necesario crear una cuenta personal con un
email válido, como si hay que hacerlo con Katalon.
52
Sitio oficial de descarga de Java -
https://www.oracle.com/java/technologies/downloads/#jdk17-linux
53
Sitio oficial de descarga Selenium - https://www.selenium.dev/downloads/
54
Sitio oficial de descarga TestNG - https://testng.org/doc/download.html
55
Sitio oficial de descarga Maven - https://maven.apache.org/download.cgi
Adaptabilidad a diferentes idiomas: La herramienta 1.0 al ser desarrollada con tools que
son multiplataforma, con una comunidad muy amplia, tools gratuitas y de software libre, permiten
customizar la herramienta 1.0 creada mediante el idioma necesario.
La configuración del idioma a utilizar por ejemplo del Eclipse se puede setear en el mismo
IDE de desarrollo.
El idioma del código desarrollado ya dependerá del definido por el equipo de pruebas ya que
por lo general, y para esta tesina, se desarrolla en Java y TestNG en el idioma inglés, tanto para los
comentarios, para el código de pruebas o para los casos de prueba.
El esfuerzo en horas hombre para la implementación del idioma en la herramienta es bajo ya
que para esta tesina se considera el inglés como el idioma de la herramienta 1.0.
La calidad de los artefactos que componen la herramienta 1.0 está dada por las versiones
liberadas de cada uno de sus componentes (Java, TestNG, Maven, Selenium), los años de
comunidad en internet que poseen las herramientas y otras subcaracterísticas que se mencionan a
continuación:
Cohesividad: Sobre este punto, cada herramienta utilizada es independiente con relación al
resto y cada herramienta tiene su forma de configurarla. En el caso que no queramos utilizar una de
ellas, se puede prescindir de la misma y no utilizarla. Frente a esto se puede modificar la herramienta
1.0 para que sea compatible y para que todo funcione por esta falta de una de las herramientas. Esta
subcaracterística está relacionada con la de Acoplamiento, y dice que un bajo acoplamiento viene
dado por una alta cohesividad, o sea, que los componentes de nuestra herramienta 1.0 sean lo más
independiente de los otros y que no sean dependientes entre sí.
Acoplamiento: La herramienta 1.0 es una tool que posee un bajo acoplamiento de sus
herramientas. Se puede prescindir de alguna de ellas y reemplazarla por otra. Por ejemplo en esta
tesina utilizamos para la herramienta 1.0 TestNG pero podría ser reemplazado por JUnit, esto quiere
decir que posee un bajo acoplamiento.56
56
Recuperado el 06 de enero de 2022 - https://techandsolve.com/alta-cohesion-y-bajo-acoplamiento
Modularidad: La división de la herramienta 1.0 es alta, esto quiere decir que cada
herramienta es independiente con relación a las otras. Luego de desarrollar esta herramienta 1.0, la
misma se puede desarmar y cambiar sus componentes, por ejemplo reemplazar TestNG por JUnit,
realizar las conexiones correspondientes y continuar automatizando.
Calidad de código fuente: La calidad del código de la herramienta 1.0 es alta ya que, por
ejemplo utilizando el patrón POM, no se repite código y sólo con llamar ciertas funciones de las
clases se estarían aprovechando las funciones ya creadas en el framework.
Característica Eficiencia
para el desarrollo de esta herramienta son un una computadora con cualquier sistema operativo
(Linux, macOS o Windows), una persona que conozca de desarrollo o de pruebas automatizadas,
conocimiento de cómo y qué buscar para comenzar a desarrollar la herramienta.
Eficiencia en la utilización de otro hardware: En esta herramienta 1.0 se utilizó una Asus
Rog Zephyrus G1457 y no hubo otro hardware utilizado. Las pruebas ejecutadas no requieren de otro
hardware externo a utilizar y se ejecutaron de forma eficiente en la computadora mencionada.
Característica Instalabilidad
Primera instalación: Para realizar la instalación de la herramienta 1.0 hay que comenzar
57
Sitio web oficial - Recuperado el 12 de mayo 2022 -
https://rog.asus.com/ar/laptops/rog-zephyrus/rog-zephyrus-g14-series/
con la descarga e instalación de un entorno de desarrollo (IDE). En esta tesina utilizaremos Eclipse.
Luego tenemos dos opciones en base al estado del proyecto de automation:
1. Si el proyecto de casos de prueba automatizados ya existe, o sea ya fue creado en la
computadora de otro programador, habría que descargar el código desarrollado (o hacer un
pull del repositorio a través de una tecnología llamada git)58 y abrir la carpeta del proyecto a
través del Eclipse.
2. Si el proyecto de casos de prueba no existe, habrá que crearlo a través de la sección en el
Eclipse File->New->Other->Maven Project. Luego hay que instalar las dependencias a utilizar
con Maven, como es el caso de TestNG y los drivers del Selenium. Los drivers de Selenium
son los que nos permiten, al ejecutar pruebas automatizadas, levantar una instancia de un
Navegador (Firefox o Chrome por ejemplo) e interactuar con él y con el sitio web a testear.
Este punto a evaluar se realizó a través de encuestas a los tres perfiles de automations
mencionados en la sección de Marco teórico->Proceso de evaluación, por ende la primera instalación
del proyecto depende del expertise del automation, pero cabe destacar que que se necesita
experiencia en programación para realizar esto.
Si bien la comunidad de Java, Selenium, TestNG y Maven es muy amplia, se requiere de
conocimientos como desarrollador para la primera instalación.
58
Git - Sitio oficial - Recuperado el 12 de mayo 2022 -https://git-scm.com/
59
Se obtuvo la imagen del IDE de las herramientas 3.0 y 1.0
Figura 14: Se muestra captura del archivo pom.xml que utiliza la herramientas 1.0
Dentro de la sección de Help también el IDE Eclipse posee una sección de Eclipse
Marketplace y de Check for Update que permite mantener actualizado el IDE Eclipse.
Para el desarrollo de la herramienta 1.0 se necesita de recursos que tengan un expertise ssr
o más. Para el desarrollo de sus pruebas no es necesario que el seniority sea elevado, siempre y
cuando se tenga a quien consultar o el junior pueda consultar en la comunidad de internet que es
amplia. La facilidad de uso para la herramienta 1.0 es de nivel medio con respecto al resto de las
herramientas.
Confort físico: Tanto Eclipse, Java o TestNG son las herramientas de automation más
utilizadas para la automatización de sitios Web. El grado de comodidad para los programadores de
pruebas es alto.
Figura 15: Se muestra un caso de prueba de la herramienta 1.0 (puede leerse en la imagen la
mención a TestNG).
En la comprensión de las salidas del sistema: la herramienta 1.0 utiliza, a través del
Eclipse, la sección de output Problems o Console que proveen los resultados, errores o información
necesaria para comprender los problemas o resultados de la ejecución de las pruebas
automatizadas.
En la estética: Al utilizar Eclipse, que es uno de los entornos de desarrollo más utilizados
para las pruebas, la herramienta 1.0 provee una interfaz que se actualiza con las versiones de
Eclipse que se van liberando.
En el conocimiento del sistema: Ya que la herramienta 1.0 es desarrollada desde cero por
los desarrolladores de pruebas, el conocimiento del sistema tiene que ser total. Si bien los
automation juniors pueden no necesitar conocer todas las integraciones de la herramienta 1.0,
pueden hacerlo ya que el código de la herramienta 1.0 es visible por todo desarrollador de pruebas
que lo utilice (o sea no tiene funciones propietarias como si Katalon).
Característica Usabilidad
La herramienta 1.0 posee una facilidad alta para desempeñar las pruebas automatizadas de
una forma eficiente. Las tools como Java, TestNG, Selenium, Eclipse poseen mucha comunidad y
permiten una versatilidad y escalabilidad que los programadores de pruebas necesitan, tanto para
pruebas de sistemas web como de otro tipo.
En el aprendizaje: Si bien para un seniority junior no es tan fácil su aprendizaje ya que tiene
que poseer varios conceptos de programación, para un ssr o sr, con toda la comunidad que existe en
el internet, suele ser un aprendizaje rápido el que suele ocurrir. Para los juniors mientras estén
guiados por líderes de automation o líderes técnicos, será cada vez más fácil su aprendizaje.
adecuarse a los shortcuts que el programador necesite para ejecutar casos de prueba, regresiones y
realizar otras funciones que le sean necesarias.
En el acceso a las funciones: La velocidad del acceso a las funciones de la herramienta 1.0
es rápida, no se requiere de mucho software o hardware para su uso. Al ser una herramienta hecha
desde cero se la puede customizar para que sea lo más eficiente posible.
En lo legal: El grado de legalidad de la herramienta 1.0 es alto ya que todas las tools son de
licencia libre y no hay componentes propietarios.
Efectividad del Help: La herramienta 1.0 posee mediante el Eclipse la sección de ayuda,
también la comunidad en internet de todas las tools que componen esta herramienta proveen la
ayuda necesaria para el desarrollo y mantenimiento de la misma.
Figura 16: Se muestra la sección del Eclipse “Help” que utiliza tanto la herramienta 1.0 como la 3.0.
Katalon
Introducción Herramienta
Figura 17: Se muestra una captura de la herramienta 2.0 en la sección de Test Suite con 3 casos de
prueba de ejemplo.
Katalon Studio también utiliza el patrón Page Object Model (POM) pero a diferencia de Java
y Selenium ya viene este patrón integrado en la misma aplicación ejecutable que nos provee Katalon.
60
Sitio oficial de Katalon - Recuperado el 12 de mayo 2022 - https://www.katalon.com/
Figura 18: Se muestra un objeto (utilizando de forma interna por Katalon el patrón POM) obteniendo
el mismo mediante XPath.61
Katalon utiliza los perfiles (que en Java y Selenium los llamamos ambientes) que nos
permiten encapsular variables o por ejemplo urls específicas de ese perfil (o ambiente). Con esto
podremos apuntar una Test Suite hacia un perfil de Test o uno de Producción sin tener que modificar
los casos de prueba o los Test Suites.
Al utilizar esta herramienta no necesitamos utilizar un entorno de desarrollo ya que Katalon
provee su propio ambiente de trabajo, o sea, es una aplicación ya compilada y que mediante un
ejecutable nos permite utilizar sus componentes para nuestras pruebas automatizadas sin tener que
realizar mucha interacción con código pero sí de forma manual y configurable por cada usuario.
Katalon Studio soporta tanto Selenium para la automatización Web como Appium62 para la
automatización de pruebas de Mobile. Para las pruebas de Apis posee un framework propio
incorporado en la misma aplicación de Katalon.
Lo que nos permite Katalon es introducir a los interesados, que pueden ser QA’s manuales,
analistas funcionales, entre otros, al mundo de las pruebas automatizadas. Permite que personas no
entrenadas en la programación puedan realizar pruebas automatizadas mediante su fácil interfaz
manual, que por detrás posee código en el lenguaje Groovy y Java que se puede modificar para
realizar pruebas automatizadas más robustas que las desarrolladas en Katalon Studio de forma
manual.
61
En este caso se obtiene un objeto en el DOM que contiene el texto “Servicios”
62
Sitio oficial de Appium - Recuperado el 12 de mayo de 2022 - https://appium.io/
En las empresas, Katalon permite que los automation JR’s se introduzcan al mundo de
programación con un IDE que provee una interfaz sencilla y práctica para desarrollar los primeros
casos de prueba automatizados. Para los expertos en programación Katalon no provee del todo un
entorno cómodo de trabajo ya que un Qa automation SR preferirá desarrollar y modificar las pruebas
automatizadas como el mismo necesite sin usar la interfaz manual de Katalon que puede generar
algunas trabas cuando se necesita mayor robustez en los casos.
Groovy
La herramienta Katalon utiliza dos lenguajes para el desarrollo del código de los casos de
prueba. Por un lado tenemos a Groovy63 que es un lenguaje orientado a objetos que está basado en
Java. Groovy también tiene influencias de programación de los lenguajes Python, Smalltalk y Ruby,
lo que hace que un programador pueda utilizar ciertas sintaxis de los lenguajes mencionados y
programar lo que se necesite.
La primera versión de Groovy se desarrolló el 2 de enero de 2007 y luego fue creciendo su
comunidad. La documentación de este lenguaje se encuentra en el sitio oficial y cada vez tiene más
soporte. Lo bueno de este lenguaje, es que cuando se necesita utilizar la sintaxis de Java, que posee
mucha comunidad, se puede hacer y se puede aprovechar toda la comunidad de lo desarrollado en
Java.64
El código de Groovy se utiliza para mejorar los casos de prueba desarrollados de forma
manual en la herramienta 2.0. Esto es porque al desarrollar casos de prueba, Katalon permite dos
formas de hacerlo. Una de ellas es la forma manual y otra la forma automatizada, o sea a través de
código en Groovy en la solapa Script para aumentar la robustez de los casos desarrollados.
Katalon TestOps
Esta solución que provee Katalon, llamada Katalon TestOps,65 se utiliza para realizar la
integración continua o deploy continuo (CI/CD) ejecutando los casos de prueba automatizados
desarrollados en Katalon Studio.
63
Sitio oficial de Groovy - Recuperado el 12 de mayo 2022 - http://groovy-lang.org
64
Sitio de documentación oficial de Groovy - Recuperado el 12 de mayo 2022 -
https://groovy-lang.org/single-page-documentation.html
65
Sitio oficial de Katalon TestOps - Recuperado el 12 de mayo 2022 -
https://www.katalon.com/testops/
La herramienta ofrece gráficos de calidad e informes sobre las ejecuciones realizadas de las
pruebas. Permite configurar alertas en base a la cantidad de casos de prueba que no fueron exitosos
para que se puedan tomar acciones frente a esto.
Esta herramienta permite también integrarse con otras tools de automation y de reportes.
Mencionamos esta herramienta sólo para mencionar los conceptos de integración continua o
deploy continuo, aunque no se desarrollaron pruebas sobre Katalon TestOps.
Katalon Recorder
Esta herramienta es una extensión que permite grabar y reproducir en los navegadores
Chrome, Firefox y Edge casos de prueba para luego importar en Katalon Studio.
Katalon Studio posee también una función de grabación de casos que es más potente que
Katalon Recorder66.
Figura 29: Se muestra el recording de Katalon obteniendo un texto de la página de pruebas utilizada.
66
Sitio oficial de Katalon Recorder - Recuperado el 12 de mayo 2022 -
https://www.katalon.com/katalon-recorder-ide/
Katalium
Framework generado
Característica Adaptabilidad
67
Sitio oficial de Katalium - Recuperado el 12 de mayo 2022 -
https://www.katalon.com/resources-center/blog/katalium-introduction/
68
Estos párrafos anteriores son basados en mi experiencia trabajada con esta herramienta y como
QA - https://www.linkedin.com/in/yamil-currao/
La calidad de los artefactos que componen la herramienta 2.0 está dada por las versiones
que se ofrecen mediante el producto Katalon Studio. La primera versión de Katalon fue liberada en el
año 2015, y por ende, no posee una comunidad en internet tan amplia como la herramienta 1.0. A
continuación se explican las subcaracterísticas de la calidad de los artefactos:
Cohesividad: Sobre este punto, al ser Katalon Studio una única herramienta, su cohesividad
es baja, por ende su acoplamiento es alto. Si bien la herramienta 2.0 posee por dentro Selenium,
Java y se basa en el IDE Eclipse, no se puede desarmar la misma para utilizar algunas de estas
opciones ya que viene todo integrado en lo que otorga el producto de Katalon Studio.
Reusabilidad: Katalon utiliza el patrón Page Object Model (POM) y por ende la reutilización
de código es alta. Katalon permite desarrollar y gestionar los casos de prueba heredando por cada
uno de ellos las librerías que nos permiten interactuar con los objetos de una Web de forma
automática y sin tener que copiar código ya que lo hace de forma interna el mismo IDE de Katalon.
Calidad de código fuente: La calidad del código de la herramienta 2.0 es media ya que, por
ejemplo utilizando el patrón POM, no se repite código pero hay que adaptar lo que uno necesita
desarrollar al IDE que provee Katalon y eso no permite tanta customización como si lo hacen otras
herramientas.
Figura 19: Se muestra el lenguaje que utiliza Katalon (Groovy) con sus librerías y cómo se las llama.
Característica Eficiencia
Eficiencia en la interfaz del usuario: para realizar las pruebas en la herramienta 2.0 basta
con un seniority junior. Para el desarrollo de casos de prueba manuales en esta herramienta, sólo se
necesita conocer de QA. Pero para el desarrollo de casos de prueba automatizados con Katalon sí
se necesita de un expertise ssr o mayor.
69
Experiencia propia en macOS utilizando Katalon: No rinde tanto como en Windows.
Eficiencia en la utilización de otro hardware: En esta herramienta 2.0 se utilizó una Asus
Rog Zephyrus G1470 y no hubo otro hardware utilizado. No se requiere de otro hardware externo a
utilizar.
Característica Instalabilidad
Primera instalación: En Katalon la primer instalación es muy simple, sólo basta con ingresar
en la siguiente url:
https://www.katalon.com/
Allí se tendrá que ingresar a la sección de Start for Free e, ingresando el email de uno, se
podrá descargar, para el sistema operativo necesario, la aplicación Katalon. A continuación se
muestra la ruta donde se posee el ejecutable en el sistema operativo Windows:
70
Sitio web oficial - Recuperado el 16 de mayo 2022 -
https://rog.asus.com/ar/laptops/rog-zephyrus/rog-zephyrus-g14-series/
Figura 20: Se muestran los archivos que contiene el .zip que se descarga para la instalación de
Katalon.
Figura 21: Se muestra el acceso que se requiere en Katalon (herramienta 2.0) y que no es necesario
en las herramientas 1.0 o 3.0.
Para el uso de la herramienta 2.0 con personal que tenga un expertise junior se puede
comenzar a realizar las pruebas manuales en la herramienta Katalon. Para el desarrollo de las
pruebas automatizadas si se necesitan ya perfiles ssr o más. La facilidad de uso para la herramienta
2.0 es de nivel alto para las pruebas manuales y medio para las automatizadas.
Confort físico: La herramienta Katalon posee una interfaz cómoda para las pruebas
manuales aunque no tanto para las automatizadas. Si bien utiliza Java y Groovy para el desarrollo de
las pruebas automatizadas, la organización del código depende mucho del IDE de Katalon y hay que
utilizar sus bibliotecas o crear por separado bibliotecas propias en Java que resuelvan lo que no
resuelve Katalon. En una de las empresas en la que trabajé el uso de Katalon no fue suficiente y
hubo que crear bibliotecas de ayuda en Java para el complemento de las pruebas de automation.
En la comprensión de las salidas del sistema: la herramienta 2.0 utiliza las secciones de
output Problems o Console que proveen los resultados, errores o información necesaria. Estas
secciones son las mismas que posee Eclipse ya que Katalon está basado en esta herramienta.
En la estética: Si bien Katalon utiliza Eclipse, la interfaz que utiliza y sus versiones son
propias de Katalon. Lo ideal es mantener el código actualizado según la última versión de Katalon ya
que es una herramienta llevando a un alto acoplamiento y una baja cohesión (recordemos que la
herramienta 2.0 es una opción con todo integrado por la empresa misma y no se la puede modificar a
gusto del desarrollador).
Característica Usabilidad
La herramienta 2.0 posee una facilidad alta para el desarrollo de pruebas manuales y otro
tanto menor para el desarrollo de pruebas automatizadas. Katalon es una herramienta que ha ido
creciendo en el último tiempo y así también su comunidad. Si bien no es tan versátil como un
desarrollador pueda requerir, permite realizar pruebas de sistemas web como también de servicios,
entre otras cosas.
En la entrada manual de información: La herramienta 2.0 posee una interfaz más sencilla
para la gestión de casos de prueba, por ende, para ejecutar un caso de prueba o un conjunto de
casos la entrada de información es más baja. Katalon Studio posee relaciones de datos para poder
conectar las pruebas con bases de datos a través de consultas a las mismas y de esta forma
simplificar la entrada de información a las pruebas.
En el acceso a las funciones: La velocidad del acceso a las funciones de la herramienta 2.0
es media, al poseer por detrás un Eclipse y Java, se ralentiza el acceso a las funciones de Katalon.
Efectividad del Help: La herramienta 2.0 posee la sección de ayuda aunque es más limitada
que la que provee Eclipse. La comunidad en internet está en crecimiento pero aún le falta camino por
recorrer para mejorar.
Figura 23: Se muestra la sección “Help” de la herramienta 2.0 (Se puede ver que es menos llamativa
que la de la sección “Help” de Eclipse)
Cucumber
Introducción Herramienta
Gherkin
El lenguaje que se utiliza para el desarrollo de estos casos de prueba es Gherkin72, el mismo
permite, mediante el lenguaje natural, realizar casos de pruebas para escribir escenarios de los
comportamientos de los usuarios.
La principal idea de Cucumber y Gherkin es que todos los interesados puedan escribir los
casos de prueba que luego serán traducidos al lenguaje de programación necesario, en nuestro
caso, fueron traducidos a Java y Junit.
El foco de la herramienta 3.0 es poder desarrollar los casos de prueba como el cliente o
usuario final necesita, y no sólo desde el punto de vista de desarrolladores de pruebas.
Gherkin utiliza principalmente un archivo llamado .feature73 en el cual se deben definir los
siguientes comandos:
71
Recuperado el 02 de enero de 2022 - https://www.tecnova.cl/2021/10/06/bdd
72
Sitio oficial de Gerkin - Recuperado el 02 de enero 2022 - https://cucumber.io/docs/gherkin/
73
Recuperado el 30 de enero de 2022 - https://docs.behat.org/en/v2.5/guides/1.gherkin.html
Figura 24: Se muestra la sintaxis utilizada en la herramienta 3.0 para un caso de prueba realizado.
Junit
La herramienta JUnit74 es una tool desarrollada para realizar las pruebas unitarias por parte
de los desarrolladores.
Como ya mencionamos anteriormente TestNG, que es el framework utilizado en la
herramienta 1.0, se basó en JUnit para su desarrollo.
En esta herramienta 3.0 se utilizó JUnit para el desarrollo de pruebas a desarrollar.
Maven
Selenium
Esta herramienta 3.0 también utilizará Selenium para el desarrollo de sus pruebas.
74
Sitio oficial de JUnit - Recuperado el 12 de mayo 2022 - https://junit.org/junit5/
BDD
Figura 30: Se muestra con un ejemplo que el TDD está orientado a un comportamiento de un
usuario final más específico que BDD.
Framework generado
Característica Adaptabilidad
Adaptabilidad a diferentes entornos: La herramienta 3.0 posee todas sus tools multi
plataforma. El lenguaje Cucumber se puede instalar a través del Eclipse y puede ser implementado
en Windows, macOS y Linux.
Tanto Java, JUnit o Maven son de código abierto y son herramientas gratuitas que también
son multiplataforma.
El esfuerzo en horas hombre de la herramienta 3.0 para su instalación en diferentes entornos
es bajo ya que con el ide Eclipse y las dependencias de Maven, su instalación es muy similar y casi
la misma para todas las plataformas.
El valor monetario es nulo ya que son herramientas de uso gratuito.
La calidad de los artefactos que componen la herramienta 3.0 está dada por las versiones
liberadas de cada uno de sus componentes (Java, JUnit, Maven, Selenium y Cucumber). Esto es
similar a lo ya mencionado en la herramienta 1.0 ya que es un framework muy similar pero que
dentro posee otras tools a utilizar. Se menciona a continuación el detalle de las subcaracterísticas:
Modularidad: La división de la herramienta 3.0 es alta. Cada tool utilizada en este framework
es independiente y se puede modificar por separado sin tener que realizar cambios en todos sus
componentes.
Reusabilidad: Esta herramienta 3.0 también reutiliza sus componentes utilizando el patrón
page object model.
Calidad de código fuente: La calidad del código utilizado en esta herramienta es también
alta como en lo mencionado en la herramienta 1.0. Al no reutilizar código, ya que se utiliza el patrón
POM, se estarían aprovechando las funciones ya existentes para el desarrollo de las pruebas
automatizadas.
Figura 25: Se muestra el código fuente en Java de la herramienta 3.0 para un caso de prueba.
Característica Eficiencia
75
Sitio Github de releases de Cucumber - Recuperado el 02 de enero 2022 -
https://github.com/cucumber/cucumber-ruby/releases
1.0 es de 12 horas.
Eficiencia en la utilización de otro hardware: se utilizó también una Asus Rog Zephyrus
G1476 y no hubo otro hardware utilizado.
Característica Instalabilidad
Primera instalación
76
Sitio web oficial - https://rog.asus.com/ar/laptops/rog-zephyrus/rog-zephyrus-g14-series/
Para realizar la instalación de la herramienta 3.0 comenzaremos con la descarga del IDE
Eclipse. Utilizaremos el mismo entorno de desarrollo que el utilizado en la herramienta 1.0. Si el
proyecto de casos de prueba automatizados ya existe, descargamos el código (hacer un pull en git)
del repositorio y abrimos la carpeta del proyecto en el Eclipse.
Si el proyecto de casos de prueba no existe, lo crearemos a través de la creación de un
nuevo proyecto en el Eclipse mediante la ruta File->New->Other->Maven Project.
Instalaremos las dependencias a través de Maven, de las tools JUnit y los drivers del
Selenium.
Si bien la comunidad de Java, Selenium, JUnit, Cucumber y Maven es muy amplia, se
requiere de conocimientos como automation para la instalación de este framework.
Upgrades
Figura 31: Se muestra el archivo pom.xml con las dependencias de Cucumber, JUnit y Selenium.
Para el desarrollo de la herramienta 3.0 se necesita de recursos que tengan un expertise ssr
o más. Esto es similar a lo mencionado en la herramienta 1.0 ya que este framework también
requiere de la conexión de todas las tools a utilizar.
Confort físico: Tanto Eclipse y Java son las herramientas de automation más utilizadas para
la automatización de sitios Web, pero también lo es y JUnit (aunque no sólo para pruebas
automatizadas). Si bien Cucumber está involucrándose cada vez más en las pruebas automatizadas,
no es de las más utilizadas por los programadores de pruebas.
En la comprensión de las salidas del sistema: la herramienta 3.0 a través del Eclipse
también utiliza la sección de output Problems o Console que proveen los resultados necesarios para
el desarrollo de las pruebas.
En la estética: Al utilizar Eclipse, la herramienta 3.0 provee una interfaz que se actualiza con
nuevas versiones que hacen ameno al uso de la misma.
En el conocimiento del sistema: La herramienta 3.0 es desarrollada desde cero por los
desarrolladores de pruebas, por ende, el conocimiento del sistema es total o se puede obtener
analizando la herramienta.
Característica Usabilidad
La herramienta 3.0 permite desempeñar las pruebas automatizadas de una forma eficiente.
Las tools como Java, JUnit, Selenium, Eclipse poseen mucha comunidad. Si bien Cucumber es una
tool más nueva se integra correctamente con las mencionadas y permite escalabilidad que los
programadores de pruebas necesitan.
En el aprendizaje: Para un seniority junior no es tan fácil su aprendizaje pero para un ssr o
sr si lo es. Las tools de la herramienta 3.0 poseen mucha comunidad y esto hace que su aprendizaje
sea rápido.
En el acceso a las funciones: La velocidad del acceso a las funciones de la herramienta 3.0
es rápida, al ser una herramienta creada desde cero se puede realizar lo más eficiente que uno
desee.
Efectividad del Help: La herramienta 3.0 posee mucha comunidad en internet y también,
mediante el Eclipse, posee la sección de ayuda para instalación o gestión de tools deseadas.
Herramienta 1.0
La primera herramienta es la 1.0. Mostramos a continuación la hoja del Resultado Total pero
también se podrán ver las hojas con los nombres de cada interesado que realizó la encuesta o
cuestionario evaluando la herramienta.
Figura 32: Se muestra la hoja “Resultado total“ con el promedio de la evaluación de la herramienta
1.0
Figura 33: Se muestran a modo de ejemplo los datos proporcionados por el Developer Lead (SR)
Federico.
Herramienta 2.0
Figura 35: Se muestra la hoja Valores de referencia para guiar a los interesados
Herramienta 3.0
Figura 37: Se muestra evaluación realizada por el evaluador que es parte de los stakeholders
Para la realización de las evaluaciones se instalaron las herramientas 1.0, 2.0 y 3.0 en las
computadoras de los interesados. Se utilizó el Google Drive con cada una de las herramientas y las
referencias para que el stakeholder se oriente de cuáles eran las características, subcaracterísticas y
atributos a evaluar y qué es lo que abarcaban cada una de ellas.
Se realizó esta evaluación 3 veces a cada interesado por cada una de las herramientas. En
algunos casos fueron preguntas y en otros la explicación de las características (subcaracterísticas y
atributos) para que dieran una respuesta de satisfacción en base a los valores de referencia que se
le propusieron como respuesta.
Figura 38: Muestra los valores que puede el interesado optar. El evaluador guió al interesado frente
a dudas.
Se utilizaron los valores propuestos por MyFEPs, también la escala Likert y se realizaron
preguntas al interesado.
En todo momento de las encuestas realizadas a los interesados se hizo hincapié en la ayuda
al mismo tanto para la instalación de la herramienta a evaluar como para el entendimiento del
contexto de los puntos a evaluar.
Resultados
La herramienta que mayor puntuación logró según las evaluaciones realizadas es la que
incorpora las tecnologías o herramientas Java, Selenium, ATDD, TestNG y Maven (Herramienta 1.0).
Con esto no quiere decir que sea mejor que el resto, sino que los evaluados se sienten más cómodos
con el uso de este framework generado.
Todas las herramientas obtuvieron resultados de aprobación pero como ya fue mencionado
anteriormente (y en la evaluación) la herramienta 1.0 posee un alto puntaje en características como
Adaptabilidad, Calidad de los artefactos (incluyendo alta cohesividad y bajo acoplamiento), Eficiencia,
entre otras características que la destacan.
Cuando se elige una herramienta para automatizar sitios web hay que pensar en varios
factores:
● Alta cohesividad en sus componentes para que el armado del framework sea eficiente
● Soporte en las herramientas del framework a generar
● Que las herramientas sean multiplataforma (que puedan ser ejecutadas y mantenidas en
La herramienta 1.0 posee todos los puntos mencionados anteriormente y en promedio para
todos los interesados posee un puntaje muy bueno 92.77%.
Conclusiones
Ciertas herramientas son pagas, hay que tener en cuenta el presupuesto de la empresa y del
área de QA para ver si conviene utilizar una herramienta paga o si con herramientas gratuitas y con
comunidad en internet se puede resolver el problema de igual manera.
Al tomar la decisión de elegir una herramienta de automation se debe tener siempre el aval
de todo el equipo para que se avance con la herramienta de forma rápida, tranquila y conforme al
equipo. No hay que tomar decisiones sin la aprobación del equipo que va a utilizar la herramienta ya
que sino se puede caer en falta de motivación del equipo, falta de avance, frenos en el desarrollo de
pruebas, entre otras cosas.
Para finalizar la conclusión, y como mención personal, considero que a lo largo de toda esta
tesina, he involucrado y mencionado todos los conocimientos adquiridos a lo largo de la carrera
Licenciatura de Sistemas de la Universidad de Belgrano. Doy por finalizado este trabajo y también
mis estudios universitarios en la universidad mencionada logrando el título de Licenciado en
Sistemas de información.
Bibliografía
http://www.computing.es/analytics/informes/1111750046201/testing-continuo-gana-terreno-or
ganizaciones.1.html
● Sitio oficial ISO/IEC 25040 - https://iso25000.com/index.php/normas-iso-25000/iso-25040
● SDET - Recuperado el 25 de enero de 2022 - https://www.linkedin.com/pulse/que-es-un-sdet
● QSAT - MyFEPS - Sitio oficial: https://sites.google.com/a/comunidad.ub.edu.ar/myfeps/qsat-1
● Alta cohesión y el bajo acoplamiento -
https://blog.koalite.com/2015/02/cohesion-y-acoplamiento/
● Sitio oficial de Phoneblocks - Muestra la modularidad - Imagen recuperada el 11 de mayo de
2022 - https://www.onearmy.earth/project/phonebloks
● UX vs UI - https://openclassrooms.com/en/courses/4556206-design-the-visual-side
● Sitio web oficial de Royal Aeronautical Society https://www.aerosociety.com/
● Recuperado el 25 de enero de 2022 -
https://www.etq.com/blog/the-history-of-quality-management/
● Recuperado el 25 de enero de 2022 - https://hmong.es/wiki/Deming_Prize
● ¿Qué es Java? - Sitio oficial de Java https://www.java.com/es/about/whatis_java.jsp también
se adjunta la documentación de Oracle (dueño de Java)
https://www.oracle.com/java/technologies/javase-documentation.html
● ¿Qué es Selenese? - Recuperado el 26 de enero de 2022 -
https://www.tutorialspoint.com/what-is-selenese
● Glosario DOM - Recuperado el 26 de enero de 2022 -
https://developer.mozilla.org/es/docs/Glossary/DOM
● Sitio oficial de Maven - https://maven.apache.org/
● Recuperado el 25 de enero del 2022 -
https://developer.mozilla.org/es/docs/Web/XML/XML_introduction
● Sitio oficial de Apache - https://www.apache.org/
● Recuperado el 25 de enero del 2022 - https://www.guru99.com/page-object-model
● Sitio oficial de TestNG - https://testng.org/doc/
● Sitio oficial de Junit - https://junit.org/junit5/
● Sitio oficial de Eclipse (IDE de desarrollo) - https://www.eclipse.org/downloads/
● Recuperado el 30 de enero de 2022 - https://www.agilealliance.org/glossary/atdd/
● Recuperado el 05 de abril de 2022 -
https://josepablosarco.wordpress.com/2015/03/31/tdd-vs-bdd-vs-atdd/
● Recuperado el 11 de mayo de 2022 -
https://www.digite.com/es/agile/el-desarrollo-orientado-a-pruebas
● Sitio oficial de descarga de Java -
https://www.oracle.com/java/technologies/downloads/#jdk17-linux
● Sitio oficial de descarga Selenium - https://www.selenium.dev/downloads/
● Recuperado el 06 de enero de 2022 -
https://techandsolve.com/alta-cohesion-y-bajo-acoplamiento
● Sitio web oficial - Recuperado el 12 de mayo 2022 -
https://rog.asus.com/ar/laptops/rog-zephyrus/rog-zephyrus-g14-series/
● Git - Sitio oficial https://git-scm.com/
● Sitio oficial de Groovy - http://groovy-lang.org
● Recuperado el 02 de enero de 2022 - https://www.tecnova.cl/2021/10/06/bdd
● Recuperado el 30 de enero de 2022 - https://docs.behat.org/en/v2.5/guides/1.gherkin.html
● Sitio oficial de JUnit - https://junit.org/junit5/
● Sitio Github de releases de Cucumber - https://github.com/cucumber/cucumber-ruby/releases
● Sitio ISTQB - https://www.istqb.org/
● La evaluación de la herramienta 1.0 se adjunta en el documento “Herramienta 1.0 - Planilla
de Cálculo de G Software Evaluado.xlsx” adjunto con los archivos enviados de esta tesina
● La evaluación de la herramienta 2.0 se adjunta en el documento “Herramienta 2.0 - Planilla
de Cálculo de G Software Evaluado.xlsx” adjunto con los archivos enviados de esta tesina
● La evaluación de la herramienta 3.0 se adjunta en el documento “Herramienta 3.0 - Planilla
de Cálculo de G Software Evaluado.xlsx” adjunto con los archivos enviados de esta tesina
● El código de las pruebas de la herramienta 1.0 se encuentra en el siguiente repositorio:
https://bitbucket.org/curraoyamil1/javatestng/src/master/
● El código de las pruebas de la herramienta 2.0 se encuentra en el siguiente repositorio:
https://bitbucket.org/curraoyamil1/katalon/src/master/
● El código de las pruebas de la herramienta 3.0 se encuentra en el siguiente repositorio:
https://bitbucket.org/curraoyamil1/cucumberjava/src/master/
Glosario
● Acceptance testing: Son las pruebas que realiza el cliente para verificar lo pedido en la
aplicación desarrollada
● API: Es una interfaz que provee un servicio
● ATDD: Es una metodología de trabajo que consiste en desarrollar los criterios de aceptación
junto a todos los stakeholders para la mejora de la calidad de los productos a desarrollar
probar su robustez.
● Pruebas de Regresión: Son las pruebas que verifican que todo lo que se desarrolló
anteriormente sigue funcionando de forma correcta.
● Pruebas de Smoke: Son pruebas ágiles para verificar que todo lo crítico del sistema
funciona correctamente.
● Pruebas Unitarias: Son las pruebas de código que realiza el desarrollador del sistema.
● Regresión: Es la ejecución de todas las pruebas existentes.
● Release: Es una versión de código que puede ser implementada en un ambiente de test o
producción.
● SDET (Software Development Enginner in Test): Es un automation que puede trabajar tanto
como tester de pruebas automatizadas como desarrollador.
● Selenese: Son comandos que se utilizan dentro de Selenium.
● Smoke: Es la ejecución de las pruebas críticas del sistema.
● Stakeholders: Son las partes interesadas en que un proyecto se cumpla.
● Tester: Es un rol que realiza pruebas a un sistema.
● Test Suite: Es un conjunto de casos de prueba.
● Testing: Es la acción de probar un sistema.
● Testing de Seguridad: Son las pruebas de vulnerabilidades de un sistema.
● TDD: Es el desarrollo basado en las pruebas.
● UI: User interface es el diseño o imagen del software o herramienta a evaluar o desarrollar,
no debe confundirse con UX.
● Unit tests: Son las pruebas unitarias que realiza un desarrollador.
● UX: User experience es la experiencia que tiene el usuario con la herramienta o software
utilizado, no debe confundirse con UI
● Versión de código: Es un paquete de software que tiene un identificador específico que no
se repite.
● Workspace: Carpeta en la cual se guarda la información de los proyectos realizados
mediante el IDE Eclipse.
● XML: Es un lenguaje que permite comunicar a sistemas que lo entiendan.
Anexos
El framework MyFEPS tiene como objetivo principal definir un marco de trabajo para la
elaboración de productos de software. En esta tesina se utilizó éste marco de trabajo para evaluar las
tres herramientas ya mencionadas.
Este framework (MyFEPS) se realizó y está orientado para que sea lo más completo posible,
entendible, basado en normas consensuadas, adaptable, entre otras características.
El sitio oficial del marco de trabajo es el siguiente pero se menciona en la Bibliografía las
actualizaciones de los documentos de MyFEPS:
https://sites.google.com/a/comunidad.ub.edu.ar/MyFEPS/tarea
Se utilizó MyFEPS para analizar y evaluar las 3 herramientas de automation elegidas para
que las empresas puedan automatizar sus productos Web o sistemas de software Web.
Las herramientas Java y Selenium, que si bien cada una de ellas pueden ser utilizadas por
separado, se analizaron y evaluaron como una herramienta en conjunto. Los atributos y métricas de
MyFEPS se aplicaron a la unión de estas dos herramientas. También se utilizaron las características
de MyFEPS para analizar las herramientas Katalon y Cucumber.
Escala Likert
En esta tesina utilizamos la escala Likert, denominada de este modo por la publicación de su
creador Rensis Likert y que es ampliamente utilizada en muchos sistemas. Se utiliza mucho en
cuestionarios y también en sistemas de hoy en día. Por ejemplo el sitio SurveyMonkey77 lo utiliza
también para las encuestas vía email que se realizan mediante este sitio.
Se muestra a continuación un ejemplo gráfico78 que se utiliza mucho en internet basado en la
77
Extraído el Domingo 04-03-2022 https://es.surveymonkey.com/mp/likert-scale/
78
Extraido el Domingo 04-03-2022
https://www.beetrack.com/es/blog/escala-de-satisfaccion-de-clientes
escala Likert:
En esta sección se mencionan los tipos de testing existentes en QA y que se utilizan en las
empresas:79
● Smoke: Son un conjunto de pruebas que testea lo crítico.
● Regresión: Este tipo de metodología es el utilizado a modo de ejemplo en los Test Suites en
las herramientas 1.0, 2.0 y 3.0. La regresión de un sistema es ejecutar todas las pruebas
desarrolladas existentes.
● Unit tests: Son los casos de prueba realizados por los desarrolladores.
● Integration tests: Son los casos de prueba que prueban que todos los módulos funcionan
interconectados.
● Functional tests: Son las pruebas funcionales (lo que tiene que realizar el software).
● End-to-end tests: Son las pruebas que simulan el comportamiento esperado de los
usuarios.
● Acceptance testing: Son las pruebas que verifican si lo pedido por el cliente se cumple.
● Performance testing: Son las pruebas de rendimiento que verifican si en condiciones
normales se ejecuta rápido el sistema. A modo de ejemplo se menciona la herramienta
JMeter80, la misma es una de las herramientas más utilizadas y que es open course. Está
desarrollada en Java y permite realizar tests de performance tanto a aplicaciones Web, Apis,
79
Recuperado el 16 de mayo de 2022 -
https://programacionymas.com/blog/tipos-de-testing-en-desarrollo-de-software
80
Sitio oficial Jmeter - Recuperado el 16 de mayo de 2022 - https://jmeter.apache.org/
Por último se menciona un tipo de testing que he ideado y que utilicé en varias empresas. Esta
metodología incluye varias formas de testeo, varias técnicas de procesos y un método específico de
organización del equipo de QA todo en uno. Esta técnica se llama:
Testing Relámpago
Esta metodología la creé frente a la necesidad de tener que probar y encontrar errores en
varios sistemas al mismo tiempo, llamémoslos varios frentes de testeo.
La metodología consta de organizar a todo el equipo de QA para que se focalicen con toda
su experiencia para tratar de encontrar el error 500 (internal server error) o el 404 (recurso no
encontrado), o cualquier tipo de error que nos permita frenar las pruebas de un software y saltar a
probar otro.
Lo que nos permitió esta metodología es poder ganar tiempo utilizando toda la experiencia
de todo el equipo de testeo, ejecutando todas las pruebas automatizadas existentes y ejecutando las
pruebas de estrés en paralelo.
Si encontramos los errores rápidamente ganamos tiempo para que el equipo de QA se
organice mejor mientras que el equipo de Desarrollo va solucionando los bugs encontrados y nos
envía otra versión a probar.
Lo ideal es enfocar a todo el equipo (utilizando todas las fuerzas posibles, conocimientos y
pruebas automatizadas) para romperlo (encontrar un bug crítico) y saltar a seguir probando otra
aplicación.
81
Sitio oficial Postman - Recuperado el 16 de mayo de 2022 - https://www.postman.com/
CI/CD
ISTQB
82
CI/CD - Recuperado el 16 de Mayo de 2022 -
https://www.redhat.com/es/topics/devops/what-is-ci-cd
83
POM - Page Object Model - Recuperado el 16 de Mayo de 2022 -
https://www.browserstack.com/guide/page-object-model-in-selenium
84
Sitio oficial - Recuperado el 16 de Mayo de 2022 - https://www.istqb.org/
Las herramientas de gestión de casos de prueba son una gran ayuda para todos los sectores
de Calidad (QA/Testing) en las empresas. Sin duda sin estas herramientas es muy difícil llevar a cabo
el trabajo de un analista de calidad. Estas herramientas permiten ingresar en las mismas todos los
casos de pruebas existentes dividiéndolos según módulos, secciones, sistemas, softwares o lo que
sea conveniente para organizar mejor los casos de pruebas.
Estas herramientas nos permiten organizar los casos según estén o no automatizados,
según sean críticos para ejecutar una regresión o smoke, según pertenezcan a una sección u otra,
entre otras cosas.
Al elegir una herramienta de gestión de casos de pruebas se tiene que tener en cuenta que
la misma debe soportar integraciones y customización necesaria para que el usuario se sienta
cómodo utilizando.
Figura 41: Se muestra la herramienta TestRail que posee integración con Java y otras herramientas.
XPath
El XPath (sus siglas son XML Path Language) es un lenguaje que permite obtener un objeto
en un sitio web a través de construcciones de expresiones que detecten esos objetos en el mismo.
En esta tesina se utilizan estas expresiones al desarrollar los frameworks de automation para obtener
los objetos en el sitio web que se utiliza de ejemplo.
Se muestran a continuación algunos ejemplos del uso de XPath:
1. XPath Absoluto:
Si buscamos en el sitio Web de ejemplo que utilizamos en nuestra tesina el siguiente XPath absoluto,
encontraremos en la Web el texto “Testing Relámpago” a través de un camino absoluto (paso a paso)
desde la raíz de nuestro código Front End hasta encontrar la posición exacta de ese texto. (No es
muy recomendado su uso ya que no es eficiente)
/html/body/div/div/div/div[1]/div/div/section/div/div/div[1]/div/div[2]/div/nav/div[2]/div/div[1]/div/
a/div/h3
2. XPath Relativo:
Si en vez de utilizar el XPath absoluto de antes, utilizamos un XPath relativo (acceder directamente a
lo que buscamos sin utilizar todo el árbol del html del sitio) podríamos utilizar una expresión como la
siguiente (mucho más eficiente y fácil de modificar frente a cambios de textos o de header):
//h3[contains(text(),'Testing Relámpago')]