Domande frequenti sul CTS

Il Programma di compatibilità Android è il motore principale per sostenere il feedback positivo per l'ecosistema Android. CTS è lo strumento chiave per garantire la qualità della compatibilità su larga scala. Il team Android continua a migliorare lo strumento CTS e la copertura dei test. L'aggiunta regolare di scenari di test ha migliorato significativamente la qualità dei dispositivi compatibili.

Domande di carattere generale

Questa sezione fornisce le domande frequenti generali su CTS.

Che tipo di elementi vengono testati da CTS?

CTS verifica che tutte le API Android con tipi di dati definiti in modo rigido supportate siano presenti e si comportino correttamente. CTS testa anche altri comportamenti di sistema non API, come il ciclo di vita e il rendimento delle app.

Come viene concessa la licenza per CTS?

CTS è concesso in licenza ai sensi della stessa licenza software Apache 2.0 utilizzata dalla maggior parte di Android.

I codec vengono verificati da CTS?

Sì. Tutti i codec obbligatori vengono verificati da CTS.

Domande specifiche sui test

Questa sezione fornisce le domande frequenti che aiutano a eseguire i test CTS in modo più efficiente.

Qual è la differenza tra CTS Sharding e TF Sharding?

CTS Sharding e TF Sharding sono piani di test completamente diversi basati su codebase di infrastrutture di test diverse. Sebbene il comando run sia lo stesso per le diverse versioni, il risultato dello sharding si comporta in modo diverso. CTS Sharding assegna staticamente gli scenari di test ai dispositivi in fase di test (DUT) nel seguente modo:

TF Sharding assegna dinamicamente gli scenari di test ai DUT disponibili nel seguente modo:

Cosa ci si aspetta da un dispositivo che supporta più ABI?

Il dispositivo deve superare tutti i test CTS e CTS Verifier per ogni modalità ABI che dichiara di supportare. Pertanto, è necessario eseguire un'app per le ABI specifiche. Le linee guida per più ABI sono le seguenti:

  • Per CTS e CTS Verifier, sono disponibili release ARM e x86 per ogni architettura. Ognuna di queste può supportare la modalità a 32 o 64 bit.
  • Per i test CTS, se un dispositivo supporta sia ARM sia x86, deve eseguire e superare rispettivamente i test CTS ARM e x86.

Consulta CDD 3.3.1. Application Binary Interface per i requisiti CDD su ABI.

È sufficiente eseguire un test solo sull'ABI principale (ad esempio, 64 bit) per ridurre il tempo di esecuzione del test?

No. Un'app per Android viene eseguita sui propri runtime a 32 o 64 bit. Il codice macchina, il percorso del codice e lo stato effettivi sono diversi tra 32 e 64. Se salti una modalità, copri solo il 50% dell'ABI del dispositivo.

Perché così tanti scenari di test vengono segnalati come Non eseguiti?

Devi controllare il numero Modulo completato anziché il numero Non eseguito.

Nelle versioni precedenti, i moduli CTS venivano segnalati come Modulo completato in modo troppo aggressivo prima del completamento. Di conseguenza, veniva segnalato un numero di Moduli completati senza che tutti gli scenari di test fossero completi, anche quando alcuni dispositivi presentavano problemi. Il nuovo harness di test è più conservativo e segnala un numero maggiore di test Non eseguiti quando si verifica un problema.

Un modulo eseguito fino al completamento segnala Modulo non completato nell'invocazione più recente (done="false") nel report durante le seguenti operazioni:

  • L'esecuzione di un test per il modulo è stata interrotta da un problema di connessione del dispositivo.
  • Non sono state eseguite tutte le esecuzioni di test previste per il modulo.
  • Nuovo tentativo (utilizzando l'opzione -r/--retry) con opzioni di filtro aggiuntive, ad esempio:

    • --include-filter
    • --exclude-filter
    • -t/--test (opzione non ancora supportata per il nuovo tentativo)
    • --retry-type failed
    • --subplan

Per ottenere lo stato Modulo completato (done="true") per questi moduli, riprova a eseguire le seguenti operazioni per l'invocazione più recente:

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

Un modulo eseguito senza nessuno dei problemi menzionati in precedenza (anche con 0 test rimanenti) viene contrassegnato come Modulo completato nel nuovo report.

Eccezioni

  • CtsNNAPITestCases presenta un problema noto a causa della limitazione degli argomenti di Linux/OS. Il modulo può essere eseguito di nuovo in isolamento tramite run cts -m CtsNNAPITestCases direttamente.

Come posso evitare che la preparazione dei test non riesca dietro il firewall aziendale?

Tutte le suite di test automatizzate tentano di scaricare i file multimediali CTS o i file di logica di business durante il runtime. In molti ambienti aziendali, un firewall e un proxy sono tipici, il che fa sì che la preparazione dei test non riesca. Esegui la seguente riga o aggiungila a .profile (su Ubuntu).

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

È necessaria una scheda SIM per CTS per Secure Element?

La necessità di una scheda SIM per il test dipende dalla comprensione se la funzionalità è supportata nel dispositivo di test.

  • Se il dispositivo NON DEVE supportare le app per Android che accedono agli elementi sicuri, né nella UICC (ad es. una scheda SIM) distribuita dagli operatori di rete mobile (gestori) né incorporata nel dispositivo, puoi configurare il manifest HIDL in modo da non includere l'elemento HAL android.hardware.secure_element . In questo caso, l'API android.se.omapi.SEService.getReaders() restituisce un elenco vuoto e il test CTS viene superato automaticamente e segnala un risultato positivo per CTS.
  • Se il dispositivo DEVE supportare le app per Android che accedono agli Secure Element, né nella UICC (ad es. una scheda SIM) distribuita dagli operatori di rete mobile (gestori) né incorporata nel dispositivo, devi implementare correttamente l'elemento sicuro e testarlo internamente. Il test CTS per Secure Element descrive come prepararsi a eseguire i test CTS che garantiscono che il pacchetto API android.se.omapi aggiunto in Android 9 sia funzionale. Ti consigliamo inoltre di eseguire test aggiuntivi autonomamente, poiché la copertura dei test CTS è minima.

Dove posso trovare le schede SIM per CTS per Secure Element?

Puoi contattare il tuo fornitore di SIM preferito.

Perché la SIM Orange è presente nella schermata di blocco durante l'esecuzione di CTS con lo sharding dei token?

Lo scenario di test non viene avviato perché il test della scheda SIM è bloccato. Disattiva l'opzione Blocca scheda SIM nelle **Impostazioni di blocco della scheda SIM** prima di eseguire CTS con lo sharding dei token.

Esecuzione di test quando i flag delle funzionalità sono disattivati nel dispositivo

Per tutti i flag nelle build di release, l'annotazione @RequiresFlagsEnabled o @RequiresFlagsDisabled utilizza i valori dei flag della configurazione della release binaria CTS, non della configurazione della release del dispositivo. La disattivazione dei flag sul dispositivo non disattiva il test, poiché l'insieme di test CTS eseguiti per una determinata release è fisso alla configurazione della piattaforma AOSP rilasciata.