Modelado de escenarios a partir de logs W3C

Presentamos una nueva técnica para la generación de escenarios para pruebas de performance de aplicaciones y servicios web. La misma se basa en la generación de escenarios realistas del uso del sistema, mediante el procesamiento de los logs obtenidos del servidor de aplicación. Esta técnica permite, por ejemplo, probar diferentes escenarios de expansión de cantidad de usuarios, o ensayar plataformas de hardware alternativas para un sistema.

La simulación está basada en un modelo de Markov de largo variable que se estima a partir de los logs, generando simulaciones que son estadísticamente similares al comportamiento de usuarios reales.

Prerrequisitos

Los prerrequisitos inherentes a la aplicación de esta metodología son:

  1. Disponer de logs en formato W3C de la aplicación por un período que capture satisfactoriamente el uso real de la aplicación, por ejemplo un mes.
  2. Implementar un modelo  de uso realista (RUM del inglés realistic unified model) para las funcionalidades que se desean incluir en la prueba, que permitirá localizar su utilización en los logs.

Generación de escenarios

Contamos con una herramienta web desarrollada en Java/Spring que permite ingresar el modelo RUM y los logs W3C, a partir de los cuales se ejecutarán los procesos de parseo y simulación, obteniendo como resultado un CSV con el guión para la cantidad de usuarios virtuales que se deseen ejecutar. El guión incluirá la lista ordenada de funcionalidades del RUM a invocar, así como los tiempos de espera involucrados en cada transacción.

Ejecución de pruebas

El resultado de la generación de escenarios es independiente de la herramienta que se desee utilizar para ejecutar las pruebas, por lo tanto existe total libertad para escoger la herramienta de testing. La ejecución del guión deberá ser implementada en el lenguaje de scripting utilizado por la herramienta escogida. Se cuenta con un generador de scripts en JMeter que mapea está nueva técnica.

Ventajas de la metodología

La principal ventaja que obtenemos de la aplicación de esta metodología y herramientas es la de generar escenarios realistas que están basados en el uso real de la aplicación.

El proceso de simulación nos asegura que la probabilidad de aparición de cada funcionalidad y el orden en el que éstas aparezcan será estadísticamente representativo del uso que realmente se le da a la aplicación bajo prueba por parte de los usuarios.

Este trabajo es uno de los frutos de una intensa investigación en el marco del proyecto de grado “Modelado y ejecución de pruebas de performance” y años de experiencia en distintas áreas. El proyecto desarrollado por el Ing. Nicolas Diaz y Gabriel Barbartto fue tutoreado por el Dr. Ing. Álvaro Martín, Ing. Gustavo Vázquez e Ing. Gustavo Guimerans.

Gustavo Guimerans

Curso online “Puertas abiertas al testing” gratis

Para todos aquellos que quieran conocer de qué trata esta apasionante disciplina o conocer cómo el CES concibe esta profesión se publicó Puertas abiertas al testing.

Es un curso que presenta una introducción general sobre el testing y sobre diferentes tipos de pruebas.  Está disponible en la plataforma de capacitación del CES, abierto a todo el mundo.

Los cursos de la Carrera de Testing del CES utilizan la plataforma de la misma forma incorporando además foros, chats, videoconferencias, ejercicios teóricos y con especial énfasis, ejercicios prácticos.

Esperamos que lo recorran y lo disfruten.

La aventura de enseñar testing

Desde un pequeño país que como decía el escritor argentino Jorge Luis Borges, pone mucho tesón en diferenciarse… y que tiene algunas curiosidades… surge esta idea singular: lanzar una carrera de testing.

¡La carrera de testing propuesta por el Centro de Ensayos de Software se inicia el 2 de mayo!

Es sin duda un punto de partida, quizás uno de los más ambiciosos que el CES, con su vocación de abordar problemas inéditos, se ha planteado en su relativamente corta trayectoria.

Pero también es un punto de llegada, un jalón fundamental en esta exploración que hemos emprendido juntos, la de conocer para testear y testear para conocer, como mencionamos tantas veces.  Enseñar y aprender testing, de eso se trata.

Comenzamos dando una asignatura opcional en la carrera de Ingeniería en Computación de  la Facultad de Ingeniería, Universidad de la República.  Incorporamos posteriormente nuevos temas para transmitir y transferir la experiencia del CES suministrando servicios de testing funcional, de performance y de automatización del testing funcional en diferentes industrias.

Ampliamos los cursos al ámbito de la Comisión de Posgrados y Actualización Profesional, y preparamos cursos comerciales, para informáticos y usuarios calificados. Fue la etapa de difusión del testing.

¡Más práctica!… fue el clamor unánime, y consideramos que era imprescindible ofrecer un “Ciclo de testing en la práctica” y así lo hicimos.

Luego nos preguntamos cómo podríamos contribuir mejor a difundir una cultura de testing, a impregnar de testing las actividades de construcción o adquisición de software. Lanzamos entonces el  curso “Testing para desarrolladores” que ya hemos impartido en varias instancias en Uruguay y México.

Cada uno de estos hitos constituyó un nuevo desafío, nuevas interrogantes y generó el esfuerzo por dar más y mejores respuestas.

¿Cómo continuar profesionalizando el testing? ¿Cómo demostrar cuán creativo e interesante es el testing? ¿Cómo demostrar el retorno de la inversión en testing? ¿Cómo dar continuidad al aprendizaje? ¿Cómo profundizar en conocimiento, experiencia y especialización? ¿Cómo explicar mejor y evaluar lo aprendido? ¿Cómo garantizar que lo aprendido puede ser aplicado en la realidad, en aplicaciones de gran porte, en infraestructuras complejas? Muchas veces, a mí personalmente, las dudas me impidieron avanzar. Pero mis compañeros del CES, los que comparten conmigo la labor cotidiana, me impulsaron, inspiraron y trabajaron para que este nuevo hito, sea a la vez un punto de llegada y de partida…

Tendremos seguramente muchos aciertos y también errores que esperamos superar juntos. Pero estamos convencidos que esta carrera ayudará a quienes se desempeñan como testers de software y a quienes quieren “probar” nuevos horizontes, a profesionalizarse y ser reconocidos por el valor que aportan al compromiso compartido por la calidad y la excelencia.

Mónica Wodzislawski