Análisis de aplicación: Selenium IDE Este documento ha sido elaborado por el Centro de Apoyo Tecnológico a Emprendedores bilib, www.bilib.es Copyright 2011, Junta de Comunidades de Castilla La Mancha. Este documento se distribuye bajo los términos de la licencia Creative Commons by sa. http://creativecommons.org/licenses/by sa/2.5/es/ Índice de contenido DATOS TÉCNICOS...2 FUNCIONALIDAD... 3 USABILIDAD... 6 PORTABILIDAD / ADAPTABILIDAD... 7 RENDIMIENTO... 8 DOCUMENTACIÓN... 9 COMUNIDAD... 10 REFERENCIAS...11 Página 1 de 11
DATOS TÉCNICOS Nombre: Selenium IDE Versión: 1.8.1 Licencia: GPL v3 Plataforma: Multiplataforma (interfaz web, extensión para Firefox) Idioma: Inglés Web oficial: http://seleniumhq.org/projects/ide/ Manual (inglés): http://bit.ly/rpxzwp Descripción básica: Selenium IDE es una herramienta que permite al usuario desarrollar sus propios casos de prueba sobre páginas web. Estos casos de prueba se efectúan para, entre otros aspectos, identificar los posibles fallos de seguridad presentes en la página web evaluada. Página 2 de 11
FUNCIONALIDAD Ejecución de tests sobre una página web La herramienta realiza, como funcionalidad básica, la ejecución de tests sobre una página web. Estos tests pueden ser de distintos tipos, según las preferencias o necesidades del usuario. Desarrollo de tests por el usuario Selenium IDE permite al usuario el desarrollo de sus propios tests, ofreciendo la posibilidad de guardarlos para su posterior uso. Para ello, proporciona una gran variedad de comandos o funciones, con una serie de parámetros, que conjuntamente formarán un test completo. Depuración de tests Se incluye una herramienta de depuración que permite encontrar y solucionar errores cometidos por el usuario en la definición de un test. Definición de suites de tests Al igual que pueden definirse tests particulares, también existe la posibilidad de crear una suite de tests, lo que viene a ser un conjunto de tests agrupados para un fin concreto. Verificación de elementos en la página Una función de la que dispone la herramienta es la verificación de la existencia de elementos en la página testeada. Puede verificarse si un elemento está presente en una lugar específico de la página o simplemente si está presente, en cualquier sitio. Análisis de patrones Se incorpora un método de análisis de patrones o expresiones, de forma que en algunas funciones pueden incluirse como parámetros, aplicando dicha función a los elementos que cumplan con las especificaciones. Funciones con tiempo de espera Selenium IDE pone a disposición del usuario una serie de comandos inmediatos, los cuales se efectuarán uno tras otro sin tiempo de espera, pero además ofrece versiones de algunos de estos comandos a los que se añade una opción de espera (andwait), para cuando la página tiene que cargar debido al acceso a otra página distinta o a la recarga de la actual. Para cuando la carga de nuevos elementos se realiza mediante AJAX y no mediante el método tradicional en el que se carga de nuevo la página completa, existen otro tipo de comandos que esperan a la carga de un elemento en concreto (waitfor). Página 3 de 11
Diálogo con ventanas emergentes La aplicación ofrece la posibilidad de negociar o dialogar con las ventanas emergentes que aparezcan durante la ejecución de un test, pudiendo manejar múltiples ventanas con un test desarrollado por el usuario. Almacenamiento de tests en distintos lenguajes El lenguaje determinado para guardar los tests es HTML, pero pueden elegirse otros lenguajes para dicho fin, como Ruby. Visualización de resultados en distintos formatos Al igual que se puede elegir el lenguaje en el que se guarda un test desarrollado por el usuario, también se puede elegir el formato en que se visualizarán los resultados de ejecutar dicho test. El lenguaje por defecto también es HTML. Expansión de funcionalidad con extensiones definidas por usuarios Selenium IDE permite la expansión de su funcionalidad mediante la incorporación de extensiones definidas por los usuarios en lenguaje JavaScript. Este aspecto es independiente de los plugins oficiales recogidos en el portal web del proyecto. Página 4 de 11
Fallos y/o carencias importantes No dispone de la posibilidad de incluir sentencias condicionales (if else, switch case...) ni de bucles (while, for...) a la hora de desarrollar un test por cuenta del usuario. Este aspecto puede ser necesario en ciertas situaciones, y no disponer de él puede hacer que esta aplicación no nos sea útil. Aun así, existen métodos documentados para solucionar este problema [1]. Durante la ejecución de un test, los pop ups que puedan aparecer fruto de la ejecución de una función JavaScript no aparecerán de forma visual, pero sí que estarán presentes, por lo que en caso de que una de estas ventanas apareciera y tuviera una opción de confirmación, habría que programar dicha confirmación de forma automática. Esto es debido al código JavaScript incluido en la implementación de Selenium IDE. Página 5 de 11
USABILIDAD Diseño de la interfaz El diseño de la interfaz es sencillo, un diseño básico para toda aplicación de estas características. Como herramienta de ejecución de casos de prueba y a su vez entorno de desarrollo, dispone de los siguientes elementos, algunos de ellos fundamentales: URL de la página: Dirección de la página principal sobre la que se está ejecutando el test. Barra de acceso rápido: Conjunto de botones a través de los cuales pueden manejarse la herramienta de forma rápida y sencilla (ejecución de test, pausa de la ejecución, etc.). Menú de tests creados: Menú en el que se recogen los tests creados por el usuario y los cargados en la herramienta, lo cual ofrece un rápido acceso a los mismos. Cuadro para la definición de tests: Listado de comandos de Selenium IDE que componen un test definido por el usuario o cargado en la aplicación. Además, es posible acceder al código del test. Muestra de resultados: Se dispone de un cuadro, como el incluido en todo entorno de desarrollo, que da feedback al usuario que ejecuta el test. En este cuadro se muestra, entre otras cosas, el log de resultados, que incluye los errores encontrados durante la ejecución del test y el resto de resultados obtenidos. Facilidad de uso La interfaz y funcionalidad de la herramienta demuestran que es sencillo utilizarla tanto si conoces su funcionamiento como si no. La definición de tests se efectúa de una forma sencilla e intuitiva, componiéndose de un listado de comandos que se incorporan al test a través de un formulario en el que se especifican todos los datos necesarios para la correcta definición del comando. Accesibilidad Esta herramienta no dispone de herramientas de accesibilidad propias, siendo necesario recurrir a las incorporadas por el sistema operativo. Página 6 de 11
PORTABILIDAD / ADAPTABILIDAD Plataformas disponibles Selenium IDE se encuentra disponible para casi cualquier sistema operativo. La condición para que la herramienta sea compatible con el sistema operativo es que éste soporte el navegador Firefox, de Mozilla. Esto es debido a que Selenium IDE está desarrollada como una extensión de dicho navegador, siendo condición indispensable el soporte a la instalación y la correcta ejecución del mismo. Plugins Esta aplicación dispone tanto de plugins oficiales [2] como de extensiones desarrolladas independientemente por cualquier usuario [3]. Página 7 de 11
RENDIMIENTO Equipo de pruebas Sistema operativo: Ubuntu 11.10 Oneiric Ocelot Procesador: AMD Opteron 244 Memoria RAM: 1 GB Tarjeta Gráfica: nvidia Corporation NV18GL Consumo de memoria El consumo de memoria de la herramienta Selenium IDE durante su ejecución se ha monitorizado a través del proceso del navegador Mozilla Firefox mediante el cual se ejecuta. El consumo medio ha sido de unos 90 MB, durante un intervalo de tiempo de aproximadamente 1 minuto y provocando un cierto grado de estrés en la aplicación mediante la ejecución continua y repetida de un mismo test. Velocidad de ejecución La velocidad de ejecución y de uso es, en general, muy fluido. No se ha detectado en ningún momento que la aplicación experimente retardo alguno durante su ejecución. Página 8 de 11
DOCUMENTACIÓN En la web de Selenium IDE [4] se puede encontrar una amplia y clara documentación [5] acerca del uso de la aplicación, disponible únicamente en inglés. La mayor parte de la información disponible es sobre el uso y configuración de la herramienta. También cabe destacar que se ahonda en dar a conocer aspectos fundamentales de Selenium IDE que agilizan, facilitan y completan los tests a definir por el usuario, además de dar pistas sobre cómo sobreponerse a algunos problemas presentes en la aplicación. Existe documentación para desarrolladores [6], siendo posible la colaboración con el proyecto mediante la aportación de código, además de mediante el desarrollo de extensiones [7] de la funcionalidad de la herramienta por parte de los usuarios. También es posible contribuir al proyecto de muchas otras formas, como escribiendo documentación, reportando bugs o sugiriendo nuevas funcionalidades [8]. Página 9 de 11
COMUNIDAD Número de usuarios Es difícil hacer una estimación del número de descargas de Selenium IDE, ya que se descarga normalmente del apartado correspondiente en la web oficial [9] y no existe una forma de obtener las estadísticas de descarga de esta aplicación. Foros y portales de ayuda Para resolver dudas acerca del producto y obtener soporte, se dispone de una serie de grupos de Google y una sala de chat IRC [10]. Contribuciones Se puede colaborar con el proyecto reportando bugs y sugiriendo funcionalidades o características. Además, puede aportarse código desarrollado por el usuario y extensiones que aumenten la funcionalidad de la herramienta. Se dan más posibilidades de colaboración, como redactando nueva documentación y traducciones de la ya existente. Frecuencia de versiones La primera versión de Selenium IDE de la que se tiene constancia es la versión 0.8.0, cuya fecha de publicación o última modificación aparece como el día 3 de Junio de 2006 [11]. Desde dicha versión, se han ido liberando numerosas versiones con las correspondientes correcciones y mejoras, hasta llegar a la 1.8.1, versión estable actual de la aplicación. Página 10 de 11
REFERENCIAS [1] http://seleniumhq.org/docs/02_selenium_ide.html#sequence of evaluation and flow control [2] http://seleniumhq.org/download/ (apartado 'Selenium IDE Plugins') [3] http://wiki.openqa.org/display/sel/contributed+user Extensions [4] http://seleniumhq.org/projects/ide/ [5] http://seleniumhq.org/docs/02_selenium_ide.html [6] http://wiki.openqa.org/display/src/developer%27s+guide [7] http://release.seleniumhq.org/selenium core/1.0/reference.html#extending selenium [8] http://seleniumhq.org/about/getting involved.html [9] http://seleniumhq.org/download/ [10] http://seleniumhq.org/support/ [11] http://release.seleniumhq.org/selenium ide/ Página 11 de 11