Selenium, de manera sencilla, son un conjunto de herramientas de automatización de pruebas de software de código abierto que se convirtió en estándar en el mundo del control de calidad. En la actualidad, se usa en compañías como Netflix, Google, HubSpot, Fitbit y más.
Toda la suite proporciona una gama de soluciones para diferentes problemas y necesidades de testing. Antes de ver su beneficio para los desarrolladores, examinemos la historia de esta tecnología utilizada, y clave, para los testers.
A principios de la década de 2000, una empresa llamada Mercury Interactive dominaba el mundo de la automatización de pruebas con Astra Quick Test, su herramienta. No era el mejor producto. Por ejemplo, sólo podía ejecutar pruebas en computadoras con Windows, admitía una pequeña cantidad de versiones de navegador y tenía que usar un sólo lenguaje para escribir scripts: VBScript.
Cuando el ingeniero de software Jason Huggins creó una nueva e innovadora herramienta de automatización de pruebas, nombró su creación haciendo referencia al elemento químico y al suplemento recomendado como antídoto para el envenenamiento por mercurio: selenio.
La creación de Jason Huggins en 2004 inicialmente fue un marco de JavaScript destinado a liberar a su creador de las pruebas manuales repetitivas. El producto que primero se llamó JavaScriptTestRunner de manera predecible podía ejecutar pruebas directamente en un navegador, generar interacciones en la página y volver a ejecutarlas sin una entrada manual. Esta herramienta de JavaScript despegó después de que Huggins se diera cuenta de su potencial, la hizo de código abierto y la rebautizó como Selenium Remote Control. La parte innovadora de esto fue que ninguna otra herramienta antes permitía a los testers comunicarse con el navegador en el lenguaje de programación de su elección.
Sin embargo, pronto se hizo evidente que los navegadores aplicaban limitaciones de seguridad en JavaScript, lo que imposibilitaba utilizar todas las capacidades de la herramienta. En ese momento, Google era un ávido usuario de Selenium, pero los ingenieros lucharon con las limitaciones. Uno de ellos, Simon Stewart, comenzó a trabajar en un producto que se comunicaría con los navegadores de forma nativa, al que llamó WebDriver. Selenium combinó fuerzas con WebDriver y cambió la forma en que hemos estado probando software durante más de una década.
Las diferentes versiones de Selenium
Nacimiento del control remoto Selenium (Selenium RC)
Desafortunadamente; los probadores que usaban Selenium Core tenían que instalar toda la aplicación bajo prueba y el servidor web en sus propias computadoras locales debido a las restricciones impuestas por la misma política de origen. Entonces, un ingeniero de ThoughtWork, Paul Hammant, decidió crear un servidor que actuará como un proxy HTTP para «engañar» al navegador haciéndole creer que Selenium Core y la aplicación web que se está probando provienen del mismo dominio. Este sistema se conoció como Selenium Remote Control o Selenium 1.
Nacimiento de Selenium Grid
Selenium Grid fue desarrollado por Patrick Lightbody para abordar la necesidad de minimizar los tiempos de ejecución de las pruebas. Inicialmente llamó al sistema «Control de calidad alojado». Era capaz de tomar capturas de pantalla del navegador durante etapas significativas y también de enviar comandos de Selenium a diferentes máquinas simultáneamente.
Nacimiento de Selenium IDE
Shinya Kasatani de Japón creó Selenium IDE, una extensión de Firefox que puede automatizar el navegador a través de una función de grabación y reproducción. Se le ocurrió esta idea para aumentar la velocidad en la creación de casos de prueba. Donó Selenium IDE al Proyecto Selenium en 2006.
Nacimiento de WebDriver
Simon Stewart creó WebDriver alrededor de 2006 cuando los navegadores y las aplicaciones web se volvían más poderosos y restrictivos con programas de JavaScript como Selenium Core. Fue el primer marco de prueba multiplataforma que podía controlar el navegador desde el nivel del sistema operativo.
Nacimiento de Selenium 2
En 2008, todo el equipo de Selenium decidió fusionar WebDriver y Selenium RC para formar una herramienta más poderosa llamada Selenium 2, con WebDriver como núcleo. Actualmente, Selenium RC todavía se está desarrollando, pero solo en modo de mantenimiento. La mayoría de los esfuerzos del Proyecto Selenium ahora se centran en Selenium 2.
Ventajas de Selenium
Las pruebas automatizadas de Selenium vienen con varios beneficios, tales como:
- Selenium ha demostrado ser preciso con los resultados, lo que lo hace extremadamente confiable.
- Dado que el selenium es de código abierto, cualquiera que esté dispuesto a aprender de testing puede comenzar sin costo alguno.
- Selenium admite una amplia gama de lenguajes de programación como Python, PHP, Perl y Ruby.
- Selenium es compatible con varios navegadores como Chrome, Firefox y Opera, entre otros.
- Selenium es fácil de implementar y no requiere que el ingeniero tenga un conocimiento profundo de la herramienta.
- Selenium tiene mucha reutilización y complementos.