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à su vasta 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 sul CTS.
Quali tipi di elementi vengono testati dal CTS?
Il CTS verifica che tutte le API Android fortemente tipizzate supportate siano presenti e si comportino correttamente. Il CTS testa anche altri comportamenti del sistema non 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 Apache Software License 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 per il test
Questa sezione fornisce 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 un codebase dell'infrastruttura di test diverso. Sebbene il comando run sia lo stesso per le diverse versioni, il risultato dello sharding si comporta in modo diverso. Lo sharding CTS assegna staticamente gli scenari di test ai dispositivi in fase di test (DUT) nel seguente modo:
- Comando: run cts
- Configurazione per Android 8.1 e versioni precedenti: /tools/cts-tradefed/res/config/cts.xml
TF Sharding assegna dinamicamente gli scenari di test ai DUT disponibili nel seguente modo:
- 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. Ciascuno di essi 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.
Vedi CDD 3.3.1. Application Binary Interfaces 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é così tanti scenari di test sono segnalati come Non eseguiti?
Devi controllare il numero di Modulo completato anziché il numero di Non eseguito.
Nelle versioni precedenti, i moduli CTS venivano segnalati come Modulo completato in modo troppo aggressivo prima del completamento. Pertanto, è stato segnalato un numero di Moduli completati senza che tutti gli scenari di test fossero completi, anche quando alcuni dispositivi avevano problemi. Il nuovo test harness è più conservativo e segnala un numero maggiore di test Non eseguiti quando si verifica un problema.
L'esecuzione di un modulo fino al completamento indica Modulo non completato nell'invocazione più recente (done="false") nel report durante:
- Un test del modulo è stato interrotto da un problema di connessione del dispositivo.
- Non sono state eseguite tutte le esecuzioni di test previste per il modulo.
Riprova (utilizzando l'opzione
-r/--retry) con opzioni di filtro aggiuntive, ad esempio:- --include-filter
- --exclude-filter
- -t/--test (opzione non ancora supportata per i nuovi tentativi)
- --retry-type failed
- --subplan
Per ottenere lo stato Modulo completato (done="true") per questi moduli, riprova quanto segue per l'invocazione più recente:
run retry --retry <session_id> for Android 9 and later versionsrun cts --retry <session_id> for Android 8.1 and previous versionsUn 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 dovuto alla limitazione degli argomenti di Linux/OS.
Il modulo può essere eseguito nuovamente in isolamento tramite
run cts -m CtsNNAPITestCases.
Come posso evitare che la preparazione del test non riesca a superare il firewall aziendale?
Tutte le suite di test automatizzati tentano di scaricare i file multimediali CTS o i file di logica di business durante l'esecuzione. In molti ambienti aziendali, un firewall e un proxy sono tipici, il che causa l'esito negativo della preparazione del test. Esegui la seguente riga o aggiungila a .profile (su Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'Ho bisogno di una scheda SIM per il test 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 tuo dispositivo NON deve supportare l'accesso delle app per Android
agli elementi sicuri, nell'UICC
(ad es. una scheda SIM) distribuita dagli operatori di rete mobile
(gestori) o incorporata nel dispositivo, puoi configurare il manifest HIDL
in modo che non includa 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 supera automaticamente e segnala un risultato positivo per il CTS. - Se il tuo dispositivo DEVE supportare l'accesso delle app per Android a elementi sicuri, ovvero nell'UICC (ad es. una scheda SIM) distribuita dagli operatori di rete mobile (gestori) o incorporata nel dispositivo, devi implementare correttamente l'elemento sicuro e testarlo internamente. CTS Test for Secure Element descrive come prepararsi a eseguire i test CTS che garantiscono il funzionamento del pacchetto API android.se.omapi aggiunto in Android 9. Ti consigliamo inoltre di eseguire ulteriori test in autonomia, poiché la copertura dei test CTS è minima.
Dove posso acquistare le schede SIM per il test CTS per Secure Element?
Puoi contattare il fornitore di SIM che preferisci.
Perché la SIM Orange è nella schermata di blocco durante l'esecuzione di CTS con la suddivisione dei token?
Lo scenario di test non viene avviato perché il test della scheda SIM è bloccato. Disattiva l'opzione Blocco SIM nelle **impostazioni di blocco della SIM prima di eseguire il test CTS con la condivisione dei token.
Il test viene eseguito 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 di release binaria CTS, non della configurazione di release
del dispositivo. La disattivazione dei flag sul dispositivo non disattiva il test, in quanto l'insieme
di test CTS eseguiti per una determinata release è fissato alla configurazione
rilasciata della piattaforma AOSP.