Ir al contenido principal

Testing de aceptación automatizado con selenium


La comunidad de ingeniería del software, está dando cada vez más importancia a las metodologías ágiles, y estas a su vez le dan un sitial de gran importancia al Software Testing de Aceptación Automatizado. Un ejemplo de esta situación es el “Desarrollo Guiado por Pruebas (Test Driven Development)”, método en el que el código de programa es desarrollado de acuerdo a casos de prueba previamente definidos.


Asimismo, Selenium WebDriver se ha convertido en uno de los principales exponentes en la Automatización de Software Testing, por ser esta de código abierto y soportar múltiples lenguajes de Scripting como Ruby, Java, Perl, entre otros.

¿Por qué se necesita automatizar el Software Testing al aplicar metodologías ágiles?
  • Todas las metodologías ágiles implican constantes iteraciones, en las cuales el código de programa se modifica constantemente.
  • En cada iteración, además de expandir las funcionalidades del sistema, podemos realizar Refactorizaciones para optimizar funcionalidad que ya desarrollamos y eliminar deuda técnica.
  • Esto implica la necesidad de realizar constantemente pruebas regresión, dado que al modificar código desarrollado previamente, debemos revisar que continua funcionando adecuadamente.
  • Con frecuencia, esto implica:
    • Constantes pruebas de regresión.
    • Esfuerzo duplicado en pruebas.
    • Todos en el equipo terminan haciendo pruebas manuales, inclusive desarrolladores, Testers y el cliente.

Entonces, ¿Se necesita la automatización de pruebas en metodologías ágiles?

  • La respuesta es un sí definitivo, dado que muchas veces se pueden hacer cambios en la base de código y refactorizaciones, inclusive varias veces al día.
  • Cuando el software es complejo y tiene muchas interfaces con otros sistemas, es imposible seguir el ritmo de las constantes iteraciones sin automatizar las pruebas de regresión.

Como puede ayudarme Selenium WebDriver para esto
  • Una de las principales dificultades al utilizar herramientas de prueba en el TDD, es que el método de registrar (capturar) la acción del usuario y luego reproducirla no puede usarse debido a que el sistema no está implementado al momento de diseñar los casos de prueba.
  • En este sentido, el API de Selenium soporta la implementación manual de casos de prueba, los cuales pueden definirse en lenguajes de programación como Ruby, Java, entre otros, de esta manera, el desarrollo de los casos de prueba automatizados se puede realizar antes que el software que se va a probar esté implementado.
  • Casos de prueba escritos en un lenguaje de programación determinado, se pueden transformar a otros lenguajes, de esta forma, se puede integrar Selenium por ejemplo con JUnit.
  • Es importante destacar que Selenium está específicamente diseñada para probar solamente aplicaciones web.

Selenium en el ciclo de Test Driven Development (TDD)

Selenium WebDriver intervendría en el ciclo de Desarrollo TDD como se muestra en la figura.

Comentarios

Entradas populares de este blog

Gestión de Proyectos: 5 tareas clave para dirigir la fase de ejecución

Independientemente del enfoque de gestión de proyectos adoptado, bien sea el predictivo tradicional, o los nuevos enfoques ágiles, el llevar a feliz término un proyecto implica más que hacer una buena planificación y medición de los avances. En este artículo exploramos algunas tareas clave que deben convertirse en hábitos para el Jefe de Proyectos durante la fase de ejecución, abarcando aspectos como asegurar que todas las partes tengan el mismo entendimiento, guiar y apoyar al equipo, eliminación de impedimentos, resolución rápida de problemas, saber reconocer las señales de alerta y tomar acciones en función a ellas.

Crud con C# y SQL Server

  Para los que recién empiezan a desarrollar aplicaciones de escritorio, siempre tienen dudas de como realizar un CRUD ( Create, Read, Update y Delete ) de un registro, En esta oportunidad lo haremos con C# y SQL Server. Hay muchas formas de hacer un CRUD y con distintos  elementos windows forms. Lo importante es saber hacer un INSERT y luego procederemos con el UPDATE, DELETE y el SELEC para buscar un registro.   Crearemos el siguiente formulario con sus botones para cada acción del CRUD:   Usaremos los siguientes elementos:  Creamos la Base de Datos:  create database Productos;  go use Productos;  go create table postres (  id int not null identity,  nombre varchar(50) not null,  precio decimal(6,2),  stock float,  constraint pk_postres primary key(id) );   Ahora vamos con nuestro código. En los comentarios describo lo que hago en cada bloque de código:      // Instancio las Directivas. usin...