PRUEBAS FUNCIONALES Y DE ACEPTACIÓN Por: Julián Camilo Ortega Muñoz Pontificia Universidad Javeriana 2013 Pruebas Funcionales y Aceptación INTRODUCCIÓN Este documento tiene como propósito demostrar que las funcionalidades de la aplicación web CLUBMAT funcionan correctamente, mas específicamente los servicios web REST que presta la aplicación en el servidor. Estos servicios son utilizados por toda la aplicación Cliente de CLUBMAT y prácticamente son la base de la aplicación. Por este motivo, es importante que se demuestre su funcionamiento de manera practica. Así mismo, se quiere demostrar la aceptación de los clientes directamente implicados con el sistema CLUBMAT. Se realizaron las pruebas de aceptación pertinentes para obtener la validación del producto por parte de los clientes y en este documento se presentaran los documentos anexos y validación del sistema por parte de los Stakeholders. Pruebas Funcionales y Aceptación TABLA DE CONTENIDO INTRODUCCIÓN ....................................................................................................................................................... 2 TABLA DE CONTENIDO ............................................................................................................................................ 3 COMO REALIZAR PRUEBAS SERVICIOS WEB REST ................................................................................................. 4 WADL (Web Application Description Language) ............................................................................................... 5 CODIGOS DE RESPUESTA HTTP ............................................................................................................................... 6 PRUEBAS SERVICIOS WEB REST CRUD .................................................................................................................... 7 PRUEBAS SERVICIOS WEB REST DE NEGOCIO ....................................................................................................... 9 PRUEBAS DE ACEPTACIÓN ................................................................................................................................... 14 BIBLIOGRAFIA ......................................................................................................................................................... 18 Pruebas Funcionales y Aceptación COMO REALIZAR PRUEBAS SERVICIOS WEB REST Estas pruebas fueron realizadas a los servicios REST creados para el proyecto y validar su funcionamiento. Para probar los servicios web y su correcto funcionamiento se realiza lo siguiente: • En modulo web del proyecto buscar el folder RESTful Web Services y hacer Click derecho en el. Luego hacer Click en Test RESTful Web Services, tal como muestra la imagen. • En la configuración de la prueba elegir que sea local y luego dar ok. • Luego la aplicación va a abrir un browser para realizar las pruebas del Servicio Web. • Elegir el servicio web elegido y probar los métodos http mencionados anteriormente en el formato elegido (XML, JSON) para probar que efectivamente funciona con la base de datos. • En la siguiente ventana se muestra un ejemplo de la prueba al Servicio Web Pruebas Funcionales y Aceptación WADL (Web Application Description Language) Son las siglas de Web Application Description Language. Es un XML que sirve para describir servicios HTTP, normalmente Servicios REST. [1] El WADL modela los recursos provistos por un servicio y las relaciones entre ellos. [1] Es el equivalente al WSDL para servicios web SOAP pero para REST. [1] La siguiente imagen nos muestra el WADL de la aplicación CLUBMAT. [1] Para publicar los servicios con ayuda de este descriptor se realiza lo siguiente: • En la pestaña Services de nuestro ide Netbeans, hacemos click derecho en Web Services, luego seleccionar la opción Add Web Service. • Luego copiamos la ruta del WADL y la agregamos en el campo como muestra la imagen y aceptamos. Pruebas Funcionales y Aceptación Finalmente los servicios REST quedaran publicados para poder accederlos desde cualquier aplicación. CODIGOS DE RESPUESTA HTTP A continuación se muestran los diferentes códigos http de respuesta para validar el funcionamiento de los servicios web. 1xx – Informativo Esta clase de código de estado indica una respuesta provisional, que consiste solamente en el Estado-Line y títulos opcionales, y es terminada por una línea en blanco. No hay encabezados requeridos para esta clase de código de estado. Desde HTTP/1.0 no definía los códigos de estado 1xx, los servidores NO DEBE enviar una respuesta 1xx a un cliente HTTP/1.0 excepto bajo condiciones experimentales. [2] 2xx – Exitosa Esta clase de código de estado indica que la solicitud del cliente se ha recibido correctamente, entendido y aceptado. [2] 3xx – Redirección Esta clase de código de estado indica que una mayor acción debe ser tomada por el agente de usuario con el fin de atender la solicitud. La acción requerida puede llevarse a cabo por el agente de usuario sin interacción con el usuario, si y sólo si el método utilizado en la segunda petición es GET o HEAD. Un cliente es conveniente detectar bucles de redireccionamiento infinito, ya que tales lazos generan tráfico de red para cada cambio de dirección. [2] 4xx - Error del cliente La clase 4xx del código de estado se aplica a los casos en que el cliente parece haber errado. Excepto cuando se responde a una petición HEAD, el servidor debe incluir una entidad que contenga una explicación de la situación de error, y si es una condición temporal o permanente. Estos códigos de estado son aplicables a cualquier método de petición. Los agentes de usuario deben mostrar cualquier entidad incluida para el usuario. [2] Pruebas Funcionales y Aceptación 5xx - Error del servidor Códigos de estado de respuesta que comienzan con el dígito "5" indican casos en los que el servidor es consciente de que ha cometido un error o es incapaz de realizar la solicitud. Excepto cuando se responde a una petición HEAD, el servidor debe incluir una entidad que contenga una explicación de la situación de error, y si es una condición temporal o permanente. Los agentes de usuario deben mostrar cualquier entidad incluida para el usuario. Estos códigos de respuesta son aplicables a cualquier método de petición. [2] Es importante tener en cuenta estos códigos de respuesta para saber si los servicios web funcionan adecuadamente o que tipo de respuesta tenemos al realizar las pruebas. Se espera que los resultados sean 2XX- Exitosos para validar su funcionamiento. PRUEBAS SERVICIOS WEB REST CRUD Estas pruebas son realizadas a los servicios web REST generados a partir de las entidades de la aplicación. Estos servicios son generados automáticamente por lo que se mostrarán las pruebas realizadas a un servicios web REST donde se solicite crear, editar, eliminar y leer datos de una entidad (CRUD). CREAR INSTITUCION Se realizó la prueba agregando una institución en formato XML utilizando el método POST para agregar. Pruebas Funcionales y Aceptación EDITAR INSTITUCION En esta prueba se edito una institución existente en formato XML cambiando datos de la instancia. Para esta prueba se utiliza el método PUT para editar. VER INSTITUCION En esta prueba se realizó un llamado GET para obtener los datos de las instituciones en formato XML Pruebas Funcionales y Aceptación Estas pruebas realizadas retornaron valores de éxito lo que indica el funcionamiento apropiado de los servicios generados a partir de las entidades. PRUEBAS SERVICIOS WEB REST DE NEGOCIO Estas pruebas son realizadas a los servicios web REST de negocio generados manualmente y que son de vital importancia para el desarrollo de la aplicación CLUBMAT. Los servicios web REST de negocio creados son los siguientes: OPCIONES DE UNA PREGUNTA Este servicio recibe una pregunta (IDPREGUNTA) y retorna las opciones de la pregunta en un formato JSON. Se utiliza el método GET para la obtención de datos. PREGUNTAS POR GRADO Este servicio recibe un grado (3,4,5) y el retorna las preguntas para ese respectivo grado, Se utiliza el método GET para la obtención de datos. Pruebas Funcionales y Aceptación REGLAS DEL CLUB Este servicio recibe un club (IDCLUB) y retorna las reglas de ese respectivo club. Se utiliza el método GET para la obtención de datos. Pruebas Funcionales y Aceptación NOTICIAS POR TIPO Este servicio recibe un tipo de noticia (General, Privada) y retorna las noticias de ese tipo. Se utiliza el método GET para la obtención de datos. NOTICIAS POR CLUB Este servicio recibe un club (IDCLUB) y retorna las noticias de ese club. Se utiliza el método GET para la obtención de datos. Pruebas Funcionales y Aceptación USUARIOS INSCRITOS EN OLIMPIADA Este servicio recibe una olimpiada (IDOLIMPIADA) y retorna los usuarios inscritos a esa olimpiada. Se utiliza el método GET para la obtención de datos. USUARIO POR NOMBRE (LOGIN) Este servicio recibe el usuario para retornar los datos de ese usuario, esto se utiliza para retornar el usuario que esta iniciando sesión y obtener sus datos para validarlos. Se utiliza el método GET para la obtención de datos. Pruebas Funcionales y Aceptación PRUEBAS POR EL USUARIO Este servicio recibe un usuario (IDUSUARIO) y retorna las pruebas que este usuario a realizado. Se utiliza el método GET para la obtención de datos. Pruebas Funcionales y Aceptación USUARIOS POR CLUB Este servicio recibe un club de matemáticas (IDCLUB) y retorna los usuarios que pertenecen a ese club. Se utiliza el método GET para la obtención de datos. Estas pruebas realizadas a los servicios web REST de negocio fueron satisfactorias ya que se obtuvieron respuestas de valor 2XX existosas. Con esto se valida la funcionalidad de los servicios web REST creados en el sistema CLUBMAT. PRUEBAS DE ACEPTACIÓN Para finalizar las pruebas del sistema CLUBMAT, era fundamental la aceptación por parte de los involucrados (STAKEHOLDERS). Para estas pruebas de aceptación se realizaron unas encuestas a los clientes después de haber visto y probado el sistema. Estas pruebas demostraron que la calificación del producto por parte del cliente es de 4 en una escala de 1 a 5 con lo que se acepto el sistema CLUBMAT satisfactoriamente. A continuación se encuentran las encuestas realizadas y sus resultados. Pruebas Funcionales y Aceptación Pruebas Funcionales y Aceptación + Pruebas Funcionales y Aceptación Pruebas Funcionales y Aceptación BIBLIOGRAFIA [1] Rafael Navarro Marset, “Rest VS Web Services,” http://users.dsic.upv.es/~rnavarro/NewWeb/docs/RestVsWebServices.pdf. 2006. [2] V. P. Madrid y J. F. De Paz, "Servicios Web", Salamanca. http://zarza.usal.es/~fgarcia/doctorado/iweb/05-07/Trabajos/ServiciosWeb.pdf [Online]. [En línea]. Available: Avai-lable: