Suite di test di compatibilità

La Compatibility Test Suite (CTS) è una suite di test gratuita di livello commerciale, disponibile per il download come binario o come sorgente nell'Android Open Source Project (AOSP) . Il CTS rappresenta il "meccanismo" della compatibilità.

Il CTS viene eseguito su un computer desktop ed esegue casi di test direttamente sui dispositivi collegati o su un emulatore. Il CTS è un insieme di test unitari progettati per essere integrati nel flusso di lavoro quotidiano (ad esempio tramite un sistema di costruzione continua) degli ingegneri che costruiscono un dispositivo. Il suo intento è quello di rivelare le incompatibilità in anticipo e garantire che il software rimanga compatibile durante tutto il processo di sviluppo.

Il CTS è una suite di test automatizzata che utilizza due principali componenti software:

  • Il test harness di CTS Trade Federation viene eseguito sul computer desktop e gestisce l'esecuzione del test. Offre la possibilità di eseguire test su più dispositivi in ​​prova (DUT). È inoltre possibile utilizzare la funzionalità di ripetizione della suite per riprovare solo gli errori anziché le suite complete, riducendo notevolmente i tempi di riesecuzione.
  • I singoli casi di test vengono eseguiti sul DUT. I casi di test sono scritti in Java come test JUnit e file .apk Android in pacchetti da eseguire sul dispositivo di destinazione effettivo.

Il Compatibility Test Suite Verifier (CTS Verifier) ​​è un supplemento al CTS disponibile per il download . CTS Verifier fornisce test per API e funzioni che non possono essere testate su un dispositivo fisso senza input manuale (es. qualità audio, accelerometro, ecc.).

Il CTS Verifier è uno strumento per il test manuale e include i seguenti componenti software:

  • L'app di verifica CTS che viene eseguita sul DUT e raccoglie i risultati.

  • Gli eseguibili o gli script che vengono eseguiti sul computer desktop per fornire dati o controllo aggiuntivo per alcuni casi di test nell'app CTS Verifier.

Flusso di lavoro

Flusso CTS

Figura 1. Come usare CTS

Questo diagramma riassume il flusso di lavoro CTS. Fare riferimento alle sottopagine di questa sezione a partire da Setup per istruzioni dettagliate.

Tipi di casi di test

Il CTS include i seguenti tipi di casi di test:

  • I test di unità testano le unità atomiche di codice all'interno della piattaforma Android; ad esempio una singola classe, come java.util.HashMap.
  • I test funzionali testano una combinazione di API insieme in un caso d'uso di livello superiore.

Le versioni future del CTS includeranno i seguenti tipi di casi di test:
  • I test di robustezza testano la durata del sistema sotto stress.
  • I test delle prestazioni testano le prestazioni del sistema rispetto a benchmark definiti, ad esempio il rendering di fotogrammi al secondo.

Aree coperte

Gli unit test case coprono le seguenti aree per garantire la compatibilità:

La zona Descrizione
Test di firma Per ogni versione di Android sono presenti file XML che descrivono le firme di tutte le API pubbliche contenute nella versione. Il CTS contiene un'utilità per controllare le firme API rispetto alle API disponibili sul dispositivo. I risultati del controllo della firma vengono registrati nel file XML dei risultati del test.
Test API della piattaforma Testare le API della piattaforma (librerie principali e Android Application Framework) come documentato nell'indice di classe SDK per garantire la correttezza dell'API, incluse le firme corrette di classi, attributi e metodi, comportamento corretto del metodo e test negativi per garantire il comportamento previsto per la gestione errata dei parametri.
Test Dalvik I test si concentrano sul test del formato eseguibile Dalvik.
Modello di dati della piattaforma Il CTS testa il modello di dati della piattaforma principale come esposto agli sviluppatori di applicazioni tramite i fornitori di contenuti, come documentato nel pacchettoandroid.provider dell'SDK: contatti, browser, impostazioni, ecc.
Intenti della piattaforma Il CTS verifica gli intenti della piattaforma principale, come documentato in SDK Available Intents .
Autorizzazioni piattaforma Il CTS verifica le autorizzazioni della piattaforma principale, come documentato in SDK Available Permissions .
Risorse della piattaforma Il CTS verifica la corretta gestione dei tipi di risorse della piattaforma principale, come documentato in SDKAvailable Resource Types . Ciò include test per: valori semplici, drawable, nove patch, animazioni, layout, stili e temi e caricamento di risorse alternative.