Con la creciente oferta de aplicaciones que tienen su ambiente en “La Nube” o “Cloud”, cada vez se vuelve más importante desarrollar una buena estrategia de Cloud Testing.
Cloud Testing hace referencia a realizar pruebas de recursos y servicios que están disponibles “a demanda” en un ambiente Cloud. También incluye la posibilidad de realizar todo el proceso de pruebas desde la nube utilizando los distintos servicios o herramientas para crear la infraestructura necesaria por un menor costo, ya que solamente se paga por lo que se utiliza.
Cuando se trata de ofertas en Cloud, al igual que en ambientes “on-premises” o locales, es fundamental asegurarse de que el servicio o producto cumpla con todos sus requerimientos, tanto funcionales como no funcionales.
Si bien es cierto que a nivel funcional se realizan las mismas pruebas a la aplicación o servicio si es “on-premise” o “cloud-based”, en las pruebas no funcionales se debe tener en cuenta los factores diferenciadores de un ambiente local a uno en la nube.
Algunos aspectos que se deben tener en cuenta al momento de realizar pruebas en aplicaciones “cloud-based” son:
Seguridad: Debido al hecho de que en Cloud todo está disponible en todo momento, es fundamental asegurarse de que la información sensible no pueda ser accedida por usuarios sin permisos y que la privacidad de todos los usuarios permanezca intacta. Por esta razón se recomienda considerar las siguientes como pruebas básicas:
- Cloud Based System Configuration Tests para validar accesos seguros.
- Ataques rápidos con Pruebas de Penetración
- SQL Injection, URL Guessing, Cross-Site Scripting
Escalabilidad y Elasticidad: Se realizan pruebas para asegurar que el servicio tiene la capacidad de hacer crecer o decrecer las características físicas. Una prueba básica que se debe realizar es la Prueba de Balances de Carga ya que es importante validar que los recursos se agranden o compriman dependiendo de la carga.
Recuperación en caso de desastre: Una de las ventajas que ofrece Cloud es la posibilidad de tener el servicio con “disponibilidad en todo momento”. Es importante realizar pruebas que provean métricas acerca de qué tan rápido se detecta una falla, qué tan rápido se recuperan los servicios y cuál es el comportamiento del sistema durante y después de cualquier tipo de situación como cortes de red, averías debido a cargas extremas, fallas del sistema, entre otros factores.
Rendimiento: Las pruebas de rendimiento que se realizan en aplicaciones o servicios “cloud-based” son las mismas que se realizan en aplicaciones “on-premises” pero la diferencia está en el enfoque que se les da.
Algunas de las pruebas más importantes a realizar son:
- Pruebas de carga para validar la cantidad de instancias necesarias para que el rendimiento de la aplicación no se vea afectado en los momentos de mayor afluencia de usuarios.
- Pruebas para conocer el límite de usuarios por instancias dependiendo de su tamaño.
- Pruebas para monitorear la experiencia del usuario en momentos de carga para tener datos como tiempo de respuesta, tiempo de transacción y la tasa de transferencia efectiva.
Ya sea en ambientes locales o en Cloud, los servicios y aplicaciones siempre deben contar con una buena estrategia de pruebas que se adecúe a las diferentes características y situaciones que se presentan en cada uno de los ambientes.
Cloud ha venido a revolucionar la industria con una gran cantidad de servicios y posibilidades de negocio, sin embargo, esto también viene con riesgos y situaciones que no se presentaban en los ambientes “on-premises” y que se deben tomar en cuenta como parte del proceso de aseguramiento de la calidad.