Simple Science

Ciencia de vanguardia explicada de forma sencilla

# Informática# Ingeniería del software# Criptografía y seguridad

Revolucionando las pruebas de aplicaciones Android con Delm

Delm mejora la eficiencia de las pruebas de aplicaciones usando enlaces profundos para tener mejor cobertura y fiabilidad.

― 7 minilectura


Delm: Pruebas de Apps deDelm: Pruebas de Apps deNueva Generaciónenlaces profundos para más fiabilidad.Mejorando las pruebas de Android con
Tabla de contenidos

Las aplicaciones móviles están por todas partes. Nos ayudan con tareas como chatear y leer. Sin embargo, asegurarse de que estas apps funcionen bien es complicado. Muchos desarrolladores utilizan herramientas de prueba para encontrar problemas en sus aplicaciones, pero a menudo estas herramientas se saltan partes importantes de la app debido a características ocultas o bucles en el programa. Esto puede hacer que se pierda mucho tiempo, ya que los testers siguen explorando las mismas páginas una y otra vez.

Para solucionar este problema, presentamos un nuevo método que utiliza deep links en aplicaciones de Android. Los deep links son enlaces especiales que pueden llevar a los usuarios directamente a páginas específicas dentro de una app. Al usar estos deep links en el proceso de prueba, desarrollamos una herramienta llamada Delm, que significa Deep Link-enhanced Monkey.

El Problema con las Herramientas de Prueba Actuales

Encontrar problemas en una app es cada vez más importante. Las aplicaciones se actualizan rápido, y si no funcionan como se espera, puede frustrar a los usuarios y hacer que abandonen la app. Las aplicaciones de Android son muy complejas y tienen muchas pantallas con las que interactúan los usuarios. El reto para los desarrolladores es asegurarse de que cada parte de la app sea probada antes de que salga al público.

Las herramientas de prueba GUI (Interfaz Gráfica de Usuario) actuales a menudo no cubren todas las partes de la app. La investigación muestra que las herramientas existentes generalmente solo cubren menos del 20% de las actividades de una app. La baja cobertura de código significa que muchos problemas potenciales quedan sin detectar, lo que puede dañar la experiencia del usuario.

Una razón por la que estas herramientas tienen problemas es que algunas características de la app son difíciles de encontrar. Por ejemplo, las actividades pueden estar muy ocultas dentro de la app, lo que exige a los usuarios pasar por muchas páginas para llegar a ellas. Además, algunas actividades están ocultas tras interfaces de usuario confusas, lo que dificulta que las herramientas de prueba las activen. Por último, muchas herramientas a menudo se quedan atrapadas en bucles, revisando las mismas páginas sin avanzar.

Nuestra Solución: Delm

Delm busca abordar estos desafíos integrando deep links en el proceso de prueba. Aquí te explico cómo funciona:

  1. Análisis Estático: Delm primero examina el código de la app para reunir información sobre su estructura y los deep links disponibles.

  2. Exploración Dinámica: Durante la prueba, si Delm se queda atrapado en un bucle o pierde una actividad, utiliza deep links para saltar a áreas no exploradas de la app. Esto ayuda a evitar perder tiempo en pruebas repetidas.

  3. Simulación del Contexto de Actividad: Antes de activar una actividad, Delm prepara el contexto requerido. Esto significa que verifica que toda la información necesaria esté lista para evitar errores al lanzar una actividad.

Al combinar estas estrategias, Delm mejora significativamente la cobertura de las actividades de la app y ayuda a los desarrolladores a encontrar más problemas potenciales.

La Importancia del Contexto en las Apps de Android

Cada app tiene varios contextos que conectan sus actividades. Estos contextos ayudan a mantener el estado de la app y aseguran que se comporte como se espera. Algunos contextos importantes incluyen:

  • Mensajes ICC: Estos son mensajes que ayudan a diferentes componentes dentro de la app a comunicarse entre sí.
  • Configuración del Dispositivo: Esto incluye detalles como el tamaño y formato de la pantalla, que pueden afectar cómo se muestra la app.
  • Pila de Actividades: Este es el orden en que se lanzan las actividades. Entender la pila es esencial para navegar hacia adelante y hacia atrás de manera fluida entre actividades.
  • Datos Globales: Estas son piezas clave de información compartidas en toda la app, como las preferencias del usuario.

Para asegurarse de que Delm pueda lanzar nuevas actividades con éxito, tiene que tener en cuenta todos estos contextos. Esto es crucial para prevenir errores y falsos positivos durante las pruebas.

Cómo los Deep Links Mejoran las Pruebas GUI

Los deep links permiten a Delm saltarse los caminos usuales que los usuarios tomarían a través de la app. En lugar de navegar por muchas actividades, Delm puede activar directamente una actividad usando su deep link. Esto es particularmente útil para esas páginas difíciles de alcanzar que suelen ser pasadas por alto en pruebas tradicionales.

Extracción y Vinculación de Deep Links

Delm puede encontrar los deep links ya definidos en el código de la app y vincularlos a las actividades. Si algunas actividades carecen de deep links, Delm puede añadir estos enlaces, facilitando así el acceso a ellas en el futuro sin mucho lío.

Exploración Guiada

Cuando Delm detecta que la herramienta de prueba está atascada o tardando demasiado en una página, puede saltar automáticamente a otra actividad. Este método mantiene el proceso de prueba fluido y eficiente. La herramienta no solo se centra en encontrar errores, sino que también asegura que la prueba progrese continuamente sin retrasos innecesarios.

Efectividad en Pruebas del Mundo Real

Para evaluar qué tan bien funciona Delm, lo probamos usando aplicaciones industriales. Aquí están algunos hallazgos clave:

  • Cobertura: Delm logró una cobertura significativa de actividades y métodos, superando a las herramientas tradicionales. Por ejemplo, cubrió el 27.2% de las actividades en apps de código cerrado, considerablemente más alto que otras herramientas de referencia.

  • Detección de Fallos: Delm también mostró mejores capacidades de detección de fallos. Identificó más fallos sin producir falsos positivos, lo que significa que señaló con precisión problemas genuinos sin etiquetar erróneamente actividades sanas como problemáticas.

Beneficios para los Desarrolladores

Para los desarrolladores de apps, la principal ventaja de usar Delm es la fiabilidad. Con una mayor cobertura y detección precisa de fallos, los desarrolladores pueden lanzar sus apps con confianza, sabiendo que han sido probadas a fondo.

Además, Delm ahorra tiempo. Al navegar de manera eficiente por áreas ocultas de la app y evitar bucles, los desarrolladores pueden centrarse en solucionar problemas reales en lugar de gastar horas en pruebas repetitivas.

Desafíos a Abordar

A pesar de sus ventajas, Delm no está exento de desafíos. Uno de los mayores obstáculos es la dependencia de los metadatos de la GUI de la app. Si una app utiliza interfaces complejas o está construida con frameworks específicos como WebView, Delm puede tener problemas para acceder a la información necesaria.

Además, las medidas de seguridad en algunas apps pueden impedir la modificación de su código, limitando la capacidad de Delm para vincular nuevos deep links o analizar la app correctamente.

Direcciones Futuras

Hay varias vías para la mejora futura de Delm. Un área potencial de enfoque es mejorar la forma en que se manejan los deep links, permitiendo escenarios de prueba más dinámicos. Adicionalmente, usar técnicas de visión por computadora para analizar la GUI podría reducir aún más la dependencia del metadato estático, habilitando mejores pruebas de aplicaciones complejas.

Además, encontrar una forma para que Delm explore la app sin necesidad de modificarla será crucial. Esto podría implicar desarrollar métodos que permitan a Delm funcionar dentro de la estructura existente de la app, proporcionando soluciones de pruebas fluidas.

Conclusión

Delm representa un avance significativo en la prueba de aplicaciones de Android. Al usar de manera efectiva los deep links y el análisis de contexto, mejora la cobertura, reduce el tiempo perdido en bucles y mejora la detección de fallos. A medida que las aplicaciones móviles continúan evolucionando y creciendo en complejidad, herramientas como Delm serán esenciales para asegurarse de que estas apps funcionen de manera fiable y satisfagan las expectativas de los usuarios. Con mejoras y ajustes continuos, Delm tiene el potencial de redefinir los estándares de la prueba de aplicaciones de Android.

Fuente original

Título: Enhancing GUI Exploration Coverage of Android Apps with Deep Link-Integrated Monkey

Resumen: Mobile apps are ubiquitous in our daily lives for supporting different tasks such as reading and chatting. Despite the availability of many GUI testing tools, app testers still struggle with low testing code coverage due to tools frequently getting stuck in loops or overlooking activities with concealed entries. This results in a significant amount of testing time being spent on redundant and repetitive exploration of a few GUI pages. To address this, we utilize Android's deep links, which assist in triggering Android intents to lead users to specific pages and introduce a deep link-enhanced exploration method. This approach, integrated into the testing tool Monkey, gives rise to Delm (Deep Link-enhanced Monkey). Delm oversees the dynamic exploration process, guiding the tool out of meaningless testing loops to unexplored GUI pages. We provide a rigorous activity context mock-up approach for triggering existing Android intents to discover more activities with hidden entrances. We conduct experiments to evaluate Delm's effectiveness on activity context mock-up, activity coverage, method coverage, and crash detection. The findings reveal that Delm can mock up more complex activity contexts and significantly outperform state-of-the-art baselines with 27.2\% activity coverage, 21.13\% method coverage, and 23.81\% crash detection.

Autores: Han Hu, Han Wang, Ruiqi Dong, Xiao Chen, Chunyang Chen

Última actualización: 2024-04-30 00:00:00

Idioma: English

Fuente URL: https://arxiv.org/abs/2404.19307

Fuente PDF: https://arxiv.org/pdf/2404.19307

Licencia: https://creativecommons.org/licenses/by/4.0/

Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.

Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.

Más de autores

Artículos similares