Full text
237 Aplicando Técnicas de Testing en Sistemas para la Difusión Patrimonial J.J. Gutierrez, M.J. Escalona, M. Mejías, J.Torres Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla [email protected] Resumen: En los últimos años, la información sobre el patrimonio ha adquirido mayor interés. Turistas, investigadores y gente interesada en general demanda sistemas de información de calidad que le permitan mejorar su conocimiento sobre el legado patrimonial. Sin embargo, la amplia temática que tienen estos sistemas, así como la diversidad del público interesado, provoca que sean amplios y complejos y que sean necesarias técnicas metodológicas para su desarrollo que faciliten las tareas de validación de los resultados en las primeras fases del ciclo de vida. Este trabajo presenta la aplicación de un entorno metodológico, NDT, para el desarrollo de un sistema de información de patrimonio Mueble en Andalucía y analiza cómo la aplicación de dicho entorno permite utilizar técnicas de testing en el desarrollo de dicho sistema. Palabras clave: Gestión patrimonial, testing, metodologías web, pruebas de sistema, pruebas funcionales. 1. Introducción Una biblioteca digital proporciona a una comunidad de usuarios un acceso coherente a repositorios de información grandes y organizados. Las bibliotecas digitales son construidas, recogiendo y organizando la información por una comunidad de usuarios y sus funcionalidades son acordes a las necesidades de información de dicha comunidad. Las posibilidades de los usuarios para acceder, reorganizar y utilizar este repositorio están enriquecidas con las capacidades de la tecnología digital.
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 238 El desarrollo de un sistema destinado al tratamiento de bibliotecas digitales es una tarea complicada en la que se mezclan complejos requisitos de almacenamiento debido a la diversidad de formatos de información (texto, imagen, vídeo, audio, etc.) y a la existencia de varios subcampos de otros dominios como: técnicas de digitalización (OCR, OMR), integración de múltiples tipos de medios, búsqueda de información basada en el contenido (imágenes, vídeos), interacción con el usuario, manejo de información multilingüe, comercio y economía, gestión de bases de datos distribuidas. La complejidad que pueden llegar a adquirir los sistemas para el tratamiento de bibliotecas digitales así como la importancia de que los resultados se adecuen a las necesidades del cliente, obligan a que se busquen alternativas tecnológicas y metodológicas que garanticen la calidad de los resultados. Durante este trabajo se presenta un problema real basado en la difusión turística del patrimonio de una comunidad autónoma que ha sido desarrollado usando una metodología de desarrollo Web llamada NDT[5][6]. Este artículo se centra en estudiar cómo se puede aplicar esta metodología y cómo facilita la aplicación de una serie de técnicas de testing, ya en la fase de ingeniería de requisitos, que ayuda a encontrar errores, omisiones, inconsistencias y sobreespecificaciones en los requisitos cuando es fácil y económico corregirlas y obtener un conjunto de pruebas de sistema o funcionales que garanticen que toda la funcionalidad requerida por el sistema ha sido correctamente implementada. Para ello, en el apartado dos se plantea el problema a resolver. En el tercer apartado se presenta una visión general de la metodología usada para el desarrollo de este sistema y el cuarto cómo se pueden usar las técnicas de testing en el mismo. Por último, se plantean las conclusiones y trabajos futuros.
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 239 2. Planteamiento del problema La demanda creciente de la información sobre el patrimonio histórico, tanto turística como investigadora, ha movido a organizaciones y empresas dedicadas a la gestión patrimonial a buscar nuevas vías de difusión de la información que manejan. En este sentido, el Instituto Andaluz de Patrimonio Histórico [10], ha promovido desde hace años el desarrollo de sistemas que permitan la difusión de la información vía Internet. El Sistema de Información del Patrimonio Histórico Andaluz (SIPHA) [3] es una muestra de ello. El SIPHA se divide en dos áreas temáticas principales: el área de bienes muebles y el área de bienes inmuebles. Esta última, a su vez, se divide en el Sistema de Información de Bienes Arqueológicos, el Sistema de Información de Bienes Etnológicos y el Sistema de Información de Bienes Arquitectónicos. Además de estos cuatro módulos principales, en el SIPHA aparecen dos elementos importantes compartidos por todas las unidades temáticas: el Sistema de Información Documental, que almacena toda la información documental, gráfica y bibliográfica referente a los bienes, y el Tesauro de Patrimonio Histórico, que almacena los términos normalizados del patrimonio. En la figura 1 se muestra un esquema con los módulos del sistema y las interrelaciones entre ellos.
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 240 Figura 1. Estructura del SIPHA El sistema resulta bastante complejo por la cantidad de datos, los múltiples medios con los que trabaja, las necesidades funcionales que tiene y la necesidad de que se adecue a los distintos tipos de usuario que interactúan con el sistema: arqueólogos, etnólogos, artistas, turistas, visitantes, etc. S.I.P. Arquitectónico S.I.P. Arqueológico S.I.P. Etnológico Sistema de información del Patrimonio Inmueble Sistema de información del Patrimonio Mueble Tesauro B.D. Gráfica B.D. Bibliográfica B.D. Documental Sistema Documental
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 241 Durante este artículo, el trabajo se centra exclusivamente en el Sistema de Información del Patrimonio Mueble[1] pues el problema completo resulta demasiado extenso para tratarlo aquí[4]. 3. Visión general de NDT NDT es un proceso metódico que se centra en las fases de requisitos y análisis y ofrece una guía sistemática para tratar en estas fases con los aspectos de navegación e interfaz abstracta. NDT entiende que en la fase de análisis se deben modelar los aspectos de navegación e interfaz abstracta. Otros aspectos como la adaptabilidad del sistema, la arquitectura o la seguridad, quedarían para la fase de diseño. NDT no pretende ofrecer nuevos lenguajes de modelado. De los estudios comparativos realizados antes de NDT[2][7][11][13], se puede concluir en que ya existen suficientes lenguajes de modelado y modelos en análisis que han resultado válidos para modelar la navegación y la interfaz abstracta. La aportación más importante de NDT es que ofrece una guía sistemática para el tratamiento de la navegación y la interfaz. En este sentido, se podría indicar que NDT es una propuesta orientada al proceso. NDT describe de manera detallada todos los pasos que hay que realizar para tratar los requisitos y a partir de ellos conseguir los modelos de análisis. Tras la aplicación de las técnicas se consiguen resultados y modelos cuya nomenclatura y estructura está completamente detalladas en NDT. Además, tras la aplicación de todo el proceso, en NDT se obtienen una serie de resultados generales: el documento de requisitos del sistema, el documento de análisis del sistema y los prototipos de la interfaz abstracta. La estructura de todos ellos está descrita en NDT.
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 242 3.1 Ciclo de vida de NDT El ciclo de vida de NDT está compuesto por dos fases: la ingeniería de requisitos y el análisis. Aunque, en principio, ambas son secuénciales, el proceso de NDT no lo es, puesto que en muchos momentos se puede realizar la vuelta atrás para corregir errores o incongruencias. En la primera etapa de la ingeniería de requisitos se definen cuáles son los objetivos del sistema a desarrollar y en base a ellos se capturan y definen los diferentes requisitos del sistema. Los requisitos en NDT son agrupados según su carácter en requisitos de almacenamiento de información, requisitos de actores, requisitos funcionales, requisitos de interacción y requisitos no funcionales. Cada grupo de requisitos es tratado de una manera particular, adecuada a su tipología. Una vez capturados y definidos los requisitos se pasa a la validación de los mismos. Si durante la validación se detectan errores, se vuelve a la captura y definición hasta llegar al resultado final adecuado. Este resultado final queda plasmado en el documento de requisitos del sistema. Con el documento de requisitos, se pasa a la fase de análisis. Durante la fase de análisis se generan varios modelos. El primero de ellos es el modelo conceptual. El modelo conceptual en NDT representa la estructura estática del sistema y viene representado por un diagrama de clases. La generación de este modelo consta de dos partes, la primera de ellas es sistemática y permite conseguir un modelo conceptual básico desde los requisitos. El resultado de este proceso sistemático suele coincidir bastante con el modelo conceptual más adecuado para el sistema, pero por si se pudieran realizar mejoras que aumenten la calidad del resultado, NDT propone una segunda etapa en el proceso de creación del modelo conceptual.
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 243 En esta segunda etapa, NDT propone una serie de revisiones en las que el analista debe ir aplicando su experiencia para revisar los resultados del modelo básico. La aplicación de estas revisiones tiene dos ventajas. La primera de ellas es que, a pesar de que NDT ofrezca el proceso sistemático, también deja libertad al analista para aplicar su experiencia. Pero por otro lado, también permite detectar incongruencias y errores cometidos durante la fase de ingeniería de requisitos. Por ello, puede ser posible que durante esta actividad del análisis haya que volver a la ingeniería de requisitos a modificar los resultados. El segundo modelo que se genera durante el análisis es el modelo de navegación. En NDT el modelo de navegación se compone de una serie de diagramas, con una notación estereotipada a partir del diagrama de clases de UML.. Los diferentes diagramas se corresponden a los sistemas de navegación para los diferentes roles de usuario que interactúan con el sistema. El proceso de generación del modelo de navegación también consta de dos partes. La primera de ellas es sistemática y permite conseguir un modelo de navegación básico desde los requisitos. La segunda igualmente consiste en revisar el resultado del proceso sistemático para detectar incongruencias cometidas y para que el analista aplique su experiencia.. También durante esta segunda etapa se pueden detectar incongruencias en el resultado de ingeniería de requisitos que puede obligar a volver a la fase anterior para realizar revisiones. Todos estos cambios que se pueden producir durante la generación del modelo de navegación o del modelo conceptual están controlados y detallados en NDT. NDT ofrece una guía completa de posibles modificaciones e indica cómo afectan a fases y resultados anteriores.
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 244 Cuando se tienen el modelo conceptual y de navegación, se genera en NDT la interfaz abstracta. Ésta no viene representada por un diagrama, sino por un conjunto de prototipos evaluables por el usuario. También durante la evaluación de estos prototipos se pueden detectar errores que obliguen a volver a la etapa anterior. Figura 2. Descripción general de las actividades de NDT La aplicación de NDT genera tres resultados finales:
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 245 • El documento de requisitos del sistema, donde se detallan los objetivos y requisitos que debe cumplir el sistema. • El documento de análisis del sistema, donde se recogen el modelo conceptual y el modelo de navegación del sistema. • Los prototipos del sistema, que muestran la estructura de la interfaz abstracta del sistema. Estos documentos y prototipos serán la base para la realización de la etapa de diseño e implementación del sistema. 4. Técnicas de testing sobre requisitos funcionales. 4.1 Tipos de testing Existen muchos tipos posibles de pruebas de software. Una posible clasificación de esas pruebas dependiendo de su cometido, se recoge en la tabla 1. Las fases donde se realizan cada prueba se muestran en la figura 3. Pruebas Unitarias. Prueban el diseño y el comportamiento de cada uno de los componentes una vez codificados. Pruebas de Integración. Comprueban la correcta unión de los componentes entre sí a través de sus interfaces, y si cumplen con la funcionalidad establecida Pruebas del Sistema. Prueban a fondo el sistema, comprobando su funcionalidad e integridad globalmente, en un entorno lo más parecido posible al entorno final de producción. Pruebas de Implantación. Comprueba el correcto funcionamiento del sistema dentro del entorno real de producción. Pruebas de Aceptación. Verifican que el sistema cumple con todos los requisitos indicados y permite que los usuarios del sistema den el visto bueno definitivo. Pruebas de Regresión. El objetivo es comprobar que los cambios sobre un componente, no generan errores adicionales en otros componentes no modificados. Tabla 1. Clasificación de las pruebas del software
V Congreso “Turismo y Tecnologías de la Información y las Comunicaciones” TuriTec 2004 252 RETSCHITZEGGER, W. & SCHWINGER, W. Towards Modeling of Data Web Applications - A Requirements Perspective. Proceedings of the American Conference on Informating Systems AMCIS 2000, Vol 1, pp. 149-155. 2000 RIEBISCH, M., PHILIPPOW, I., ILMENAU, M.G. 2002. UML-Based Statistical Test Case Generation. Technical University, Ilmenau, Germany AHLOWALIA, NARESH. 2002. Testing From Use Cases Using Path Analysis Technique. International Conference On Software Testing Analysis & Review