Extensiones para Selenium webdriver

Si trabajas con Selenium y necesitas tener disponible cierta extensión en el navegador lanzado desde el driver, puedes hacerlo fácilmente añadiendo algunas líneas de código a la configuración del driver utilizado. Para hacerlo más elegante, nada como utilizar distintos profiles

  •  Firefox:
FirefoxProfile firefoxWithExtensions = new FirefoxProfile()
File myExtension = new File("/path/to/extension/extension.xpi");
firefoxWithExtensions.addExtension(myExtension)
  • Chrome:
ChromeOptions chromeWithExtensions = new ChromeOptions();
File myExtension = new File("/path/to/extension/extension.crx");
chromeWithExtensions.addExtensions(myExtension)

Pruebas como validación de la ingeniería del software


Excelente texto donde se pone de manifiesto la verdadera importancia y repercusión de las pruebas de software. Se puede debatir muy mucho sobre la similitud o no de la ingeniería del software contra otras ingenierías, pero lo que si debemos tener claro es que por su propia naturaleza, los métodos y procesos aplicados a un desarrollo software distan en gran medida de los empleados en una ingeniería clásica.

 Durante los últimos miles de años, los ingenieros han desarrollado las matemáticas y física que usan para una solución estructural sin tener que construirlo para ver lo que hace.

Sigue leyendo

Modularizar con JMeter

En esto del desarrollo, es por todo conocidos que dividir, importar, reutilizar, … son acciones que nos reportarán un gran beneficio en el futuro, haciendo que nuestro código sea mucho más simple, se mantenga de una manera más sencilla, se eviten inter-dependencias, etc. Trabajando con JMeter en proyectos de cierto tamaño, es normal que el plan de pruebas de rendimiento empiece a crecer a poco que diseñes unos cuantos workflows o tengas numerosas peticiones a tu sistema.

En estos casos, es muy útil identificar aquellos escenarios genéricos que utilices en múltiples sitios, bien sea configuración para distintos escenarios, un conjunto de peticiones que siempre deben hacerse conjuntamente y en el mismo orden, o cualquier otro que consideres reutilizable.  Una vez identificados estos casos, podemos crear un pequeño repositorio de funciones que posteriormente podrás incluir en cualquier punto de tu plan de pruebas, así, si algo cambia, solo tendrás que tocar en un sitio, reduciendo el trabajo y sobre todo la posibilidad de cometer errores.

Cómo modularizar en JMeter

Haremos uso de un par de controladores. El primero de ellos, “Controlador simple”, nos servirá para agrupar todos aquellos recursos que queramos reutilizar, este será nuestro pequeño repositorio. Solo añade un controlador simple, desactiva su ejecución y bajo el, añade los módulos que quieras tener disponibles en el resto del plan de pruebas, utilizando también controladores simples

jmeter_1

Una vez tengamos nuestro repositorio creado, cuando necesitemos incluir ese “trozo” de código en nuestro plan de pruebas, bastará con añadir un “Controlador de módulo” y seleccionar el módulo que queramos incluir en ese punto, quedando el plan de pruebas como sigue.

jmeter_2

Además, tal y como se hace para el resto de controladores, si necesitas añadir alguna particularidad en un determidado punto, bastará con añadir como hijo del controlador aquel elemento que necesites, de modo que sus valores sobrescribirán a los definidos en el módulo importado. Por ejemplo, en la imagen anterior podemos ver como se ha añadido un elemento de configuración de cabecera HTTP, cuyos datos sobrescribirán a los definidos en el módulo inicial.

Con estos pequeños cambios, conseguiremos tener un plan de pruebas mucho más simple y facil de mantener.

Testing – Síndrome del queso suizo

Echando un vistazo a la programación del próximo Swiss Testing Day (http://www.swisstestingday.ch/) me he encontrado con una conferencia sobre un concepto y conocido, pero no por su nombre “oficial”. Se trata del, Síndrome del queso suizo (The Swiss Cheese Syndrome)

En testing, es conocido que un sistema no puede ser probado al 100%. Es muy difícil, por no decir imposible conseguir reproducir todas las casuísticas de uso posibles, por ello, siempre hay huecos (agujeros) que nunca han sido testeados. Que no se vean a simple vista no quiere decir que no existan, o que no pueda darse un caso en el que te encuentres con uno de ellos, de ahí la similitud con un queso suizo.

Evidentemente, a más agujeros, menor calidad de sistema …

Sigue leyendo

SoapUI desde línea de comandos

Si has diseñado un completo plan de pruebas con SoapUI en tu PC y necesitas lanzar este en un sistema sin entorno gráfico, ejecutarlo desde un sistema de integración continua como Jenkins o desde algún script en bash, puedes hacerlo desde línea de comandos de una manera sencilla.

 Instalar SoapUI en Linux

Tan fácil como descargar la versión necesaria desde su web oficial http://sourceforge.net/projects/soapui/files/soapui/4.5.1

# wget http://sourceforge.net/projects/soapui/files/soapui/4.5.1/
soapui-4.5.1-linux-bin.zip/download

# unzip soapui-4.5.1-linux-bin.zip

# cd soapui-4-5-1

Ejecutar una test suite

Podremos lanzar la test suite que deseemos en cada momento, o todas si así lo necesitamos. Si no queremos modificar ningún parámetro de los ya configurados en las pruebas, bastará con ejecutar

# ./bin/testrunner.sh [nombre_proyecto.xml]

Si se quiere lanzar un test case concreto, bastará con indicarlo del siguiente modo

# ./bin/testrunner.sh –s[nombre_test_suite] 
–c[nombre_test_case] [nombre_proyecto.xml]

Sigue leyendo

Gestión de riesgos en pruebas de software

Al igual que un jefe de proyecto debe identificar riesgos y buscar soluciones durante la etapa de desarrollo del software para conseguir los objetivos marcados, el test manager debe identificar los riesgos relacionados con el proceso de pruebas, así como evaluar la criticidad y probabilidad de los mismos. Gracias a este análisis se podrá generar un plan de contingencia.

Algunos de los riesgos más comunes durante la fase de pruebas suelen ser:

  • Falta de recursos y baja competencia en pruebas
  • Falta de los recursos necesarios para ejecutar las pruebas según el plan
  • Tiempo reducido asignado a la fase de pruebas
  • Cambios frecuentes en la definición de los objetivos y alcance del plan de pruebas
  • Falta de coordinación entre los equipos de desarrollo y testing
  • Falta de experiencia con nuevas tecnologías, herramientas, lenguajes de programación, …

Una característica muy deseable de un equipo de pruebas es la pro-actividad, Incluso antes de que el software comience a desarrollarse, el equipo puede involucrarse en las distintas etapas de definición para conocer más en profundidad el proyecto así como comenzar a definir estrategias de pruebas.

Medidas a tomar para obtener los mejores resultados podrían ser:

1. Intervención temprana del equipo de pruebas en el proyecto

La inclusión del equipo de pruebas en las etapas iniciales del desarrollo del producto ayudará a obtener mayor conocimiento del mismo así como permitirá detectar posibles defectos en etapas tempranas, por lo que el coste de resolución de los mismos será inferior.

Sigue leyendo