¿Qué son las pruebas SOA? Tutorial con ejemplo

¿Qué son las pruebas SOA?

La prueba de arquitectura orientada a servicios (SOA) es una prueba de estilo arquitectónico SOA en la que los componentes de la aplicación están diseñados para comunicarse a través de protocolos de comunicación, normalmente a través de una red.

En este tutorial, aprenderá:

  • ¿Qué es SOA?
  • ¿Qué es el servicio?
  • Pruebas SOA
  • Estrategia para pruebas SOA
  • Métodos de prueba SOA
  • Desafíos en las pruebas SOA
  • Herramientas de prueba SOA
  • Casos de uso de pruebas SOA

¿Qué es SOA?

SOA es un método de integración de aplicaciones y procesos comerciales para satisfacer las necesidades comerciales.

En Ingeniería de Software, SOA proporciona agilidad y flexibilidad a los procesos comerciales. Los cambios en el proceso o la aplicación pueden dirigirse a un componente en particular sin afectar a todo el sistema.

Los desarrolladores de software de SOA desarrollan o compran fragmentos de programas denominados SERVICIOS.

¿Qué es el servicio?

  • Los servicios pueden ser una unidad funcional de aplicación o proceso comercial, que puede ser reutilizado o repetido por cualquier otra aplicación o proceso.

    (Por ejemplo, en la imagen de arriba, Payment Gateway es un servicio que puede ser reutilizado por cualquier sitio de comercio electrónico. Siempre que sea necesario realizar un pago, el sitio de comercio electrónico llama / Solicita el servicio de Payment Gateway. Una vez realizado el pago en una puerta de enlace, se envía una respuesta al sitio web de comercio electrónico)

  • Los servicios son fáciles de ensamblar y reconfigurar los componentes.
  • Los servicios se pueden comparar con los componentes básicos. Pueden construir cualquier aplicación necesaria. Agregarlos y eliminarlos de la aplicación o del proceso comercial es fácil.
  • Los servicios se definen más por la función comercial que realizan que como fragmentos de código.

Servicios web

Los servicios web son componentes de aplicaciones independientes, que están disponibles en la web.

Se pueden publicar, encontrar y utilizar en la web. Pueden comunicarse a través de Internet.

  1. El proveedor de servicios publica el servicio en Internet.
  2. El Cliente busca un servicio web en particular en el Registro de servicios web.
  3. Se devuelve una URL y el WSDL para el servicio web requerido.

    >> Usando el WSDL y la URL, la comunicación entre el proveedor de servicios y el solicitante ocurre a través de mensajes SOAP. <<

  4. Cuando un consumidor llama a un servicio web, se establecerá una conexión HTTP con el proveedor.

    Se crea un mensaje SOAP para indicar al proveedor que invoque la lógica del servicio web requerida.

  5. La respuesta recibida del proveedor es un mensaje SOAP que se incrustará en la respuesta HTTP. Esta respuesta HTTP es el formato de datos que es comprensible para la aplicación del consumidor.

Ejemplo

Una página de inicio de un sitio web y un motor de búsqueda muestra el informe meteorológico diario. En lugar de codificar la sección del informe meteorológico por todas partes, se puede comprar un Servicio de informe meteorológico a un proveedor e integrarlo en las páginas.

Pruebas SOA

SOA consta de varias tecnologías. Las aplicaciones creadas con SOA tienen varios servicios que están débilmente acoplados.

Las pruebas de SOA deben centrarse en 3 capas del sistema

Capa de servicios

Esta capa está formada por los servicios, servicios expuestos por un sistema derivado de funciones empresariales.

Por ejemplo -

Considere un sitio web de bienestar que consista en

  1. Rastreador de peso
  2. Rastreador de azúcar en sangre
  3. Rastreador de presión arterial

Los rastreadores muestran los datos respectivos y la fecha en que se ingresaron. La capa de servicios consta de los servicios que obtienen los datos respectivos de la base de datos.

  • Servicio de seguimiento de peso
  • Servicio Blood Sugar Tracker
  • Servicio de monitor de presión arterial
  • Servicio de inicio de sesión

Capa de proceso

La capa de proceso consiste en los procesos, colección de servicios que forman parte de una sola funcionalidad.

Los procesos pueden ser parte de la interfaz de usuario (por ejemplo, un motor de búsqueda), una parte de una herramienta ETL (para obtener datos de la base de datos).

El enfoque principal en esta capa estará en las interfaces de usuario y el proceso.

La interfaz de usuario del rastreador de peso y su integración con la base de datos es el enfoque principal.

Las siguientes funciones serán de consideración

  1. Agregar nuevos datos
  2. Editar datos existentes
  3. Creando un nuevo rastreador
  4. Borrando datos

Capa de consumidor

Esta capa se compone principalmente de interfaces de usuario.

Según la capa, la prueba de una aplicación SOA se distribuye en tres niveles.

  1. Nivel de servicio
  2. Nivel de interfaz
  3. Nivel de extremo a extremo
  • El enfoque de arriba hacia abajo se utiliza para el diseño de pruebas.
  • El enfoque de abajo hacia arriba se utiliza para la ejecución de pruebas.

Estrategia para pruebas SOA

Enfoque de planificación de pruebas,

  • Los probadores de SOA deben comprender la arquitectura completa de la aplicación.
  • La aplicación debe dividirse en servicios independientes (Servicio, que tiene su propia estructura de solicitud y respuesta y no depende de ningún otro servicio para formar la respuesta).
  • La estructura de la aplicación debe reorganizarse en tres componentes: datos, servicios y aplicaciones de front-end.
  • Todos los componentes deben analizarse detenidamente y los escenarios comerciales deben definirse con tiza.
  • Los escenarios comerciales deben clasificarse como escenarios comunes y escenarios específicos de la aplicación.
  • Se debe preparar una matriz de trazabilidad y todos los casos de prueba deben rastrearse hasta escenarios comerciales.

Enfoque de ejecución de pruebas

  • Cada componente de servicio debe probarse.
  • Se deben realizar pruebas de integración de los componentes del servicio para validar el flujo de datos a través de los servicios y la integridad de los datos.
  • Se deben realizar pruebas del sistema del modelo completo para validar el flujo de datos entre la aplicación frontal y la base de datos.
  • Se deben realizar pruebas de rendimiento para un ajuste fino y un rendimiento óptimo.

Métodos de prueba SOA

1) Pruebas basadas en datos impulsadas por escenarios comerciales,

  • Se deben analizar varios aspectos comerciales relacionados con el sistema.
  • Se deben desarrollar escenarios basados ​​en la integración de
    • Varios servicios web de la aplicación
    • Servicios y aplicaciones web.
  • La configuración de datos debe realizarse en base a los escenarios anteriores.
  • La configuración de datos debe realizarse de manera que cubra también los escenarios de un extremo a otro.

2) Talones

  • Se crearán interfaces ficticias para probar los servicios.
  • Se pueden proporcionar varias entradas a través de estas interfaces y las salidas se pueden validar.
  • Cuando una aplicación utiliza una interfaz para un servicio externo, que no está bajo prueba (servicio de terceros), se puede crear un código auxiliar durante la Prueba de integración.

3) Prueba de regresión

  • Las pruebas de regresión en la aplicación deben realizarse cuando hay varias versiones para garantizar la estabilidad y disponibilidad de los sistemas.
  • Se creará un conjunto completo de pruebas de regresión que cubrirá los servicios que forman una parte importante de la aplicación.
  • Este conjunto de pruebas se puede reutilizar en varias versiones del proyecto.

4) Prueba de nivel de servicio

Las pruebas de nivel de servicio incluyen probar la funcionalidad, seguridad, rendimiento e interoperabilidad del componente.

Todos y cada uno de los servicios deben probarse primero de forma independiente.

5) Prueba funcional

Se deben realizar pruebas funcionales en cada servicio para

  • Asegúrese de que el servicio brinde la respuesta correcta a cada solicitud.
  • Se reciben errores correctos para solicitudes con datos no válidos, datos incorrectos, etc.
  • Verifique cada solicitud y respuesta para todas y cada una de las operaciones que el servicio debe realizar en tiempo de ejecución.
  • Valide los mensajes de error cuando se produce un error a nivel de servidor, cliente o red.
  • Valide que las respuestas recibidas estén en el formato correcto.
  • Validar que los datos recibidos sobre la respuesta corresponden a los datos solicitados.

6) Pruebas de seguridad

Las pruebas de seguridad del servicio web son un aspecto importante durante las pruebas de nivel de servicio de la aplicación SOA; esto garantiza la seguridad de la aplicación.

Los siguientes factores deben cubrirse durante la prueba:

  • El servicio web debe cumplir con el estándar de la industria definido por las pruebas de WS-Security.
  • Las medidas de seguridad deberían funcionar a la perfección.
  • Cifrado de datos y firmas digitales en los documentos.
  • Autenticacion y autorizacion
  • Inyección de SQL, malware, XSS, CSRF y otras vulnerabilidades se probarán en XML.
  • Ataques de denegación de servicio

7) Prueba de rendimiento

Es necesario realizar pruebas de rendimiento del servicio, ya que los servicios son reutilizables y es posible que varias aplicaciones utilicen el mismo servicio.

Los siguientes factores se consideran durante la prueba:

  • 8) El rendimiento y la funcionalidad del servicio deben probarse bajo carga pesada.
  • El rendimiento del servicio debe compararse mientras se trabaja individualmente y dentro de la aplicación, se combina con.
  • Se deben realizar pruebas de carga de servicio
    • para verificar el tiempo de respuesta
    • para comprobar si hay cuellos de botella
    • para verificar la utilización de la CPU y la memoria
    • para predecir la escalabilidad

9) Prueba de nivel de integración

  • Las pruebas de nivel de servicio aseguran el correcto funcionamiento de los servicios de forma individual, no garantizan el funcionamiento de los componentes acoplados.
  • Las pruebas de integración se realizan centrándose principalmente en las interfaces.
  • Esta fase cubre todos los escenarios comerciales posibles.
  • Las pruebas No Funcionales de la aplicación deben realizarse una vez más en esta fase. Las pruebas de seguridad, cumplimiento y rendimiento garantizan la disponibilidad y estabilidad del sistema en todos los aspectos.
  • Los protocolos de comunicación y de red deben probarse para validar la coherencia de la comunicación de datos entre los servicios.

10) Prueba de extremo a extremo

Esta fase asegura que la aplicación se ajuste a los requisitos comerciales tanto funcional como no funcionalmente.

Los siguientes elementos están garantizados para ser probados durante la prueba de extremo a extremo.

  • Todos los servicios funcionan como se esperaba después de la integración
  • Manejo de excepciones
  • Interfaz de usuario de la aplicación
  • Flujo de datos adecuado a través de todos los componentes
  • Procesos de negocio

Desafíos en las pruebas SOA

  • Falta de interfaces para servicios
  • El proceso de prueba se extiende a través de múltiples sistemas, creando así necesidades de datos complejas
  • La aplicación es una colección de varios componentes que tiende a cambiar. La necesidad de realizar pruebas de regresión es más frecuente.
  • Debido a la arquitectura multicapa, es difícil aislar los defectos.
  • Dado que el servicio se utilizará en diferentes interfaces, es difícil predecir la carga, lo que dificulta la planificación de las pruebas de rendimiento.
  • SOA es una colección de tecnologías heterogéneas. La prueba de una aplicación SOA requiere personas con diferentes conjuntos de habilidades que, a su vez, aumentan los costos de planificación y ejecución.
  • Dado que la aplicación es una integración de múltiples servicios, las pruebas de seguridad tienen sus propios problemas. La validación de la autenticación y la autorización es bastante difícil.

Herramientas de prueba SOA

Hay muchas herramientas de prueba SOA disponibles en el mercado para ayudar a los probadores a probar aplicaciones SOA. Estas son algunas de las herramientas de prueba SOA más populares :

1) IU de SOAP

"SOAP UI" es una herramienta de prueba funcional de código abierto para servicios y pruebas de API.

  • Aplicación de escritorio
  • Admite múltiples protocolos: SOAP, REST, HTTP, JMS, AMF, JDBC
  • Los servicios web se pueden desarrollar, inspeccionar e invocar.
  • También se puede utilizar para pruebas de carga, pruebas de automatización y pruebas de seguridad.
  • MockServices puede crear stubs
  • Las solicitudes y pruebas de servicios web se pueden generar automáticamente a través de su cliente de servicios web.
  • Tener herramientas de informes incorporadas
  • Desarrollado por SmartBear

2) iTKO LISA

"LISA" es una suite de productos que proporciona una solución de prueba funcional para sistemas distribuidos como SOA.

  • También se puede utilizar para pruebas de regresión, integración, carga y rendimiento.
  • Desarrollado por iTKO (CA Technologies)
  • Puede usarse para diseñar y ejecutar pruebas.

3) Prueba de servicio de HP

"Service Test" es una herramienta de prueba funcional, que admite tanto la interfaz de usuario como las pruebas de servicios compartidos

  • Las pruebas funcionales y de rendimiento de los servicios se pueden realizar mediante un único script.
  • Integrado con HP QC.
  • Se puede gestionar la enorme cantidad de servicios y datos.
  • Admite pruebas de interoperabilidad mediante la simulación de entornos de cliente JEE, AXIS y DotNet.
  • Desarrollado por HP.

4) Prueba de Parasoft SOA

SOA Test es un conjunto de herramientas de prueba y análisis desarrollado para pruebas de aplicaciones API y API.

  • Soporta tecnologías Web Services, REST, JSON, MQ, JMS, TIBCO, HTTP, XML.
  • Son posibles las pruebas funcionales, unitarias, de integración, de regresión, de seguridad, de interoperabilidad, de cumplimiento y de rendimiento.
  • Los stubs se pueden crear usando Parasoft Virtualize, que son inteligentes que SOAP UI.
  • Desarrollado por ParaSoft

Casos de uso de pruebas SOA

Considere un sitio web de comercio electrónico, que contiene las siguientes funciones y subfunciones:

procesando orden

FASE 1

En la primera fase de las pruebas SOA, es decir, la fase de estrategia de prueba, la aplicación se divide en Servicios y funciones comerciales.

Consideremos a continuación son los Servicios en la aplicación.

  • Crear orden
  • Verificar el estado del cliente
  • Cambiar el estado de la orden
  • Comprobar el estado del pedido
  • Verificar inventario

Las funciones comerciales son las mismas que las funciones del sitio web.

Nota: El documento de estrategia de prueba contendrá la lista del servicio y las funciones que deben probarse.

FASE 2

Fase de planificación de pruebas. Los casos de prueba se escriben para cada nivel.

  1. Nivel de extremo a extremo. Los casos de prueba se escriben para cada flujo y caso de uso empresarial.

    A continuación se muestra el ejemplo de casos de prueba

    • Crea un pedido con el usuario activo.
    • Crea un pedido con un usuario inactivo.
    • Cree un pedido con el producto disponible con cantidad de pedido
    • Cree un pedido con el producto disponible con cantidad de pedido> cantidad disponible.
    • Crea un pedido con varios artículos
    • Cancelar un pedido por completo.
    • Cancelar pedido parcialmente.
  2. Nivel de integración. Los casos de prueba se escriben para la integración de la base de datos y la interfaz de usuario.

    A continuación se muestran casos de prueba de ejemplo.

    • Crea un nuevo pedido con un solo artículo. Verifique que el pedido se cree en la base de datos.
    • Crea un nuevo pedido con un solo artículo. Verifique que el precio calculado para el pedido sea correcto.
    • Crea un nuevo pedido con un solo artículo. Verifique que la cantidad del producto disponible sea menor por el monto del pedido.
    • Verifique que el estado del pedido que se muestra en la interfaz de usuario sea el mismo que en la base de datos.
    • Cancele el pedido y verifique que el estado del pedido se modifique en la base de datos.
    • Por primera vez, verifique que los detalles de pago ingresados ​​en la interfaz de usuario estén guardados en la base de datos.
    • Para devolver pagos, verifique que los detalles del pago en la base de datos se muestren en la interfaz de usuario.
  3. Nivel de servicio. Cada servicio se prueba para todas las condiciones de los datos.

Abajo hay algunos ejemplos.

No. Detalles del pedido Condición de pedido
1 Crear orden. No. de artículos = 1 Cantidad en orden
2 Crear orden. No. de artículos> 1 Cantidad en orden
3 Crear pedido número de artículos = 1 Cantidad en orden> Cantidad en base de datos
4 Comprobar el estado del pedido Estado en la base de datos = Activo
5 Comprobar el estado del pedido Estado en la base de datos = Enviado
6 Comprobar el estado del pedido Estado en la base de datos = cancelado
7 Comprobar el estado del pedido ID de pedido = no válido
8 Consultar disponibilidad de producto Cantidad de producto> 0
9 Consultar disponibilidad de producto Cantidad de producto = 0
10 Consultar disponibilidad de producto ID de producto = no válido

FASE 3 - Ejecución de la prueba

La ejecución de pruebas utiliza un enfoque ascendente, es decir, las pruebas de nivel de servicio se realizan primero, luego el nivel de integración y, por último, las pruebas de extremo a extremo.

1) Nivel de servicio

Consideremos que se considera la herramienta Soapui para probar la aplicación.

El WSDL y la URL se examinan en la ventana de prueba de SOAP.

La solicitud de cada servicio se mostrará en la ventana de solicitud.

Al modificar los datos según los casos de prueba de nivel de servicio, se crean solicitudes para cada caso de prueba.

Caso de prueba

Petición

Respuesta esperada

Crear orden. No. de artículos = 1 Cantidad en pedido

x2 2

o3251 Exitoso

Crear pedido. Cantidad de artículos> 1 Cantidad en pedido

y11 y2 3

o3251 Exitoso

Crear OrderNo. Cantidad de artículos = 1 Cantidad en pedido> Cantidad en db

x23 200

null Fallido

Verificar el estado del pedido Estado en la base de datos = Activo

o9876

Active Exitoso

Verificar el estado del pedido Estado en la base de datos = Enviado

o9656

Enviado Exitoso

Verificar el estado del pedido Id. Del pedido = No válido

y5686

null Fallido

Consultar disponibilidad de producto Cantidad de producto> 0

d34

34 Exitoso

Consultar disponibilidad de producto Cantidad de producto = 0

y34

0no Exitoso

Verifique la disponibilidad del producto Id. Del producto = no válido

sder

Fallido

2) Nivel de integración

Los casos de prueba de nivel de integración se ejecutan en la interfaz de usuario y la base de datos.

  • Crea un pedido con un solo artículo -
  • Un usuario abre el sitio web.
  • Va a realizar un pedido.
  • Selecciona un producto y una cantidad válidos y guarda el pedido.
  • Se debe mostrar un mensaje que dice que el pedido se realizó correctamente.
  • Un usuario abre la base de datos y verifica si los detalles del pedido son los mismos que los ingresados ​​en el sitio web.
3) Nivel de extremo a extremo

Los flujos comerciales y los casos de uso se ejecutan en la interfaz de usuario.

  • Cree un pedido con varios artículos -
  • Un usuario abre un sitio web.
  • Va a realizar un pedido.
  • Consulta sobre un producto válido y la cantidad los agrega al carrito.
  • Se agregan otros productos válidos con cantidades válidas y se guarda el pedido. El pago se realiza a través de un nuevo método de pago y se realiza el pedido.
  • Debería aparecer un mensaje que diga "Pedido realizado correctamente".
  • Un evaluador debe validar que todo el flujo se realiza sin sesgos de datos.

Conclusión:

Al esbozar la estrategia correcta para las pruebas, los recursos, las herramientas y el cumplimiento para brindar un buen servicio, las pruebas SOA pueden ofrecer una aplicación completa y perfectamente probada.

Articulos interesantes...