En arquitecturas orientadas en servicios, la realización de pruebas de Web Services es crucial. El performance, interoperabilidad y la identificación de vulnerabilidades son los pilares de un buen SOA Testing. Solo su comprensión asegura que la infraestructura sea robusta, escalable, interoperable y segura.
Los tipos de pruebas mas comunes que deben ser aplicadas en este tipo de arquitecturas son:
Pruebas carga: El objetivo de las pruebas de carga es determinar el rendimiento del sistema bajo condiciones de carga que se aproximan a la realidad esperada en producción. Esto nos permite:
- Determinar la escalabilidad del sistema en TX / seg vs. #Usuarios concurrentes.
- Validar que el dimensionamiento de la infraestructura de hardware fue el adecuado.
- En este tipo de pruebas, a diferencia de las pruebas de estabilidad, la carga se va aumentando cada vez más para determinar la escalabilidad del sistema.Una vez determinada la escalabilidad de la plataforma, se usa este valor para las pruebas de estabilidad.
Pruebas de Volumen: Encontrar debilidades en el sistema al momento de manejar grandes volúmenes de datos durante prolongados períodos de tiempo, el objetivo principal es determinar si la plataforma de integración se degrada o deja de funcionar al manejar grandes volúmenes de datos.
Pruebas de Estabilidad: Miden la estabilidad de los servicios con una fuerte carga sostenida en el tiempo (la carga no cambia). Los servicios no deben fallar y los tiempos de respuesta para una carga constante deben permanecer constantes. Gráfica tipo: tiempo de respuesta de un WS vs. tiempo (debe tender a líneas de pendiente 0).
Las aserciones que deben considerarse para realizar pruebas unitarias en web services son:
- Conformidad con el XML Schema.
- Contenido simple, Expresiones Xpath.
- SOAP Fault.
- Transacción por segundo (TPS).
- Máximo Tiempos de Respuesta (Response Time).
- Máximo numero de errores.
- Average o promedio.