lunes, 24 de febrero de 2014

Selenium 2 para automatización de pruebas de software

¿Quieres aprender cómo utilizar Selenium para automatizar tus pruebas de software? Inscríbete en el curso: Automatiza tu navegador. Selenium WebDriver con Python icon

Imagen de: Selenium HQ

En tiempos en que las aplicaciones se hacen cada vez más interactivas y dinámicas en su interacción con el usuario por medio de las interfaces gráficas, y en el que muchas organizaciones están utilizando alguna forma de metodologías ágiles, la automatización de pruebas de software se está convirtiendo prácticamente en un requisito para los proyectos de desarrollo de software.

Existe un número de herramientas comerciales y de código abierto para la automatización de pruebas de software. Selenium es una de las más difundidas. En este artículo contestaremos algunas preguntas sobre Selenium 2, también conocido como Selenium WebDriver, explicaremos en qué consiste la automatización de pruebas, Que es Selenium, sus orígenes, Como se automatizan las pruebas y sus patrones de uso.

PMOInformatica.com, La Oficina de Proyectos de Informática, presenta a continuación Selenium 2 para automatización de pruebas de software:

Más Información sobre Software Testing

Visita nuestra página de Recursos en Pruebas de Software

Que es la automatización de pruebas de software

Significa usar una herramienta de software para ejecutar pruebas de calidad de software repetidas veces sobre la aplicación que se esté probando. Tiene muchas ventajas, como la capacidad de repetir las pruebas una y otra vez, ejecutándolas con mayor velocidad.

Por ejemplo, las pruebas funcionales de regresión (uno de los tipos de pruebas de software), con frecuencia implican repetir las mismas pruebas, sin que necesariamente se modificara los componentes de software, por lo cual la Automatización de Pruebas de Software puede ser de gran utilidad.

La automatización de pruebas de software requiere de conocimientos y habilidades especificas que deben adquirir los especialistas en software testing.

Que es Selenium

Selenium es una herramienta de pruebas automatizadas de aplicaciones web, funciona desde un navegador web y permite crear las pruebas automatizadas de dos formas, escribiéndolas en lenguaje de programación (Scripting) o utilizando el método de grabación y playback de la acción del usuario. Es de código abierto y el sitio oficial de Selenium.

Entre los beneficios de Selenium destacan el ser de código abierto, ser gratis, permite probar desde varios navegadores, permite representar con exactitud la experiencia del usuario, se pueden escoger entre distintos lenguajes de programación para el Scripting y permite probar aplicaciones web dinámicas que usen CSS, AJAX y JavaScript, con respuesta dinámica al comunicarse con el Backend.

La última versión de Selenium es Selenium 2, también conocido como Selenium WebDriver.

Los orígenes de Selenium

Fue desarrollada por Jason R. Higgins y su equipo, quienes se encontraban trabajando en un proyecto en Thoughtworks (una empresa) y necesitaban probar una aplicación que contenía componentes en HTML y AJAX. Ninguna de las herramientas para ese momento soportaba AJAX o HTML, por lo cual decidieron fabricar la suya propia, que luego convirtieron en un proyecto de código abierto.

Cuáles son las herramientas de la Suite Selenium
  • Selenium Remote Control RC (Selenium 1): Principal proyecto Selenium durante mucho tiempo, antes que la fusión entre WebDriver y Selenium trajera Selenium 2. Aún tiene soporte y proporciona funcionalidades que pudieran no estar en Selenium 2, incluyendo soporte de varios lenguajes (Java, JavaScript, Ruby, PHP, Python, Perl y C#) y de casi todos los navegadores.
  • Selenium WebDriver (Selenium 2): Representa lo nuevo de Selenium, con nuevas funcionalidades y un nuevo API más cohesionado y orientado a objetos. Fusiona lo mejor el API de WebDriver y Selenium 1, y proporciona flexibilidad para migrar los Tests. Igualmente, Selenium 2 aún utiliza la misma interfaz de Selenium 1 para poder ser compatible.
  • Selenium IDE: Es una herramienta para hacer prototipos de Scripts de Pruebas, un plugin de Firefox y proporciona una interfaz fácil de usar. Posee una funcionalidad de “grabación”, la cual registra las acciones del usuario en la medida en que son realizadas y luego las exporta como un Script de pruebas reusable, en alguno de los muchos lenguajes de programación soportados por Selenium y que luego pueden ser ejecutados.
  • Selenium Grid: Permite ejecutar muchas pruebas de un mismo grupo en paralelo o pruebas en distintos ambientes de pruebas integrales. Tiene la ventaja que un conjunto de pruebas muy grande puede dividirse en varias maquinas remotas para una ejecución más rápida, o si se necesitan repetir las mismas pruebas en distintos ambientes de pruebas integrales.

Cual herramienta es recomendable usar

Muchas personas empiezan con el Selenium IDE, el cual es ideal sino se tiene mucha experiencia en programación o lenguaje de Scripting. Con el IDE, se pueden crear pruebas sencillas rápidamente.

Para sacar el máximo provecho no se recomienda quedarse solo con el Selenium IDE, sino que debe usarse Selenium 2 o Selenium 1 para desarrollar Scripts y Frameworks de pruebas en alguno de los lenguajes de programación. Para quienes estén comenzando a usar Selenium en este momento, definitivamente es recomendable implementar en Selenium 2, dado que está será el proyecto que tendrá soporte en el futuro.

Curso de Selenium




¿Problemas con proyectos de software muy grandes en los cuales tienes que repetir las mismas pruebas manuales una y otra vez? 



Como se automatizan las pruebas en Selenium usando un lenguaje de programación

Selenium permite escribir las pruebas en varios lenguajes, entre ellos Ruby, Java, C#, Perl, Python e inclusive en HTML puro (llamado Selenesio).

Para cada lenguaje existen distintas instrucciones de programa que te permitirán ejecutar interacciones con la aplicación web, tales como abrir una ventana de navegador, navegar hacia la dirección de HTTP donde esté ubicado tu ambiente de pruebas integrales, acceder a la página y a sus componentes para ingresar datos, presionar el botón enviar, recibir respuestas, evaluar los mensajes de respuesta y continuar con el flujo de proceso en distintos escenarios, entre otros.

Usando Ruby para automatizar las pruebas con Selenium

Ruby es una excelente opción para Ingenieros de Pruebas Funcionales (Testers), dado que es un lenguaje de programación fácil de aprender y en el cual se pueden desarrollar Scripts muy rápido.

Pasos para Crear y ejecutar pruebas Selenium usando lenguaje de programación

El procedimiento consiste en:

  • Escribir el código de pruebas en el lenguaje seleccionado.
  • Ejecutarlo usando Selenium Remote Control o Selenium 2.
  • Puedes desarrollar tu propio Framework y después utilizarlo en otros Scripts.
  • Puedes utilizar Grid para ejecutar las mismas pruebas en paralelo en distintos ambientes de pruebas o para dividir los casos de prueba.
Aquí dejamos un ejemplo de prueba automatizada escrita en Ruby:

Imagen de: Selenium HQ
    Una vez se ha escrito el Script, el próximo paso es asegurarse que el Servidor Selenium esté encendido. Luego se ejecuta el Script, en este caso de Ruby, como se ejecutaría cualquier otro Script.

    Más información en el sitio de Documentación de Selenium HQ.

    Como se automatizan las pruebas en Selenium usando la funcionalidad de Record / Playback

    Se utiliza el Selenium IDE, el cual es capaz de registrar las acciones que está realizando el usuario por pantalla. Se comienza encendiendo la grabación, luego se utiliza el Navegador dirigiéndose a la dirección URL del ambiente de pruebas integrales de software, se ejecuta como si se estuviera haciendo una prueba funcional, ingresando datos en pantalla, enviando la información y evaluando las respuestas. Todo esto será registrado por el IDE.

    Posteriormente, se podrá exportar la prueba funcional realizada en la forma de un Script en cualquiera de los lenguajes de programación usados.

    Primero, se crear los casos de prueba como pruebas funcionales, usando el Selenium IDE para grabarlos.

    Imagen de: Selenium HQ

    Luego los casos se pueden ejecutar utilizando la función de Playback del IDE.

    Imagen de: Selenium HQ
    También se puede exportar el caso grabado a un Script en Ruby o cualquiera de los otros lenguajes soportados, para luego ejecutar la prueba como si se tratara de un caso creado en Lenguaje de Programación.

    Más información en el sitio de Documentación de Selenium HQ.

    ¿Y tú? ¿Qué opinas?

    ¿Tienes alguna pregunta o comentario sobre Selenium WebDriver que te gustaría compartir con el grupo?, ¿Cuáles son las ventajas de escribir tus pruebas en Scripting vs. Usar el IDE?, ¿Qué lenguaje de programación utilizas y porque?. Te invitamos a dejarnos comentarios en la Web de La Oficina de Proyectos de Informática (pmoinformatica)  (puedes firmar tu comentario con la dirección de tu web si así lo deseas). Asimismo, te invitamos a suscribirse por los distintos canales, incluyendo lista de correo electrónico, al Twitter @PMOInformatica, a nuestra página de Facebook o al feed RSS.

    Referencia

    Nayak, R. Selenium Web Test Automation Tool
    Selenium HQ. Introduction
    Software Testing Mentor. Introduction to Selenium Automation

    Otros artículos en “La Oficina de Proyectos de Informática”

    Pruebas de Software


    Desarrollo de Software para Teléfonos Móviles y Tabletas


    Software y Herramientas


    Gestión de Desarrollo de Software

    4 comentarios :

    1. Existe una aplicación similar a Selenium que sirva para hacer pruebas en aplicaciones de escritorio?

      ResponderEliminar
      Respuestas
      1. eggplant tool for testing, tabaja con imágenes de la aplicación

        Eliminar
    2. Fredi,

      ¿Te refieres a herramientas de Test Management o a la figura Test Manager dentro del área QA?

      Para herramientas tienes un clásico como TestLink que es open source.

      Saludos

      ResponderEliminar

    Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.