Todos en el campo de la automatización de pruebas conocen Robot Framework y Selenium. Son los dos principales frameworks de automatización que desarrolladores y testers utilizan para crear entornos de prueba que automatizan la verificación de otra aplicación.
Entonces, ¿cuáles son las aplicaciones futuras de estos frameworks y cómo influirán en la evolución de la tecnología y las aplicaciones web? En este artículo, exploraré las similitudes y diferencias entre Robot Framework y Selenium, la automatización basada en palabras clave y otros puntos de vista de expertos.
Las similitudes entre Robot Framework y Selenium
Ambos frameworks son tecnologías consolidadas: Selenium lleva existiendo más de dos décadas y Robot Framework está cerca de cumplir 20 años.
Ambos son de código abierto y cuentan con bases de usuarios de cientos de miles (si no millones). Sin embargo, ninguno es una herramienta en el sentido más estricto de la palabra; son frameworks que usas para construir la herramienta para tu propósito de prueba específico.
Robot Framework y Selenium se utilizan ampliamente para probar aplicaciones web. De hecho, Selenium fue creado explícitamente para este propósito, mientras que Robot Framework fue diseñado para automatizar casi cualquier cosa. Se sabe que Robot Framework se usa incluso para probar sistemas de señalización sensibles al tiempo.
Ambos frameworks son accesibles desde varios lenguajes de programación: Selenium tiene una asociación histórica con Java y C++, mientras que Robot Framework se asocia principalmente con Python.
Las diferencias entre Robot Framework y Selenium
Un framework de automatización de pruebas opera entre el tester y la aplicación bajo prueba. Proporciona una interfaz de scripting (“interfaz superior de pruebas”) para describir las pruebas al framework y una interfaz de driver (“interfaz inferior de pruebas”) para comandar la aplicación bajo prueba, simulando las acciones del usuario. La tarea principal del framework es entonces traducir los comandos del script de prueba (en la interfaz superior) en los puntos, clics y pulsaciones de teclas en la interfaz inferior.
Selenium estableció inicialmente el estándar para la interfaz inferior en las pruebas de aplicaciones web: un modelo consistente para direccionar elementos de páginas web usando un formato de localizador conocido como XPath. La interfaz superior de Selenium es solo una delgada biblioteca de programación para trabajar con los XPaths, lo que requiere fuertes habilidades de programación. Además, todos los usuarios de Selenium saben que los XPaths tienden a cambiar y las pruebas requieren un mantenimiento continuo, laborioso y costoso.
Robot Framework nació por la frustración hacia herramientas de automatización engorrosas, incluyendo Selenium entre ellas. El objetivo de diseño fue crear un framework de automatización genérico que se pueda extender con librerías personalizadas que implementen diferentes interfaces de prueba. El concepto se inspiró en la automatización basada en palabras clave, iniciado por Hans Buwalda y Behavior-Drive Development (BDD).
¿Qué es la automatización basada en palabras clave en Robot Framework?
La automatización basada en palabras clave es el proceso de programar comandos de alto nivel como Login, EnterLead, CreateContact, etc., que realizan las acciones típicas de un tester o un usuario real. Las palabras clave ocultan los detalles técnicos de XPaths y otras especificaciones técnicas. Los creadores de las pruebas luego usan las palabras clave para definir las pruebas reales. Si algo cambia en la implementación de la aplicación subyacente, solo se necesita modificar la definición de las palabras clave, y todas las pruebas que las utilicen funcionarán nuevamente.
Consideraciones de la automatización basada en palabras clave
La automatización basada en palabras clave sí tiene una advertencia. Se debe dedicar mucho esfuerzo a definir el vocabulario de palabras clave para evitar la proliferación de palabras clave. Si aplicas BDD, la proliferación de palabras clave es casi segura. Si el vocabulario de palabras clave es específico de la aplicación, usar Robot Framework para diseñar pruebas para una aplicación no implica tener competencia para diseñar pruebas para otra.
Y, al igual que con Selenium, los desarrolladores que mantienen esas implementaciones de palabras clave tienden a convertirse en cuellos de botella del proceso. Los XPaths volátiles que requieren mantenimiento pueden ser mucho menos que con Selenium, pero siguen existiendo.
Beneficios de la automatización basada en palabras clave y bibliotecas amplias
La extensibilidad de Robot Framework ha permitido que la comunidad cree muchas bibliotecas útiles de palabras clave. Por ejemplo, existen al menos tres bibliotecas únicas de automatización web: SeleniumLibrary, QWeb y BrowserLibrary. La SeleniumLibrary de Robot Framework se construyó sobre Selenium, pero con un nivel de abstracción superior al del propio Selenium. La comunidad aloja una infinidad de bibliotecas para diversos propósitos, como pruebas de API o generación de datos de prueba.
Si eres un programador profesional, puedes realizar cualquier tarea de automatización web con Selenium, pero necesitas completar la tarea tú solo. Robot Framework ofrece el mismo nivel de flexibilidad, pero con una gran variedad de bibliotecas útiles que pueden hacer tu trabajo más productivo.
El modelo bien pensado para la extensibilidad es una de las grandes fortalezas de Robot Framework. Por ejemplo, puedes crear nuevas bibliotecas de palabras clave programándolas en Python u otro lenguaje de tu elección, o simplemente secuenciar palabras clave existentes, incluso con estructuras básicas de control, para crear otras nuevas.
Una nota sobre no-code
Si no eres un programador profesional, te sentirás perdido con Selenium y, para ser sincero, casi igual con Robot Framework. No podrás entender mucho de un script de Selenium, pero si ves un script de prueba de Robot Framework, probablemente, aunque no siempre, puedas seguir su lógica y comprender lo que se supone que debe hacer. Si tienes buenos ejemplos para copiar y mejorar, incluso podrás crear tus propios scripts con Robot Framework.
Muchos líderes de pruebas estiman que trabajar con Robot Framework es más productivo que con Selenium, gracias a su mayor nivel de abstracción y a las bibliotecas ya preparadas que reducen tanto el coste de la automatización como, especialmente, el coste de mantenimiento de las pruebas. Es común ver aumentos de productividad entre cuatro y ocho veces respecto a Selenium.
Por otro lado, si sabes lo que haces, sin duda puedes lograrlo con Selenium: el inconveniente de tener que hacer casi todo tú mismo conlleva la libertad de poder hacer cualquier cosa por ti mismo.
