Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Ingegneria del software

Avanzare i test automatizzati delle interfacce grafiche con gli LLM

Un nuovo modo per migliorare il testing della GUI delle app mobili usando modelli di linguaggio grandi.

― 5 leggere min


Test di app mobile a unTest di app mobile a unlivello superioreguidati dall'AI.Trasformare il testing GUI con metodi
Indice

Le app mobile sono fondamentali nella nostra vita quotidiana e garantire la loro qualità è cruciale per una buona esperienza utente. Un modo per controllare la qualità delle app è attraverso il testing automatico dell'Interfaccia Utente Grafica (GUI). Questo tipo di testing verifica come gli utenti interagiscono con l'app, assicurandosi che tutto funzioni come dovrebbe. Tuttavia, i metodi tradizionali di testing automatico della GUI spesso trascurano problemi importanti e potrebbero non imitare completamente il comportamento reale degli utenti.

La Necessità di un Miglior Testing

I metodi di testing automatico attuali possono avere difficoltà con la copertura, il che significa che potrebbero non testare tutti i modi possibili in cui un utente potrebbe interagire con l'app. Possono anche fare troppo affidamento su una grande quantità di dati di addestramento, che è difficile da raccogliere. Nel frattempo, le app mobile hanno molte schermate diverse e interazioni complesse, rendendole difficili da testare. Per questa complessità, c'è bisogno di un nuovo approccio che possa generare azioni più realistiche per un testing approfondito.

Uso di Modelli Linguistici di Grandi Dimensioni

Ispirati dal successo dei Modelli Linguistici di Grandi Dimensioni (LLM), proponiamo un nuovo metodo per il testing della GUI mobile. Gli LLM, come GPT-3, hanno mostrato prestazioni forti nella comprensione del linguaggio naturale e nella risposta a domande. Trattando il testing della GUI come un compito di domanda e risposta, possiamo usare gli LLM per interagire con le app mobile e generare script di testing.

Il Nostro Approccio

Come Funziona

Il nostro approccio raccoglie prima informazioni dall'GUI dell'app, inclusi layout e stato attuale. Usa poi queste informazioni per creare suggerimenti per l'LLM. Il modello genera risposte che delineano i prossimi passi da seguire nell'app. Queste azioni suggerite vengono poi eseguite e i risultati vengono inviati di nuovo all'LLM per affinare il suo approccio in base al feedback.

Raccolta di Informazioni

Suddividiamo le informazioni di cui abbiamo bisogno in due tipi: contesto statico e contesto dinamico.

  1. Contesto Statico: Include informazioni generali sull'app, la specifica pagina GUI attualmente testata e dettagli sui widget di quella pagina.
  2. Contesto Dinamico: Include i progressi attuali del testing, come quante volte una pagina o un widget è stato interagito.

Queste informazioni sono cruciali per aiutare l'LLM a prendere decisioni informate su cosa fare dopo durante il processo di testing.

Generazione di Suggerimenti

Usando le informazioni estratte, generiamo suggerimenti da inserire nell'LLM. Questi suggerimenti descrivono lo stato attuale della GUI e chiedono quali azioni l'LLM dovrebbe intraprendere. Strutturando i suggerimenti correttamente, permettiamo all'LLM di capire meglio il contesto e produrre risposte utili.

Abbinamento delle Azioni ai Widget

Quando l'LLM genera un'azione, dobbiamo convertire la sua descrizione in linguaggio naturale nelle azioni specifiche che corrispondono ai widget dell'app. Questo avviene utilizzando una rete neurale di abbinamento. La rete prende l'azione suggerita dall'LLM e trova il widget appropriato basato sulla sua descrizione.

Valutazione dell'Efficacia

Per testare il nostro nuovo approccio, lo abbiamo valutato su una selezione di app mobile popolari. Abbiamo confrontato le sue prestazioni con i metodi esistenti, concentrandoci su due fattori principali:

  1. Copertura delle Attività: Misura quante diverse funzioni dell'app sono state testate.
  2. Rilevazione di Bug: Conta il numero di bug trovati durante il testing.

I nostri risultati hanno mostrato che il nostro metodo ha raggiunto il 71% di copertura delle attività, significativamente superiore ad altri metodi. Abbiamo anche rilevato il 36% in più di bug rispetto al miglior confronto, dimostrando l'efficacia del nostro metodo.

Nuova Rilevazione di Bug

Abbiamo anche testato il nostro approccio su un diverso set di app per vedere se potevamo trovare bug che altri avevano trascurato. In questo turno di testing, abbiamo scoperto 48 nuovi bug, 25 dei quali sono già stati confermati e risolti dagli sviluppatori.

Analisi delle Prestazioni

Il nostro approccio ha dimostrato diversi punti di forza:

  • Input Testuali Semantici: L'LLM può generare input testuali realistici, rendendo più facile navigare attraverso moduli e pagine complesse.
  • Azioni Complesse: Può gestire compiti che richiedono più azioni in sequenza, come riempire moduli in cui diversi input sono correlati.
  • Lunghe Tracce di Test: Il modello è capace di mantenere una cronologia di azioni, che gli consente di comprendere meglio il flusso del testing.
  • Prioritizzazione dei Casi di Test: Il nostro metodo tende a concentrarsi prima sul testare le parti più cruciali dell'app, massimizzando l'efficienza.

Il Futuro del Testing Automattico della GUI

Il testing automatico della GUI sta evolvendo continuamente. Il nostro approccio rappresenta un passo significativo in avanti integrando le capacità degli LLM nel processo di testing. Andando avanti, puntiamo a perfezionare ulteriormente il nostro metodo e comprendere perché gli LLM potenziano il testing della GUI.

Conclusione

In conclusione, il nostro lavoro introduce un nuovo modo di pensare al testing automatico della GUI per le app mobile. Usando gli LLM, possiamo generare azioni di testing più simili a quelle umane che portano a una migliore copertura e rilevazione di bug. Questo approccio non solo aiuta a garantire la qualità delle app mobile, ma apre anche la strada a metodi di testing più intelligenti e efficienti in futuro.

Fonte originale

Titolo: Chatting with GPT-3 for Zero-Shot Human-Like Mobile Automated GUI Testing

Estratto: Mobile apps are indispensable for people's daily life, and automated GUI (Graphical User Interface) testing is widely used for app quality assurance. There is a growing interest in using learning-based techniques for automated GUI testing which aims at generating human-like actions and interactions. However, the limitations such as low testing coverage, weak generalization, and heavy reliance on training data, make an urgent need for a more effective approach to generate human-like actions to thoroughly test mobile apps. Inspired by the success of the Large Language Model (LLM), e.g., GPT-3 and ChatGPT, in natural language understanding and question answering, we formulate the mobile GUI testing problem as a Q&A task. We propose GPTDroid, asking LLM to chat with the mobile apps by passing the GUI page information to LLM to elicit testing scripts, and executing them to keep passing the app feedback to LLM, iterating the whole process. Within it, we extract the static context of the GUI page and the dynamic context of the iterative testing process, design prompts for inputting this information to LLM, and develop a neural matching network to decode the LLM's output into actionable steps to execute the app. We evaluate GPTDroid on 86 apps from Google Play, and its activity coverage is 71%, with 32% higher than the best baseline, and can detect 36% more bugs with faster speed than the best baseline. GPTDroid also detects 48 new bugs on the Google Play with 25 of them being confirmed/fixed. We further summarize the capabilities of GPTDroid behind the superior performance, including semantic text input, compound action, long meaningful test trace, and test case prioritization.

Autori: Zhe Liu, Chunyang Chen, Junjie Wang, Mengzhuo Chen, Boyu Wu, Xing Che, Dandan Wang, Qing Wang

Ultimo aggiornamento: 2023-05-16 00:00:00

Lingua: English

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

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

Licenza: https://creativecommons.org/publicdomain/zero/1.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