El documento explica los conceptos de SOAP, WSDL, XML y servicios web. Luego describe las pruebas automatizadas como aquellas que detectan fallas en el software sin necesidad de intervención humana, lo que ahorra tiempo y recursos. Finalmente, indica que el objetivo de las pruebas automatizadas es tener casos de prueba reutilizables que puedan ejecutarse en cualquier momento para determinar si un cambio afectó negativamente algún proceso.
2. ¿Qué es SOAP?
SOAP (Simple Object Access Protocol) es el protocolo estándar que permite la
comunicación de dos objetos intercambiando datos XML.
El uso de SOAP se orienta a servicio web y se puede entender como una petición
por parte del usuario y una respuesta por parte del servidor. Este servicio se
describe mediante un WSDL.
3. ¿Qué es WSDL?
WSDL (Web Service Description Language). Es una notación XML encargada de
describir servicios web. Indica al cliente cómo solicitar un servicio y enseña la
interfaz proporcionada por el servidor.
¿Qué es XML?
XML (Extensible Markup Language). Sistema que permite la organización y
etiquetado de documentos a lenguajes, de acuerdo a sus necesidades.
4. ¿Qué es servicio web?
Es un sistema de software que sirve para intercambiar datos entre aplicaciones
desarrolladas en distintos lenguajes de programación y ejecutadas en diferentes
plataformas.
5. Existen varios tipos de servicios, pero los más populares son REST y SOAP.Los
métodos utilizados por REST son: GET, POST, PUT y DELETE. Usualmente, el
método más implementado por SOAP es POST incluso para “operaciones de GET”,
dado que es necesario un SOAP request, que no puede pasarse por “Query String”.
6. Con estas nociones básicas podemos empezar a plantear algunas pruebas que
podríamos realizar para verificar su correcto funcionamiento. Hay que tener en
cuenta que el testing de Web Services está orientado al modelo Web Service
Request & Response. Los tipos de pruebas básicos que podemos plantear para
realizar en estos servicios son: verificar si recibimos correctamente los datos, tipos
de datos, orden de los datos, y completitud. Adicionalmente, también podemos
realizar pruebas de carga, timeout y seguridad, entre otras.
7. A continuación, vamos a ver un ejemplo sencillo usando una API REST muy simple
desarrollada con ASP.NET Web API que nos permite hacer alta, baja, modificación y
consulta de “animales”.
8. En este ejemplo, animal tiene dos propiedades, Name y Color, ambos string, y un
ID Int autogenerado.El servicio que usaremos ofrece la siguiente API:
• GET api/animals: devuelve todos.
• GET api/animals/1: devuelve el animal con id 1.
• POST api/animals: crea un nuevo animal y lo devuelve.
• PUT api/animals/1: modifica el animal de id 1.
• DELETE api/animals/1: borra el animal de id 1.
En las operaciones POST y PUT, debe enviarse un JSON como el siguiente en el
body del request: {
Name: “nombre del animal”, Color: “color del animal”}
10. ¿Qué son las pruebas automatizadas?
Tienen como objetivo detectar fallas en el software
evitando que una persona tenga que ejecutar las
pruebas manualmente. En este caso, el experto en
testing genera un caso a probar utilizando una
herramienta para que luego la misma se realice
automáticamente.
No requiere la intervención del individuo en cada
nueva ejecución. La prueba simula la interacción
humana con el software.
11. Automatizar genera importantes beneficios en el desarrollo y liberación de
software corporativo u orientado a consumidores finales. Estos beneficios son:
● Capacidad de ejecución de pruebas
● Integración continua y Devops
● Ahorra tiempo y recursos
● Pruebas repetibles
● Una única herramienta para todas las plataformas
● Mayor precisión
12. Capacidad de ejecución de pruebas
Es posible realizar un gran número de pruebas en un breve período de tiempo. Las
mismas pueden ser ejecutadas durante las 24 horas, los 7 días de la semana, incluso
cuando el equipo de test no esté en la oficina. Se pueden ejecutar en forma paralela y
sobre distintos servidores, aumentando aún más su capacidad.
13. Integración continua y Devops
Devops es una importante tendencia en la construcción de software moderno. Tiene
como objetivo agilizar el proceso de liberación de software, buscando responder
rápidamente a las exigencias de los negocios.
En ese escenario, que las pruebas estén automatizadas, resulta vital para acelerar
todo el proceso de entrega. Esto permite, en forma temprana, detener el proceso de
salida a producción si algo no está bien.
14. Ahorra tiempo y recursos
Las pruebas automatizadas multiplican la capacidad de los equipos de testing o
unidades de Calidad de las organizaciones.
Minimizan sustancialmente la ejecución de las pruebas manuales, refiriéndose estas
últimas solo en escenarios especiales. De este modo el recurso humano puede realizar
otro tipo de tareas, mientras la automatización se ocupa de realizar las pruebas
relevantes y repetitivas.
15. Pruebas repetibles
El trabajo que implica desarrollar una prueba automatizada es recompensado por la
gran cantidad de veces que será ejecutada. En los casos donde la prueba requiere de
poco mantenimiento, porque el software es estable, el beneficio es la practicidad, ya
que la prueba se realiza sin esfuerzo alguno.
16. Una única herramienta para todas las plataformas
La plataforma de test automatizado, se puede gestionar la automatización para
aplicaciones móviles, web, GUI y sistemas legados. Esta es una enorme ventaja ya que
al tener una única herramienta, que maneja un único lenguaje, se acelera la curva de
aprendizaje y se logra ganar experiencia y resultados rápidamente facilitando así, la
inducción de nuevos integrantes al equipo de testing y evitando la dificultad de tener
que ejecutar pruebas sobre diferentes aplicaciones.
17. Mayor precisión
Las pruebas automatizadas facilitan la precisión a la hora de diagnosticar la falla
detectada. Proveen la evidencia en una serie de reportes, así como un video que
permiten analizar en profundidad la situación. Al utilizar distintos juegos de datos en
el mismo caso de prueba, es posible ser muy certero en el diagnóstico de las
situaciones problemáticas.
El testing automatizado también permite mayor cubrimiento de código y de casos, por
lo que se logran pruebas muy exhaustivas y precisas de la funcionalidad, y más
condiciones probadas.
18. ¿Cuál es el objetivo final de las pruebas automatizadas?
● Tener un marco de activos de prueba reutilizables, repetibles y predecibles que se pueden ejecutar en cualquier momento.
● Informar la toma de decisiones determinando si una solicitud o proceso se ha visto afectado negativamente por el cambio –
rápidamente.
● Solo tiene que comprobar los resultados de las pruebas por excepción. Es decir, comparar las ejecuciones de prueba previas y
posteriores y solo revise los resultados inesperados/coincidencias erróneas.
● Aumentar la cobertura de las pruebas en un tiempo y costo reducidos.
19. ¿Para qué podemos usar las pruebas automatizadas?
Las pruebas automatizadas son: casos de prueba que se han automatizado y que se pueden ejecutar sin
intervención. Sin embargo, hay muchos tipos diferentes de pruebas automatizadas, y para seleccionar dependerá
de lo que desee lograr y de la herramienta o herramientas que utilice para admitirlo.
20. Referencias
Rodriguez, J. D. (s. f.). Desarrolla tu prueba automatizada de servicios web SOAP en SOAPUI.
www.pragma.com.co. Recuperado 21 de marzo de 2021, de
https://www.pragma.com.co/academia/lecciones/desarrolla-tu-prueba-automatizada-de-servicios-
web-soap-en-
soapui#:%7E:text=Antes%20de%20iniciar%2C%20debemos%20tener,arquitectura%20orientada%20a%20s
ervicios%20SOA.&text=El%20uso%20de%20SOAP%20se,respuesta%20por%20parte%20del%20servidor.
¿Cómo comenzar a testear un Web Service? (2017, 22 septiembre). testingbaires.com.
https://testingbaires.com/2017/09/22/como-comenzar-a-testear-un-web-service/
M. (2020, 19 febrero). ¿Qué es la prueba automatizada y por qué usarlas? TSG Training.
https://www.tsg-training.co.uk/que-es-la-prueba-automatizada-y-por-que-usarlas/?lang=es
Canosa, V. (2021, 8 marzo). ¿Cuándo y por qué conviene automatizar pruebas de software? Software Testing
Bureau. https://www.softwaretestingbureau.com/cuando-conviene-automatizar-pruebas-software/