Agente di test delle app (Android)

L'agente App Testing è un agente di generazione, gestione ed esecuzione di scenari di test basato su Gemini in Firebase. Definisci gli obiettivi di test in linguaggio naturale e l'agente utilizza l'AI per comprendere e navigare nella tua app, simulare le interazioni degli utenti e fornire risultati di test dettagliati.

In che modo l'agente App Testing utilizza i tuoi dati

L'agente App Testing è fornito da Gemini in Firebase ed è regolato dagli stessi termini. Consulta l'articolo In che modo Gemini in Firebase utilizza i tuoi dati per saperne di più su come Gemini in Firebase utilizza i tuoi dati.

Prima di iniziare

Se non l'hai ancora fatto, registra la tua app con Firebase.

Se non utilizzi altri prodotti Firebase, devi solo creare un progetto e registrare la tua app. Non devi aggiungere SDK alla tua app. Tuttavia, se in futuro decidi di utilizzare altri prodotti, assicurati di completare tutti i passaggi descritti in Aggiungere Firebase utilizzando la console Firebase.

Creare uno scenario di test

Per eseguire test guidati dall'AI, l'agente App Testing utilizza i tuoi scenari di test in linguaggio naturale per eseguire test sulla tua app.

Ogni scenario di test è suddiviso in passaggi, che verranno eseguiti in sequenza. I passaggi ti consentono di suddividere lo scenario di test in fasi, ognuna con la propria asserzione. L'agente può eseguire molte azioni durante un passaggio.

Esistono due modi per creare uno scenario di test: utilizzando un file YAML o la console Firebase. I file YAML ti consentono di gestire gli scenari di test in autonomia, in genere in un repository di codice sorgente con controllo delle versioni. In alternativa, la console Firebase può archiviare i casi di test in remoto insieme ai dati di App Distribution.

Utilizzo di file YAML

L'esempio seguente mostra un file YAML che definisce due scenari di test:

tests:
- displayName: Login as guest
  id: login-as-guest
  steps:
  - goal: Log in as a guest
    finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
  prerequisiteTestCaseId: login-as-guest
  steps:
  - goal: Open the article on "Bob Dylan"
    hint: Use the search function to find it
    finalScreenAssertion: >-
      The article is opened and the title "Bob Dylan" is visible.
  - goal: Find Bob Dylan's birthday in the article
    hint: >-
      Look for the "Born" section in the infobox on the right side of the page.
    finalScreenAssertion: >-
      The text "May 24, 1941" is visible on the screen.

Puoi organizzare gruppi di test in un unico file e separare queste suite di test in più file. Puoi aggiungere uno scenario di test prerequisito aggiungendo un ID al test e poi facendo riferimento a questo ID utilizzando prerequisiteTestCaseId.

Utilizzo della console App Distribution

In alternativa, puoi creare e gestire i tuoi scenari di test nella console Firebase. Per creare uno scenario di test, apri la pagina App Distribution della console Firebase e segui questi passaggi:

  1. Nella scheda Scenari di test, fai clic su Nuovo scenario di test. Se non vuoi creare il tuo caso di test, puoi modificare o utilizzare l'esempio di caso di test fornito.
  2. Nella finestra di dialogo Aggiungi scenario di test, assegna un nome allo scenario di test. Viene utilizzato per identificare il test, ma viene ignorato dall'agente.
  3. (Facoltativo) Seleziona uno scenario di test prerequisito che contenga i passaggi di configurazione da eseguire prima del test principale. Se il test preliminare non va a buon fine, l'intero test verrà contrassegnato come non superato. I passaggi e i risultati dei test preliminari e principali verranno mostrati insieme nei risultati del test.
  4. Valuta la possibilità di suddividere il test in più passaggi facendo clic sul pulsante Aggiungi un altro passaggio.
  5. Assegna a ogni passaggio un obiettivo che descriva cosa deve fare l'agente di test dell'app durante il passaggio.
  6. (Facoltativo) Aggiungi un suggerimento per fornire ulteriori informazioni per aiutare l'agente di test dell'app a comprendere la tua app e a navigare al suo interno durante questo passaggio.
  7. Aggiungi l'asserzione della schermata finale per aiutare l'agente di test delle app a determinare quando il passaggio è stato completato correttamente. Questa asserzione deve fare riferimento solo a ciò che è visibile sullo schermo.
  8. Al termine della personalizzazione del test, fai clic su Salva.

Scenario di test di esempio

Di seguito è riportato un esempio di come creare uno scenario di test utilizzando l'agente App Testing:

Titolo del test

Caricamenti della home page

Obiettivo

Caricare la home page

Suggerimento

Ignora le schermate di onboarding. Chiudi eventuali popup. Non accedere.

Asserzione schermata finale

La home page principale dell'app è visibile sullo schermo, tutte le immagini sono state caricate e non vengono visualizzati errori.

Esegui un test

Il modo in cui esegui i test dipende da come crei e gestisci i casi di test. Se definisci gli scenari di test utilizzando i file YAML, eseguirai questi test utilizzando l'interfaccia a riga di comando di Firebase. Se crei i tuoi scenari di test nella console App Distribution, li eseguirai dalla console o tramite uno degli strumenti CLI di App Distribution.

Utilizzo di file YAML

Gli scenari di test definiti nei file YAML possono essere eseguiti utilizzando la CLI Firebase.

  1. Installa o esegui l'aggiornamento all'ultima versione dell'interfaccia a riga di comando di Firebase. Ti consigliamo di scaricare il file binario autonomo per la CLI specifico per il tuo sistema operativo.
  2. Accedi e verifica di poter accedere ai tuoi progetti. Tieni presente che se utilizzi la CLI Firebase in un ambiente CI, puoi autenticarti anche con un service account o utilizzando login:ci.
  3. Esegui il comando apptesting:execute. Ad esempio:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
apptesting:execute [options] [/path/to/app/binary]
--app

Obbligatorio:l'ID app Firebase della tua app. Puoi trovare l'ID app nella console Firebase, nella pagina Impostazioni generali.

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

Percorso di una directory che contiene i file YAML degli scenari di test. Il comando esegue la ricerca in modo ricorsivo in questa directory, quindi i file possono essere organizzati facoltativamente in sottodirectory. Se non è impostato, viene utilizzato "./tests" per impostazione predefinita.

--test-devices o
--test-devices-file

I dispositivi di test su cui vuoi distribuire le build alla funzionalità dell'agente App Testing.

Puoi specificare i dispositivi di test come un elenco di dispositivi di test separati da punto e virgola:

--test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

In alternativa, puoi specificare il percorso di un file di testo normale contenente un elenco di dispositivi di test separati da punto e virgola:

--test-devices-file "/path/to/test-devices.txt"

Puoi cercare i modelli di dispositivo disponibili utilizzando gcloud CLI.

--test-non-blocking

Se impostato, il comando avvierà i test e poi restituirà immediatamente il risultato anziché attendere il completamento.

--test-file-pattern

Un pattern di espressione regolare. Verranno eseguiti solo i test contenuti nei file che corrispondono a questo pattern.

--test-name-pattern

Un pattern di espressione regolare. Verranno eseguiti solo i test con nomi visualizzati che corrispondono a questo pattern.

/path/to/app/binary

(Facoltativo) Il percorso del file binario dell'app. Se omesso, l'agente utilizzerà l'ultima release caricata su App Distribution per l'app specificata.

Utilizzo della console App Distribution

Per eseguire gli scenari di test archiviati in App Distribution, puoi utilizzare la console Firebase, Firebase CLI o i plug-in Gradle o fastlane di App Distribution.

Importare ed esportare scenari di test con file YAML

L'importazione di scenari di test da file YAML è utile quando vuoi gestirli al di fuori della console Firebase. Può essere utile anche esportare i casi di test per spostarli tra i progetti. Puoi utilizzare un LLM per perfezionare i casi di test esistenti o crearne di nuovi. Puoi importare ed esportare scenari di test dalla pagina Scenari di test nella console Firebase o a livello di programmazione utilizzando Firebase CLI. Per un esempio di scenario di test YAML, consulta Creare uno scenario di test YAML.

Visualizzare i risultati del test

Puoi visualizzare i risultati dei test nella pagina Release della scheda Agente di test delle app di una release. Il pulsante Visualizza dettagli aprirà la finestra di dialogo Risultati del test e mostrerà eventuali problemi, screenshot dell'app e le azioni intraprese da Gemini durante il test.

Se un test include azioni riprodotte, puoi visualizzare l'esecuzione del test originale guidato dall'AI o cancellare la cache.

Per saperne di più sui risultati del test, utilizza la seguente tabella:

Icona Nome Descrizione
spark Azione AI Indica che l'agente di test dell'app ha utilizzato Gemini per decidere di intraprendere un'azione o terminare il passaggio.
replay Azione ripetuta Indica che l'agente di test delle app ha riprodotto un'azione da un'esecuzione precedente del test riuscita.
spark Asserzione AI Indica che l'agente di test delle app ha utilizzato Gemini per convalidare un'asserzione della schermata finale, dopo aver riprodotto le azioni di un'esecuzione precedente dello stesso test.

Eseguire il debug dei risultati del test

Se i risultati del test sono diversi da quelli che ti aspettavi, puoi eseguire il debug del test utilizzando il pulsante di attivazione/disattivazione Mostra visualizzazione agente nella sezione Visualizza dettagli della pagina dei risultati del test. La visualizzazione dell'agente mostra gli elementi sullo schermo che l'agente di test delle app è riuscito a rilevare durante l'utilizzo delle informazioni sull'accessibilità dell'app. Se vuoi esaminare più da vicino ciò che ha visto l'agente, puoi scaricare queste informazioni dal menu Altro azioni.

Puoi anche utilizzare il pulsante Visualizza artefatti nella pagina Risultati del test per esaminare tutti i video, i log e gli altri artefatti Cloud per i risultati del test.

Problemi noti e limitazioni

L'anteprima dell'agente App Testing presenta alcune limitazioni note:

  • Poiché l'agente di test delle app utilizza l'AI generativa per testare la tua app, a volte esegue azioni diverse pur seguendo le stesse istruzioni.
  • L'agente di test delle app supporta solo le seguenti azioni: tocca, inserisci testo, scorri verso l'alto/il basso/sinistra/destra, tieni premuto, trascina e rilascia, indietro e attendi.
  • L'agente App Testing ha difficoltà a eseguire test contenenti un solo passaggio che richiede molte azioni per essere completato. Funziona meglio quando le attività complesse vengono suddivise in più passaggi più brevi.
  • A volte l'agente App Testing non scorre per mostrare altri elementi fuori dallo schermo. Questo accade più spesso quando non è presente alcuna indicazione visiva di scorrimento. Come soluzione alternativa, il campo "suggerimenti" può essere utilizzato per suggerire lo scorrimento.
  • A volte l'agente di test delle app ha difficoltà a contare, ad esempio a eseguire un'azione un numero specifico di volte.
  • L'agente di test dell'app non può navigare nella tua app se FLAG_SECURE è abilitato. anziché screenshot della tua app, vedrà solo una schermata vuota.

Quote di test

Durante l'anteprima, i test guidati dall'AI verranno offerti senza costi entro un limite di quota. Il limite di quota predefinito è di 200 test al mese per progetto Firebase.

Tieni presente che se scegli di eseguire più scenari di test o lo stesso scenario di test su più dispositivi, questi vengono conteggiati come più test. Ad esempio, se esegui 2 scenari di test su 2 dispositivi, il conteggio totale sarà di 4 test.

Per aumentare la quota oltre il limite predefinito, contatta l'assistenza Firebase indicando il tuo caso d'uso.