Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Ingegneria del software# Crittografia e sicurezza

Rivoluzionare il testing delle app Android con Delm

Delm migliora l'efficienza dei test delle app usando deep link per una copertura e affidabilità migliori.

― 6 leggere min


Delm: Test di App diDelm: Test di App diNuova Generazioneaffidabilità.deep link per una maggioreMigliorare il testing su Android con
Indice

Le app mobile sono ovunque. Ci aiutano con cose come chattare e leggere. Però, assicurarsi che queste app funzionino bene è difficile. Molti sviluppatori usano strumenti di testing per trovare problemi nelle loro app, ma questi strumenti spesso non colgono parti importanti dell'app a causa di funzioni nascoste o loop nel programma. Questo può far perdere un sacco di tempo, mentre i tester continuano a esplorare le stesse pagine di nuovo e di nuovo.

Per risolvere questo problema, presentiamo un nuovo metodo che usa deep link nelle app Android. I deep link sono link speciali che possono portare gli utenti direttamente a pagine specifiche dentro un'app. Utilizzando questi deep link nel processo di testing, abbiamo sviluppato uno strumento chiamato Delm, che sta per Deep Link-enhanced Monkey.

Il Problema con gli Strumenti di Testing Attuali

Trovare problemi in un'app è diventato sempre più importante. Le app vengono aggiornate velocemente, e se non funzionano come ci si aspetta, possono frustrate gli utenti e portarli ad abbandonare l'app. Le app Android sono molto complesse e hanno molte schermate con cui gli utenti interagiscono. La sfida per gli sviluppatori è garantire che ogni parte dell'app venga testata prima di essere pubblicata.

Gli attuali strumenti di testing GUI (Interfaccia Grafica) spesso non coprono tutte le parti dell'app. La ricerca mostra che gli strumenti esistenti coprono generalmente meno del 20% delle attività di un'app. Questa bassa copertura del codice significa che molti problemi potenziali rimangono non rilevati, danneggiando l'esperienza utente.

Una ragione per cui questi strumenti faticano è che alcune funzioni dell'app sono difficili da trovare. Ad esempio, le attività possono essere sepolte in profondità nell'app, costringendo gli utenti a passare attraverso molte pagine per raggiungerle. Inoltre, alcune attività sono nascoste dietro interfacce utente confuse, rendendo difficile per gli strumenti di testing attivarle. Infine, molti strumenti spesso rimangono bloccati in loop, controllando le stesse pagine senza progredire.

La Nostra Soluzione: Delm

Delm mira a affrontare queste sfide integrando i deep link nel processo di testing. Ecco come funziona:

  1. Analisi Statica: Delm esamina prima il codice dell'app per raccogliere informazioni sulla sua struttura e sui deep link disponibili.

  2. Esplorazione Dinamica: Durante il testing, se Delm si blocca in un loop o salta un'attività, utilizza i deep link per saltare a aree inesplorate dell'app. Questo aiuta a evitare di perdere tempo in test ripetuti.

  3. Simulazione del Contesto dell'Attività: Prima di attivare un'attività, Delm prepara il contesto necessario. Questo significa che controlla che tutte le informazioni necessarie siano pronte per evitare errori quando si lancia un'attività.

Combinando queste strategie, Delm migliora significativamente la copertura delle attività dell'app e aiuta gli sviluppatori a trovare più problemi potenziali.

L'Importanza del Contesto nelle App Android

Ogni app ha vari contesti che collegano le sue attività. Questi contesti aiutano a mantenere lo stato dell'app e garantire che si comporti come ci si aspetta. Alcuni contesti importanti includono:

  • Messaggi ICC: Questi sono messaggi che aiutano i diversi componenti all'interno dell'app a comunicare tra loro.
  • Configurazione del Dispositivo: Questo include dettagli come dimensione e formato dello schermo, che possono influenzare come viene visualizzata l'app.
  • Stack delle Attività: Questo è l'ordine in cui vengono lanciate le attività. Comprendere lo stack è fondamentale per navigare avanti e indietro tra le attività senza problemi.
  • Dati Globali: Questi sono pezzi chiave di informazione condivisi in tutta l'app, come le preferenze degli utenti.

Per garantire che Delm possa lanciare nuove attività con successo, deve considerare tutti questi contesti. Questo è cruciale per prevenire errori e falsi positivi durante il testing.

Come i Deep Link Migliorano il Testing GUI

I deep link permettono a Delm di saltare i percorsi usuali che gli utenti seguirebbero nell'app. Invece di navigare attraverso molte attività, Delm può direttamente attivare un'attività usando il suo deep link. Questo è particolarmente utile per quelle pagine difficili da raggiungere che spesso vengono trascurate nel testing tradizionale.

Estrazione e Associazione dei Deep Link

Delm può trovare i deep link già definiti nel codice dell'app e associarli alle attività. Se alcune attività mancano di deep link, Delm può aggiungere questi link, rendendo più facile accedervi in futuro senza troppi problemi.

Esplorazione Guidata

Quando Delm rileva che lo strumento di testing è bloccato o impiega troppo tempo su una pagina, può automaticamente saltare a un'altra attività. Questo metodo mantiene il processo di testing fluido ed efficiente. Lo strumento non si concentra solo sul trovare bug, ma assicura anche che il testing progredisca continuamente senza ritardi inutili.

Efficacia nel Testing nel Mondo Reale

Per valutare quanto bene funzioni Delm, l'abbiamo testato usando app industriali. Ecco alcune scoperte chiave:

  • Copertura: Delm ha raggiunto una copertura significativa delle attività e dei metodi, superando gli strumenti tradizionali. Ad esempio, ha coperto il 27.2% delle attività in app chiuse, molto più alto rispetto ad altri strumenti di riferimento.

  • Rilevamento dei Crash: Delm ha mostrato anche migliori capacità di rilevamento dei crash. Ha identificato più crash senza generare falsi positivi, il che significa che ha segnalato accuratamente problemi reali senza etichettare erroneamente attività sane come problematiche.

Vantaggi per gli Sviluppatori

Per gli sviluppatori di app, il principale vantaggio di usare Delm è l'affidabilità. Con una copertura più alta e un rilevamento più preciso dei crash, gli sviluppatori possono rilasciare le loro app con fiducia, sapendo che sono state testate a fondo.

Inoltre, Delm fa risparmiare tempo. Navigando in modo efficiente attraverso aree nascoste dell'app e evitando loop, gli sviluppatori possono concentrarsi su come risolvere i veri problemi invece di passare ore su test ripetitivi.

Sfide da Affrontare

Nonostante i suoi vantaggi, Delm non è senza sfide. Un grande ostacolo è la dipendenza dai metadati dell'interfaccia grafica dell'app. Se un'app usa interfacce complesse o è costruita con framework specifici come WebView, Delm potrebbe avere problemi ad accedere alle informazioni necessarie.

Inoltre, le misure di sicurezza in alcune app potrebbero ostacolare la modifica del loro codice, limitando la capacità di Delm di associare nuovi deep link o analizzare correttamente l'app.

Direzioni Future

Ci sono diverse strade per futuri miglioramenti di Delm. Un'area potenziale di focus è migliorare il modo in cui vengono gestiti i deep link, consentendo scenari di testing più dinamici. Inoltre, usare tecniche di visione artificiale per analizzare la GUI potrebbe ulteriormente ridurre la dipendenza dai metadati statici, consentendo un miglior testing di app complesse.

Inoltre, trovare un modo per Delm di esplorare l'app senza doverla modificare sarà cruciale. Questo potrebbe comportare lo sviluppo di metodi che consentano a Delm di funzionare all'interno della struttura esistente dell'app, fornendo soluzioni di testing senza soluzione di continuità.

Conclusione

Delm rappresenta un passo significativo in avanti nel testing delle applicazioni Android. Utilizzando efficacemente i deep link e l'analisi del contesto, migliora la copertura, riduce il tempo sprecato nei loop e potenzia il rilevamento dei crash. Man mano che le applicazioni mobili continuano a evolversi e crescere in complessità, strumenti come Delm saranno essenziali per garantire che queste app funzionino in modo affidabile e soddisfino le aspettative degli utenti. Con miglioramenti e aggiustamenti continui, Delm ha il potenziale per ridefinire gli standard del testing delle app Android.

Fonte originale

Titolo: Enhancing GUI Exploration Coverage of Android Apps with Deep Link-Integrated Monkey

Estratto: 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.

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

Ultimo aggiornamento: 2024-04-30 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2404.19307

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

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

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili