Verificación y validación de composiciones de servicios web en ws-bpel con prueba metamórfica

  1. DE CASTRO CABRERA, MARÍA DEL CARMEN
Supervised by:
  1. María Inmaculada Medina Bulo Director
  2. Antonio García Domínguez Co-director

Defence university: Universidad de Cádiz

Fecha de defensa: 28 May 2024

Committee:
  1. Manuel Núñez García Chair
  2. Juan José Domínguez Jiménez Secretary
  3. Laura Panizo Jaime Committee member

Type: Thesis

Teseo: 839564 DIALNET lock_openTESEO editor

Abstract

En la actualidad, el software forma parte del día a día de la gran mayoría de las personas. Los objetos cotidianos y las herramientas que utilizamos para trabajar, comunicarnos o simplemente realizar tareas cotidianas de forma más eficiente, dependen de código para poder funcionar. Esta dependencia de la sociedad en el software supone un desafío para su proceso de desarrollo, pues es necesario que estos programas funcionen bien y hagan lo que se pretende que hagan. En resumen, el software debe cumplir estándares de calidad que permitan un uso aceptable del mismo. Para esto, se han desarrollado numerosas técnicas de prueba de software. Una de estas técnicas que más se ha aplicado e investigado en los últimos años ha sido la prueba metamórfica (Metamorphic Testing en inglés, MT en adelante). Esta técnica se basa en relaciones metamórficas (Metamorphic Relations en inglés, MR en adelante) entre los casos de prueba. De manera que, dado un caso de prueba (al que se le suele denominar caso de prueba inicial) y una MR, aplicando esa MR se puede generar un nuevo caso de prueba (al que se le suele denominar caso de prueba siguiente). Ese caso de prueba siguiente podría detectar defectos en el código que el caso de prueba inicial no detecta. Así, uno de los objetivos de la prueba metamórfica es generar conjuntos de casos de prueba de calidad, a través de los casos siguientes generados por cada MR. Por tanto, un aspecto clave y retador de la prueba metamórfica es el diseño y aplicación de las MR. Sin embargo, en el análisis de la literatura realizado en esta tesis doctoral, faltaban métodos guiados para diseñar y aplicar MR, integrando además la generación de conjuntos de casos de prueba de calidad e independientemente del lenguaje empleado en el software a probar. Otro reto detectado es cómo representar las MR de manera que se puedan utilizar de forma sistemática, automatizando el proceso todo lo posible. Además, se utiliza la web cada vez más para transacciones cotidianas, como compras, alquileres, etc. Este uso se ha incrementado tras la pandemia de 2020, que no permitía realizar algunos trámites de forma presencial para prevenir contagios. Dichas transacciones se implementan mediante los denominados servicios web (Web Services en inglés, SW en adelante). Estos servicios suelen estar relacionados, dando lugar a las composiciones de servicios web, que integran varios servicios en uno solo. Uno de los lenguajes que permite implementar estas composiciones de servicios web es el lenguaje WS-BPEL. Se han implementado algunas técnicas y herramientas para probar este tipo de software, como por ejemplo la prueba de mutaciones o la generación dinámica de invariantes. Sin embargo, hasta el desarrollo de esta tesis no se había empleado la prueba metamórfica para composiciones escritas en WS-BPEL. Esta tesis doctoral aborda estos desafíos, por un lado, desarrollando un método guiado reutilizable para diseñar y aplicar MR, integrando la generación de conjuntos de casos de prueba de calidad de forma independiente al lenguaje empleado en el software a probar, que facilita el trabajo al equipo de profesionales de pruebas de software, mediante el seguimiento de las etapas que se desarrollan y describen. Para su aplicación se ha empleado programación con restricciones (Constraint Programming en inglés, CP en adelante) en MiniZinc (lenguaje y herramienta de programación con restricciones). El objetivo del método es generar un conjunto de casos de prueba de calidad que permita mejorar el software desarrollado. Este método es mostrado en dos variantes, según se disponga (caja blanca) o no (caja negra) del código fuente del programa a probar. Por otro lado, el método se ha aplicado a dos casos de estudio de composiciones en WSBPEL (uno para cada versión del método), abordando la verificación y validación de composiciones de servicios web en WS-BPEL empleando pruebas metamórficas. Para la validación del conjunto de casos de pruebas obtenido en los casos de estudio se ha utilizado la prueba de mutaciones. En el caso de caja negra, además, se ha empleado pruebas basadas en modelos (Model-Based Testing en inglés, MBT en adelante). Los resultados han sido satisfactorios, consiguiéndose la verificación y validación de composiciones en WS-BPEL empleando pruebas metamórficas, y un método reutilizable para generar conjuntos de casos de prueba de calidad utilizando la prueba metamórfica independiente del lenguaje del software a probar y de la disponibilidad del código fuente de dicho software. En la evaluación de los casos de estudio desarrollados se han matado todos los mutantes equivalentes en un caso y más del 90 % en el otro. El trabajo de investigación de esta tesis ha dado lugar a varias presentaciones en congresos tanto nacionales como internacionales, y a publicaciones académicas.