Il Programma di compatibilità Android è il fattore chiave per mantenere il feedback positivo per l'ecosistema Android. CTS è lo strumento chiave per garantire la qualità della compatibilità nella scala. Il team di Android continua a migliorare lo strumento CTS e la copertura dei test. L'aggiunta regolare di scenari di test ha migliorato notevolmente la qualità dei dispositivi compatibili.
Domande di carattere generale
Questa sezione fornisce le domande frequenti generali sul CTS.
Quali tipi di cose vengono testate dal CTS?
Il CTS verifica che tutte le API con tipi di dati forti di Android supportate siano presenti e si comportino correttamente. Il CTS testa anche altri comportamenti del sistema non relativi all'API, come il ciclo di vita e il rendimento delle app.
Come viene concessa la licenza per il CTS?
Il CTS è concesso in licenza ai sensi della stessa Licenza Apache Software 2.0 utilizzata dalla maggior parte di Android.
I codec sono verificati da CTS?
Sì. Tutti i codec obbligatori vengono verificati da CTS.
Domande specifiche per il test
Questa sezione contiene domande frequenti che ti aiutano a eseguire i test CTS in modo più efficiente.
Qual è la differenza tra il partizionamento CTS e il partizionamento TF?
CTS Sharding e TF Sharding sono piani di test totalmente diversi basati su codebase di infrastrutture di test diverse. Sebbene il comando di esecuzione sia uguale per tutte le versioni, il risultato dello sharding si comporta in modo diverso. La suddivisione in parti del CTS assegna in modo statico gli scenari di test ai dispositivi in test (DUT) come segue:
- Comando: run cts
- Configurazione per Android 8.1 e versioni precedenti: /tools/cts-tradefed/res/config/cts.xml
La suddivisione in parti TF assegna dinamicamente gli scenari di test ai DUT disponibili come segue:
- Comando: run cts
- Configurazione per Android 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
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. Ognuno di questi può supportare la modalità a 32 o 64 bit.
- Per i test CTS, se un dispositivo supporta sia ARM che x86, deve eseguire e superare rispettivamente i test CTS per ARM e x86.
Vedi CDD 3.3.1. Application Binary Interface per i requisiti CDD relativi all'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é ci sono così tanti casi di test 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, è stato segnalato un numero di Moduli completati senza che tutti i casi di test siano stati completati, anche se alcuni dispositivi hanno riscontrato problemi. Il nuovo framework di test è più conservativo e registra un numero maggiore di test Non eseguito quando si verifica un problema.
Un modulo eseguito fino al completamento riporta Modulo non completato nell'esecuzione più recente (done="false") nel report durante i seguenti casi:
- Un'esecuzione di 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.
Ritentato (utilizzando l'opzione
-r/--retry
) con opzioni di filtro aggiuntive, come:- --include-filter
- --exclude-filter
- -t/--test (opzione non ancora supportata al nuovo tentativo)
- --retry-type non riuscito
- --subplan
Per ottenere lo stato Modulo completato (done="true") per questi moduli, riprova a eseguire quanto segue per l'ultima chiamata:
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) è contrassegnato come Modulo completato nel nuovo report.
Eccezioni
- CtsNNAPITestCases presenta un problema noto dovuto alla limitazione degli argomenti di Linux/OS.
Il modulo può essere eseguito di nuovo in isolamento direttamente tramite
run cts -m CtsNNAPITestCases
.
Come faccio a evitare che la preparazione al test non vada a buon fine dietro il firewall aziendale?
Tutte le suite di test automatiche tentano di scaricare i file multimediali CTS o i file di logica aziendale durante l'esecuzione. In molti ambienti aziendali, è normale che siano presenti un firewall e un proxy, il che fa fallire la preparazione del test. Esegui la riga seguente 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 dal fatto che la funzionalità sia supportata nel dispositivo di test.
- Se il tuo dispositivo NON deve supportare le app per Android che accedono agli elementi di sicurezza, nel UICC (ad es. una scheda SIM) distribuiti dagli operatori di rete mobile (operatori) o incorporati 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() registra un elenco vuoto e il test CTS viene superato automaticamente e registra un superamento del CTS. - Se il tuo dispositivo DEVE supportare le app per Android che accedono agli elementi di sicurezza, sia nell'UICC (ad es. una scheda SIM) distribuita dagli operatori di rete mobile (carrier) sia integrati nel dispositivo, devi implementare correttamente l'elemento di sicurezza e testarlo internamente. Test CTS per il componente Secure Element illustra come prepararsi a eseguire i test CTS che garantiscono che il pacchetto dell'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 acquistare le schede SIM per CTS per Secure Element?
Puoi contattare il tuo fornitore di SIM preferito.
Perché la SIM arancione è nella schermata di blocco durante l'esecuzione del CTS con lo sharding dei token?
Il test case non si avvia perché la scheda SIM è bloccata. Disattiva l'opzione Blocca scheda SIM nelle impostazioni di blocco della scheda SIM prima di eseguire il CTS con lo sharding dei token.