Tesis:

Contribution to the automation of software quality control of web applications.


  • Autor: GARCIA GUTIERREZ, Bonifacio

  • Título: Contribution to the automation of software quality control of web applications.

  • Fecha: 2011

  • Materia: Sin materia definida

  • Escuela: E.T.S. DE INGENIEROS DE TELECOMUNICACION

  • Departamentos: INGENIERIA DE SISTEMAS TELEMATICOS

  • Acceso electrónico: http://oa.upm.es/9017/

  • Director/a 1º: DUEÑAS LOPEZ, Juan Carlos

  • Resumen: La Web se ha convertido en uno de los instrumentos más influyentes de la humanidad. El desarrollo de aplicaciones web es por tanto un tema de capital importancia en el mundo de la Ingeniería de Software. En este ámbito, la calidad de software es un concepto clave ya que determina el grado en el que un sistema cumple sus requisitos y satisface las expectativas de sus clientes y/o usuarios. El control de calidad (también conocido como verificación y validación) es el conjunto de actividades dirigidas a evaluar un sistema software con el objetivo de asegurar la calidad del mismo. El control de calidad es por tanto el proceso encargado de asegurar que se cumplen los requisitos de las aplicaciones al tiempo que se elimina (o se reduce al máximo) el número de defectos en las mismas. Las dos actividades básicas del control de calidad son las pruebas y el análisis. Las pruebas son de naturaleza dinámica, esto es, se evalúa las respuestas de un sistema en ejecución. Por el contrario, el análisis es de naturaleza estática, es decir, se evalúa los artefactos que componen el software en cuestión (por ejemplo, su código fuente, modelos, etc.) sin la ejecución del mismo. El mercado de las aplicaciones web está determinado por una competencia global dirigida por tres ejes: calidad, costes, y tiempo de salida al mercado. Para minimizar costes y tiempo de salida al mercado, es una práctica muy común en el desarrollo de aplicaciones web la reducción o eliminación de los procesos de control de calidad, aminorando por tanto la calidad final de las aplicaciones web. La automatización de las actividades de control de calidad ayuda a mejorar la calidad global del software desarrollado mientras se reducen los tiempos de desarrollo y costes. Esta tesis doctoral propone un conjunto de técnicas para automatizar el control de calidad (pruebas y análisis) para aplicaciones web. La naturaleza heterogénea de las aplicaciones web hace las actividades de control de calidad sean complejas. Las aplicaciones web están basadas en una arquitectura cliente‐servidor. Esta tesis está centrada en la parte cliente de los sistemas web, ya que es el factor diferenciador de este tipo de aplicaciones. Según el estándar ISO‐9126, la calidad en uso es la calidad percibida por los usuarios de las aplicaciones durante las fases de operación y mantenimiento de dichas aplicaciones. Este tipo de calidad está determinada por la calidad externa (propiedades del sistema durante su ejecución) e interna (propiedades del sistema de forma estática) del sistema en cuestión. Así pues, la calidad en uso de las aplicaciones web es percibida siempre desde lado cliente de las aplicaciones web. El proceso de control de calidad propuesto en esta tesis doctoral está basado en la automatización de la navegación de las aplicaciones web. Los requisitos funcionales y no funcionales del sistema bajo pruebas guiarán el proceso. Respecto a los requisitos no funcionales, se realizarán pruebas y análisis para los atributos de calidad considerados como los más importantes para aplicaciones web: rendimiento, seguridad, compatibilidad, usabilidad y accesibilidad. El primer paso en esta automatización consistirá en definir la estructura de navegación de la misma. Para ello se usarán (y reutilizarán en la medida de lo posible) artefactos software existentes en las fase de análisis y diseño de las aplicaciones web bajo prueba. A continuación, según se lleve a cabo la navegación de forma automática, se realizarán diferentes tipos de pruebas y análisis en los diferentes estados por los que va pasando el sistema según avanza la navegación. La agregación de los veredictos de dicha evaluación será almacenada en un informe generado automáticamente que contendrá los diferentes tipos defectos encontrados, así como problemas potenciales en los atributos de calidad previamente seleccionados. Los procesos y métodos propuestos en esta tesis han sido puestos en marcha mediante una arquitectura e implementación de referencia. Además, se han llevado a cabo diferentes experimentos y casos de estudio para evaluar la validez de la propuesta. Este trabajo ha sido llevado a cabo en diferentes proyectos nacionales e internacionales de investigación, principalmente en los proyectos ICT‐ROMULUS, ITEA‐MOSIS y Factur@. Resumen La Web se ha convertido en uno de los instrumentos más influyentes de la humanidad. El desarrollo de aplicaciones web es por tanto un tema de capital importancia en el mundo de la Ingeniería de Software. En este ámbito, la calidad de software es un concepto clave ya que determina el grado en el que un sistema cumple sus requisitos y satisface las expectativas de sus clientes y/o usuarios. El control de calidad (también conocido como verificación y validación) es el conjunto de actividades dirigidas a evaluar un sistema software con el objetivo de asegurar la calidad del mismo. El control de calidad es por tanto el proceso encargado de asegurar que se cumplen los requisitos de las aplicaciones al tiempo que se elimina (o se reduce al máximo) el número de defectos en las mismas. Las dos actividades básicas del control de calidad son las pruebas y el análisis. Las pruebas son de naturaleza dinámica, esto es, se evalúa las respuestas de un sistema en ejecución. Por el contrario, el análisis es de naturaleza estática, es decir, se evalúa los artefactos que componen el software en cuestión (por ejemplo, su código fuente, modelos, etc.) sin la ejecución del mismo. El mercado de las aplicaciones web está determinado por una competencia global dirigida por tres ejes: calidad, costes, y tiempo de salida al mercado. Para minimizar costes y tiempo de salida al mercado, es una práctica muy común en el desarrollo de aplicaciones web la reducción o eliminación de los procesos de control de calidad, aminorando por tanto la calidad final de las aplicaciones web. La automatización de las actividades de control de calidad ayuda a mejorar la calidad global del software desarrollado mientras se reducen los tiempos de desarrollo y costes. Esta tesis doctoral propone un conjunto de técnicas para automatizar el control de calidad (pruebas y análisis) para aplicaciones web. La naturaleza heterogénea de las aplicaciones web hace las actividades de control de calidad sean complejas. Las aplicaciones web están basadas en una arquitectura cliente‐servidor. Esta tesis está centrada en la parte cliente de los sistemas web, ya que es el factor diferenciador de este tipo de aplicaciones. Según el estándar ISO‐9126, la calidad en uso es la calidad percibida por los usuarios de las aplicaciones durante las fases de operación y mantenimiento de dichas aplicaciones. Este tipo de calidad está determinada por la calidad externa (propiedades del sistema durante su ejecución) e interna (propiedades del sistema de forma estática) del sistema en cuestión. Así pues, la calidad en uso de las aplicaciones web es percibida siempre desde lado cliente de las aplicaciones web. El proceso de control de calidad propuesto en esta tesis doctoral está basado en la automatización de la navegación de las aplicaciones web. Los requisitos funcionales y no funcionales del sistema bajo pruebas guiarán el proceso. Respecto a los requisitos no funcionales, se realizarán pruebas y análisis para los atributos de calidad considerados como los más importantes para aplicaciones web: rendimiento, seguridad, compatibilidad, usabilidad y accesibilidad. El primer paso en esta automatización consistirá en definir la estructura de navegación de la misma. Para ello se usarán (y reutilizarán en la medida de lo posible) artefactos software existentes en las fase de análisis y diseño de las aplicaciones web bajo prueba. A continuación, según se lleve a cabo la navegación de forma automática, se realizarán diferentes tipos de pruebas y análisis en los diferentes estados por los que va pasando el sistema según avanza la navegación. La agregación de los veredictos de dicha evaluación será almacenada en un informe generado automáticamente que contendrá los diferentes tipos defectos encontrados, así como problemas potenciales en los atributos de calidad previamente seleccionados. Los procesos y métodos propuestos en esta tesis han sido puestos en marcha mediante una arquitectura e implementación de referencia. Además, se han llevado a cabo diferentes experimentos y casos de estudio para evaluar la validez de la propuesta. Este trabajo ha sido llevado a cabo en diferentes proyectos nacionales e internacionales de investigación, principalmente en los proyectos ICT‐ROMULUS, ITEA‐MOSIS y Factur@.