13. Herramientas de Automatización funcional de GUI que utilizan nuestros expertos

Centro de Ensayos de Software
7 min readAug 5, 2024

--

Continuamos nutriendo a nuestro blog de contenidos sobre testing de software. Accedé a nuestro perfil y encontrá las notas anteriores en las que hablamos sobre tipos de pruebas, por qué realizarlas, los roles que participan en ellas y más.

En el ámbito del testing, a menudo nos encontramos con diversas situaciones, proyectos o contextos que nos exigen, como expertos en el área, tomar decisiones claves. Estas decisiones pueden incluir la elección de una metodología, la formación de un equipo de trabajo, la selección de técnicas o incluso cuáles herramientas utilizar. En este último aspecto nos centraremos en esta nota.

Elección de herramientas

La elección de una herramienta dependerá de diferentes criterios, que se deben considerar según las características de cada proyecto. Algunos de los factores que pueden influir en la decisión incluyen los costos, el licenciamiento de la herramienta, el conocimiento de los expertos que la utilizarán, así como el propio sistema bajo prueba, ya sea de escritorio, web o móvil.

En el Centro de Ensayos de Software, como empresa independiente de herramientas y proveedores, mantenemos una postura imparcial en cuanto a las herramientas que utilizamos. Nuestra filosofía se centra en proporcionar información sobre la calidad del software, utilizando las herramientas como un medio para lograrlo, sin favorecer ni respaldar específicamente ninguna opción en particular.

Al momento de seleccionar una herramienta, priorizamos la eficiencia y la efectividad para cada proyecto, asegurándonos de que la elección no se base en factores como la familiaridad con la herramienta, su facilidad de uso, la influencia de mentores, la sensación de seguridad o la idea de mantener lo que ya funciona. Nos enfocamos en elegir la herramienta que mejor se adapte a las necesidades específicas del proyecto y al contexto del cliente.

Como testers automatizadores, es nuestra responsabilidad identificar las necesidades específicas de cada proyecto y adaptar nuestras herramientas en consecuencia. Esto significa que, si se requiere investigar o aprender a utilizar una herramienta diferente para optimizar su aplicación en un caso particular, estaremos dispuestos a hacerlo.

Si bien existen herramientas que pueden cubrir gran parte de las necesidades, muchas se centran en la generalidad y no tanto en lo específico. En este artículo presentamos las 5 herramientas que nuestros expertos utilizan con mayor frecuencia en la actualidad para la automatización funcional de GUI.

Estas herramientas fueron seleccionadas para cada proyecto basándose en criterios que consideran el contexto específico, asegurando así que se adapten a las necesidades particulares de cada caso.

1. Cypress:

Cypress es una herramienta muy conocida en el ámbito del Testing Automatizado.

Su versatilidad permite su uso en diversos contextos, ya que no solo facilita la realización de pruebas automatizadas de extremo a extremo (E2E), sino que también permite llevar a cabo pruebas de servicios. Si bien es utilizada mayormente con tecnologías modernas que utilizan JavaScript, React, Angular, etc, Cypress puede adaptarse a cualquier prueba que se ejecute en la web.

Otra particularidad de Cypress es que si no se está familiarizado con escribir código en la herramienta, te permite grabar los pasos y automáticamente crea el código por ti. Esto sirve en gran medida para las personas nuevas en la disciplina, de forma que puedan irse adaptando.

Características: Moderno, tiempo de ejecución rápido, interfaz intuitiva, fácil de utilizar.

2. Selenium:

Esta herramienta podríamos definirla como una veterana en este ámbito, siendo una de las primeras en popularizarse para la automatización. Junto con esto, decir que Selenium se ha ido perfeccionando con el correr de los años, desde el 2004 hasta la actualidad.

Al día de hoy ofrece varias soluciones dentro de su herramienta, siendo compatible con varios lenguajes de programación (.Net,, Ruby, Java, Python o JavaScript) y mucho de los navegador actuales (Firefox, Internet Explorer, Safari, Opera, Chrome, Edge).

Dentro de su herramienta nos encontramos con varios componentes:

Selenium IDE: Nos permite editar, grabar y depurar lo que se muestra en el navegador, esto mediante una extensión para los navegadores Chrome, Firefox y Edge.

Selenium WebDriver: Permite utilizar un navegador de forma local o en remoto. No es necesario un servidor especial, ya que se inicia una instancia del navegador y así se puede controlar.

Selenium Grid: Acepta ejecutar pruebas con varios navegadores a la vez y con diferentes sistemas operativos. Es una gran opción para proyectos de gran porte.

3. Appium:

Esta herramienta se diferencia de las anteriores principalmente porque se centra en las pruebas de automatización móvil.

Aunque no es la única herramienta que puede automatizar plataformas móviles, Appium destaca porque no requiere integraciones adicionales para funcionar y sus instalaciones no presentan complejidades. Se utiliza principalmente en plataformas móviles, pero también se puede utilizar en aplicaciones web nativas y plataformas de escritorio Windows.

Dado que utiliza el WebDriver de Selenium, nos permite que trabajemos en diferentes lenguajes de programación, ya que al final lo que se enviará es una petición HTTP a un servidor.

También tiene su propio inspector llamado “Appium Inspector”, el cual nos permitirá visualizar las propiedades y los comportamientos de diferentes elementos que queramos localizar como botones, inputs de texto, checkbox, etc.

Por lo que en conclusión es una herramienta muy potente que se centra principalmente en:

Automatización de pruebas en aplicaciones nativas: Se puede usar Appium para probar aplicaciones nativas, que son aquellas desarrolladas específicamente para una plataforma como Android o iOS.

Automatización de aplicaciones híbridas: También permite probar aplicaciones híbridas, que son aplicaciones web empaquetadas como aplicaciones móviles. Esto es útil para verificar que las funcionalidades web dentro de la aplicación móvil se comporten como se espera.

Automatización de aplicaciones web móviles: Permite la automatización de un aplicativo en diferentes dispositivos y diferentes sistemas operativos.

4. Playwright:

Tenemos que tener en cuenta que es la herramienta más nueva en esta lista. No tiene una comunidad tan grande como las anteriores, pero eso no quiere decir que no sea una herramienta potente y con gran potencial.

Creada por Microsoft, Playwright permite utilizar los lenguajes C#, JavaScript, TypeScript, Python o Java. Además, soporta los navegadores Chrome y Microsoft Edge (con Chromium), Safari (con WebKit) y Firefox.

Si bien cuenta con algunas funcionalidades para la prueba en dispositivos móviles, es de forma más superficial. Su utilidad se centra principalmente en la web, donde se le saca más provecho y de forma concreta en pruebas E2E para los tres sistemas operativos más usados (Windows, Linux y macOS).

Gracias a su alta versatilidad, permite crear pruebas rápidamente tanto en aplicaciones webs como en APIs y permite a su vez mezclar diferentes tipos de tests y validaciones en una sola prueba. Por lo que, en escenarios donde las pruebas a realizar son un gran volumen y a su vez los tiempos de ejecución son altos, esta podría ser una gran opción a elegir. Además, si sumamos la ventaja de la paralelización, ¡permite ejecutar más pruebas en menos tiempo!

Si bien tiene una serie muy grande de ventajas, la curva de aprendizaje -por más que la interfaz sea amigable- es alta, aunque vale completamente la pena.

5. TestComplete:

Por último, presentamos TestComplete, una herramienta que se distingue de las anteriores por su potencia. TestComplete permite crear una variedad de pruebas, incluyendo:

  • Unitarias
  • de Regresión
  • Distribuidas
  • de Rendimiento
  • Funcionales
  • de Caja Blanca
  • de Cobertura

Además, la creación de pruebas es muy accesible gracias a su potente interfaz gráfica. Esto permite que personas sin conocimientos técnicos o que prefieran no escribir código puedan crear pruebas fácilmente. TestComplete graba la interacción del usuario con la aplicación y la reproduce automáticamente. Luego, su sistema interactivo permite arrastrar, mover y soltar diferentes pasos en los scripts de prueba, simplificando así la creación de pruebas complejas sin necesidad de codificación.

Las personas que sí quieran escribir código, pueden hacerlo, ya que TestComplete permite a los usuarios escribir scripts de prueba en varios lenguajes de programación, incluyendo JavaScript, Python, VBScript, JScript y DelphiScript. Esta capacidad proporciona una gran flexibilidad al realizar pruebas.

Además, el editor de código nos proporciona diferentes elementos como resaltado de sintaxis, autocompletado y depuración, facilitando la escritura y el mantenimiento de scripts de prueba.

En definitiva una herramienta muy completa tanto para iniciados en el tema o para expertos en la automatización y código.

Esperamos que esta guía te haya ayudado a comprender la importancia de considerar el contexto y ponderar los distintos criterios al seleccionar una herramienta. Queremos señalar que las herramientas que hemos listado son las que más hemos utilizado en nuestros proyectos. Algunas herramientas muy buenas, aunque utilizadas en menos proyectos, no se incluyeron en esta selección.

En próximas notas, continuaremos profundizando en el apasionante mundo de la calidad y el testing de software. Seguinos para estar al tanto sobre nuevos contenidos. También podés proponer un tema para futuros artículos, comentando debajo. ¡Hasta la próxima!

👉🏼 Linkedin

👉🏼 Twitter

👉🏼 Threads

👉🏼 Instagram

👉🏼 Facebook

--

--

Centro de Ensayos de Software
Centro de Ensayos de Software

Written by Centro de Ensayos de Software

Desde hace 20 años proveemos servicios de capacitación, consultoría y testing.

No responses yet