1 Cloud Computing
El Cloud Computing ha significado un cambio en la forma de suministrar y acceder a los Sistemas de Información. Los entornos Cloud Computing consiguen generar beneficios para proveedores y usuarios por su flexibilidad, transparencia y ahorro de costes.
Paralelamente, se han desarrollado las técnicas de Cloud Testing, existiendo actualmente una gran variedad de herramientas y suministradores que permiten realizar pruebas de rendimiento y carga haciendo uso de plataformas, infraestructura y software en modalidad de uso bajo demanda.
2 Cloud Testing
Podemos definir el Cloud Testing como el conjunto de técnicas y herramientas de testing que utilizan recursos que se encuentran en la nube. Por recursos, debemos entender cualquier elemento (hardware, software e infreestructura) necesario para llevar a cabo las pruebas.
Desde el punto de vista del usuario final, el Cloud Testing se encuentra ligado a la capa SasS (Software as Service) del modelo Cloud Computing, permitiendo contratar el uso de una herramienta que se encuentra distribuida en Internet mediante la modalidad de pago por uso.
Capas del modelo Cloud Computing |
3 Load Test en Cloud.
Actualmente existen empresas que permiten contratar sus servicios en entornos Cloud Computing para posteriormente inyectar la carga sobre la aplicación en pruebas desde servidores que se encuentran distribuidos en la nube.
El suministrador de un servicio de Cloud Testing, proporciona una consola virtual para poder seguir la evolución de las pruebas, y una vez finalizadas suministrará los resultados a los ingenieros de pruebas para que puedan ser analizados.
La utilización de soluciones Cloud Testing, no implica cambios significativos en la forma de realizar las pruebas de rendimiento. Puede ser utilizada la misma metodología que seguiríamos si tuviéramos nuestra herramienta de pruebas instalada localmente, aunque será necesario tener en cuenta algunos aspectos y limitaciones.
El Cloud Testing no involucra únicamente las pruebas de carga y rendimiento. También pueden ser utilizadas en la automatización de pruebas, pruebas de seguridad, funcionales, etc...
4 Ventajas de Cloud Testing
Las soluciones Cloud Testing presentan algunas ventajas respecto a las soluciones tradicionales en pruebas de rendimiento que las hacen muy interesante.
- No implica la contratación de licencias de herramientas de manera fija: contratamos los servicios únicamente cuando estemos involucrados en un proceso de pruebas.
- Flexibilidad: Podemos ajustar a nuestras necesidades aspectos de la herramienta que en un entorno tradicional podría ser limitantes: contratación del número de usuarios virtuales, número de servidores inyectores de carga, duración de la prueba o protocolos de grabación.
- No es necesario el mantenimiento de infraestructuras de pruebas: Con las soluciones Cloud ya no es necesario el mantenimiento de toda la infraestructura de pruebas de rendimiento. La instalación, configuración y mantenimiento de los inyectores de carga la realiza el suministrador.
- Visión de usuario real: La herramientas Cloud, permiten simular usuarios que acceden a la aplicación a través de internet, y no a través de elementos una red corporativa.
- Pruebas sobre Aplicaciones Cloud: Es la solución correcta para realizar pruebas sobre aplicaciones que se encuentran distribuidas en entornos Cloud
- Alto ancho de banda disponible para las pruebas: Teoricamente disponemos de un ancho de banda de gran capacidad para realizar las pruebas, por lo que es una solución ideal para probar sistemas de gran capacidad o que se encuentren en entornos productivos.
5 Planificación de pruebas de rendimiento en Cloud Testing
Antes de comenzar un ciclo de pruebas de rendimiento con una solución Cloud Testing debemos tener en cuanta algunos aspectos:
- La elección de la herramienta se debe realizar en función de la aplicación que vamos a probar. La tecnología, arquitectura y funcionalidad de la aplicación marcarán tienen implicaciones directas sobre la herramienta en SasS que seleccionamos.
- La inyección de carga se realiza desde Servidores que se encuentran en localizaciones geográficas que se pueden ver afectados por retardos de red.
- Los Servidores que utilizamos son compartidos por otras aplicaciones y usuarios.
- Será necesario deshabilitar los mecanismos de seguridad de la aplicación bajo pruebas ya que nuestra pruebas pueden ser consideradas como un ataque.
6 Conclusión
El Cloud Testing presenta ventajas a la hora de preparar un ciclo de pruebas de rendimiento. Estas ventajas son principalmente económicas y se encuentran asociadas a los gastos en licencias e infraestructura. Desde el punto de vista técnico, la adopción de una solución SasS de Cloud Testing no implica cambios en nuestra metodología de trabajo, ya que únicamente afecta a los lugares desde donde se inyecta la carga.
Antes de realizar un ciclo de pruebas, debemos realizar un estudio detallado sobre los diferentes suministradores para contrastar que la tecnología de la aplicación bajo pruebas, su funcionalidad y lugar geográfico de los inyectores es soportada por la herramienta Cloud.
Por último, una vez finalizadas las pruebas debemos asegurarnos que los resultados que hemos obtenidos no están afectados por elementos externos: latencias de red, sobrecarga de los servidores inyectores de carga, etc..
7 Referencias
- http://www.slideshare.net/ramgarg/saa-s-testingoverviewppt-5072671
- http://performancexpert.com/px
- http://eruano.wordpress.com/2011/06/18/cloud-computing-cloud-testing/
Buenas, tengo una duda respecto a la ejecución bajo Cloud Testing: no es la primera vez que durante unas pruebas hemos tenido que realizar la no muy saludable práctica de "grabar en caliente" por cambios que el mismo cliente no ha informado hasta el momento de la ejecución, una vez subido el script para la ejecución presupongo que no se puede modificar hasta la finalización de la prueba, ¿supondría tener que volver a pagar por la prueba? No se si me he explicado del todo bien.
ResponderEliminarSaludos
Hola,
ResponderEliminarte has explicado perfectamente. Generalmente existen en el mercado diversidad de herramientas cloud que trabajan de maneras diferentes, pero en general la mayoría permiten la grabación y comprobación de scripts desde el puesto local. De esa forma, solo "pagamos" por la inyección y recogida de resultados. Pudiendo realizar las tareas de grabación y "scripting" desde nuestro puesto local.