1 ¿Qué es SOA?
SOA (Service-Oriented Architecture) es un concepto de diseño de arquitectura en el cual se intenta alinear las TI con las necesidades de negocio mediante la creación de servicios de negocio y tecnológicos que proporcionan la lógica para construir o integrar aplicaciones de manera rápida y flexible.
Los beneficios que aporta SOA:
- Reducción de costos de integración
- Reutilización
- Reduce el riesgo de negocio.
La mejor implementación de SOA es mediante servicios web (web services), pero esto no significa que sea la única tecnología orientada a servicios, de hecho se realizan diseños SOA en otras tecnologías como son CORBA o colas de mensajes.
2 SOA Testing
SOA provoca algunos cambios en la forma de realizar las pruebas debido a que:
- Los servicios pueden no tener un interfaz de iteración con el usuario.
- La lógica de negocio se encuentra integrada en los datos de entrada al servicio
- Pueden existir servicios de terceras partes ajenos a la organización.
- Los servicios deben mantener la integridad y reusabilidad.
- Se debe preveer futuros aumentos en el uso de los servicios para evitar problemas de rendimiento.
A continuación se muestra una arquitectura típica de una aplicación que haga uso de diseño SOA. Una aplicación a la que acceden los usuarios hace uso de distintos sistemas en y en el que la comunicación se realiza mediante servicios que interactúan entre ellos.
Arquitectura SOA |
Los usuarios acceden aun frontal que utiliza distintos servicios para proveer la información. Los servicios pueden encontrarse dentro de la propia organización o haber sido publicado por otros proveedores.
3 Fases de SOA Testing
Las particularidades del diseño SOA hace que los procesos de pruebas se adapten a nuevas necesidades. La mejor forma de planificar las pruebas sobre estos sistemas es tratar de dividir la arquitectura en los distintos componentes partiendo de los más sencillos y llegar a los más complejos. Sobre cada una de las fases se realizarán todos los tipo de pruebas necesarias: funcionales, rendimiento, seguridad, interoperabilidad, etc...
3.1 Pruebas Unitarias
Las pruebas unitarias o a nivel de componente de servicio son realizadas generalmente por los desarrolladores. En esta fase se testean cada uno de los componentes básicos de un servicio, tomándolo de manera independiente y aisladamente antes de realizar la integración entre ellos.
3.2 Pruebas a nivel de servicio
En esta fase se testean los servicios una vez ya integrados todos sus componentes. Los objetivos de esta fase son:
- Comprobar que los servicios cumplen los requisitos de nuestro proyecto .
- Comprobar que se cumplen los requisitos de negocio y de operación (tiempo de respuesta, seguridad, capacidad, etc...) de otros procesos que van a utilizar nuestro servicio.
3.3 Pruebas de Integración
En esta fase se realizarán pruebas encaminadas a garantizar que los distintos servicios funcionan de manera correcta manteniendo la integridad en los datos que comparten y que se transfieren entre ellos.
Esta fase de pruebas implica en muchas ocasiones:
- Accesos a servicios externos que proveen de datos a nuestros servicios
- Pruebas sobre elementos de la capa de comunicaciones y a nivel de protocolo de red.
3.4 Pruebas de Sistema.
Son las pruebas que se realizan desde el interfaz de uso de los usuarios y que involucran el sistema completo. En estas prueba se comprueba que el diseño SOA que se ha adoptado cumple los requisitos de negocio y suelen utilizarse también como criterios de aceptación.
Gráficamente, podemos representar las distintas fases de pruebas:
No hay comentarios:
Publicar un comentario