Ana Rosario Espada Sandi
La tecnología móvil ha surgido de la necesidad de las personas de llevar consigo un medio de comunicación con opciones de entretenimiento, una biblioteca y acceso a Internet. Actualmente, se ha masificado el uso de dispositivos móviles inteligentes (smart) que se utilizan como algo más que un mero medio de comunicación. Desde un dispositivo móvil smart se puede, por ejemplo, tomar fotografías, gestionar cuentas bancarias, localizar restaurantes y comercios cercanos a la ubicación geográfica del usuario, registrar las actividades físicas diarias, e incluso mostrar indicadores biométricos y de salud.
El escenario de verificación de las Apps es muy distinto y más exigente que el de las aplicaciones que se ejecutan en PC. En primer lugar, el funcionamiento de las Apps puede variar entre dispositivos, esto significa que las Apps se deben analizar físicamente en varios modelos de dispositivos. En segundo lugar, cualquier programa de análisis puede corromper el funcionamiento normal de un dispositivo, por lo que una buena alternativa para analizar las Apps sin comprometer los resultados es utilizar dispositivos externos. Finalmente, las secuencias de acciones que sigue el usuario utilizando las Apps pueden dar lugar a fallos que no son identificados con facilidad en tiempo de desarrollo, por este motivo el comportamiento del usuario debe formar parte del análisis de las Apps.
En este trabajo se presenta una propuesta integrada para analizar propiedades extra-funcionales en tiempo de ejecución de aplicaciones móviles que utiliza de forma conjunta los métodos formales: Model Checking , Model Based Testing y Runtime Verification. La propuesta inicia con un modelo formal de todos los posibles comportamientos ejecutados por un usuario sobre una o varias Apps, de manera que se representan todas las acciones potenciales del usuario. Entonces, se explora exhaustivamente el modelo, utilizando la técnica de Model Checking, para generar un conjunto de casos de prueba. Finalmente, los casos de prueba son ejecutados sobre dispositivos móviles de manera secuencial para controlar la ejecución de las Apps, parlamente, un proceso de verificación en tiempo de ejecución analiza si las trazas de capturadas de los dispositivos satisfacen las propiedades extra-funcionales. Por lo tanto, la propuesta permite analizar varias Apps sobre varios dispositivos al mismo tiempo.
El contenido de este estudio presenta la definición y la formalización tanto del lenguaje de modelado del comportamiento de usuario sobre las aplicaciones, como el lenguaje de especificación que representa las propiedades extra-funcionales.
Para evaluar la propuesta se han desarrollado tres casos de estudio principales. En el primer caso de estudio se describe como se modela el comportamiento de usuario, y como se generan automáticamente los casos de prueba. El modelo diseñado contiene de la interacción entre dos aplicaciones Facebook y YouTube que se ejecutan sobre dos dispositivos.
En el segundo caso de estudio se ha evaluado la energía consumida al descargar un archivo de mediante HTTP. Este caso de estudio se utilizó para comprobar el consumo de energía en una secuencia de acciones. Para esto se ha determinado una propiedad extra-funcional (descrita en nuestro lenguaje de especificación) que evalúa si la energía consumida en una acción de usuario es menor a un valor específico.
El tercer caso de estudio es un experimento que se ha realizado sobre la aplicación de Spotify para Android para examinar patrones de tráfico generados por la aplicación al reproducir una serie de canciones. En este experimento se describe la capacidad de la propuesta para identificar los comportamientos de tráfico de red anormales en una aplicación multimedia y cómo las diferentes interacciones de los usuarios pueden influir en los patrones de tráfico inesperados.
Esta tesis se organiza de la siguiente manera. La parte I describe la introducción, la sinopsis y las contribuciones del trabajo. La parte II describe los fundamentos de la propuesta explicando las técnicas utilizadas y, la arquitectura de las aplicaciones móviles Android. La parte III presenta el diseño de la propuesta y su implementación. La parte IV describe los diferentes experimentos realizados, junto con sus resultados, que prueban la utilidad de nuestra propuesta. Finalmente, La parte V describe los trabajos relacionados, las conclusiones y posibles trabajos futuros.
© 2008-2024 Fundación Dialnet · Todos los derechos reservados