Test della piattaforma Android

Questo contenuto è rivolto agli sviluppatori di piattaforme Android. Prima di comprendere come vengono eseguiti i test sulla piattaforma Android, fare riferimento all'architettura della piattaforma Android per una panoramica.

Quindi approfondisci le precise tecnologie a tua disposizione in questa sezione, come la Vendor Test Suite (VTS) e la sua miriade di tutorial video e codelab .

Si noti inoltre i meccanismi di test specifici per la sicurezza disponibili per rilevare e rafforzare i dispositivi contro le vulnerabilità.

Per il test delle app, inizia con i fondamenti del test e conduci l' Android Testing Codelab utilizzando gli esempi forniti.

Infine, tieni presente che i test di preinvio di base sono disponibili tramite Repo Hooks che possono eseguire linter, controllare la formattazione e attivare unit test prima di procedere, come il caricamento di un commit. Nota che questi hook sono disabilitati per impostazione predefinita. Vedi l'introduzione di Repo Hooks per maggiori dettagli.

Cosa e come testare

Un test di piattaforma in genere interagisce con uno o più dei servizi di sistema Android, o livelli HAL (Hardware Abstraction Layer), esercita le funzionalità del soggetto sottoposto a test e afferma la correttezza del risultato del test.

Pertanto, un test della piattaforma può:

  1. esercitare le API del framework tramite il framework dell'applicazione; API specifiche esercitate possono includere:
    • API pubbliche destinate ad applicazioni di terze parti
    • API nascoste destinate ad applicazioni con privilegi, ovvero API di sistema
    • API private (@nascondi, o protetto, pacchetto privato)
  2. richiamare direttamente i servizi di sistema Android tramite raw binder/IPC proxy
  3. interagire direttamente con gli HAL tramite API di basso livello o interfacce IPC

I tipi 1 e 2 sono generalmente scritti come test di strumentazione , mentre i tipi 3 sono generalmente scritti come GTest .

Per saperne di più, guarda i nostri esempi end-to-end:

Acquisisci familiarità con questi strumenti, in quanto sono intrinseci ai test in Android.

Suite di test di compatibilità (CTS)

Android Compatibility Test Suite è una suite di vari tipi di test, utilizzata per garantire la compatibilità delle implementazioni del framework Android tra i partner OEM e tra le versioni della piattaforma. La suite include anche test di strumentazione e il framework GTest.

I test CTS e della piattaforma non si escludono a vicenda, e qui ci sono alcune linee guida generali:

  • se un test sta affermando la correttezza delle funzioni/comportamenti dell'API del framework e dovrebbe essere applicato a tutti i partner OEM, dovrebbe essere in CTS
  • se un test ha lo scopo di rilevare le regressioni durante il ciclo di sviluppo della piattaforma e potrebbe richiedere un'autorizzazione privilegiata per essere eseguito e potrebbe dipendere dai dettagli di implementazione (come rilasciato in AOSP), dovrebbe essere solo test della piattaforma

Vendor Test Suite (VTS)

Vendor Test Suite (VTS) automatizza i test HAL e del kernel del sistema operativo. Per utilizzare VTS per testare un'implementazione del sistema Android integrata, configurare un ambiente di test, quindi testare una patch utilizzando un piano VTS.

Infrastruttura di test della Federazione commerciale

Trade Federation (tradefed o TF in breve) è un framework di test continuo progettato per l'esecuzione di test su dispositivi Android. TF può eseguire test funzionali localmente, alla tua scrivania, all'interno del checkout della tua piattaforma. Ci sono due file richiesti per eseguire un test in TF, una sorgente di test Java e una configurazione XML. Vedere RebootTest.java e reboot.xml per esempi.

Debug

La sezione Debug riepiloga gli strumenti utili e i comandi correlati per il debug, la traccia e la profilazione del codice della piattaforma Android integrato durante lo sviluppo di funzionalità a livello di piattaforma.