Häufig gestellte Fragen zu CTS

Das Android-Kompatibilitätsprogramm ist der wichtigste Faktor, um das positive Feedback für das Android-Ökosystem aufrechtzuerhalten. Das CTS ist das wichtigste Tool, um die Kompatibilität in großem Maßstab sicherzustellen. Das Android-Team arbeitet kontinuierlich daran, das CTS-Tool und die Testabdeckung zu verbessern. Die regelmäßige Ergänzung von Testläufen hat die Qualität kompatibler Geräte deutlich verbessert.

Allgemeine Fragen

In diesem Abschnitt finden Sie allgemeine FAQs zum CTS.

Was wird mit dem CTS getestet?

Die CTS-Tests prüfen, ob alle unterstützten Android-APIs mit starker Typisierung vorhanden sind und sich korrekt verhalten. Das CTS testet auch andere Systemverhalten, die nicht mit APIs zusammenhängen, z. B. den App-Lebenszyklus und die Leistung.

Wie wird das CTS lizenziert?

Das CTS ist unter derselben Apache Software License 2.0 lizenziert, die für den Großteil von Android verwendet wird.

Werden Codecs vom CTS überprüft?

Ja. Alle obligatorischen Codecs werden von CTS überprüft.

Testspezifische Fragen

In diesem Abschnitt finden Sie häufig gestellte Fragen, die Ihnen helfen, CTS-Tests effizienter auszuführen.

Was ist der Unterschied zwischen CTS-Sharding und TF-Sharding?

CTS- und TF-Sharding sind völlig unterschiedliche Testpläne, die auf unterschiedlichen Testinfrastruktur-Codebases basieren. Der Ausführungsbefehl ist in den verschiedenen Versionen zwar derselbe, das Sharding-Ergebnis verhält sich jedoch anders. Beim CTS-Sharding werden Testläufe statisch Geräten zugewiesen, die getestet werden sollen (Devices Under Test, DUTs):

Bei der TF-Fragmentierung werden Testläufe dynamisch den verfügbaren DUTs zugewiesen:

Was wird von einem Gerät erwartet, das mehrere ABIs unterstützt?

Das Gerät muss alle CTS- und CTS Verifier-Tests für jeden ABI-Modus bestehen, den es unterstützt. Daher ist es erforderlich, eine App für die jeweiligen ABIs auszuführen. Die Richtlinien für mehrere ABIs lauten so:

  • Für CTS und CTS Verifier gibt es für jede Architektur ARM- und x86-Releases. Jeder von ihnen kann den 32- oder 64-Bit-Modus unterstützen.
  • Wenn ein Gerät sowohl ARM als auch x86 unterstützt, müssen für CTS-Tests sowohl ARM- als auch x86-CTS-Tests ausgeführt und bestanden werden.

Weitere Informationen finden Sie unter CDD 3.3.1. Binärschnittstellen für CDD-Anforderungen an die ABI.

Reicht es aus, einen Test nur für das primäre ABI (z. B. 64 Bit) auszuführen, um die Testausführungszeit zu verkürzen?

Nein. Eine Android-App wird in ihrer eigenen 32-Bit- oder 64-Bit-Laufzeitumgebung ausgeführt. Der tatsächliche Maschinencode, der Codepfad und der Status sind zwischen 32- und 64-Bit-Versionen unterschiedlich. Wenn Sie einen Modus überspringen, decken Sie nur 50% des Geräte-ABI ab.

Warum werden so viele Testläufe als „Nicht ausgeführt“ gemeldet?

Sehen Sie sich stattdessen die Zahl unter Module Done (Modul abgeschlossen) an.

In den vorherigen Versionen wurden CTS-Module zu früh als Module Done (Modul abgeschlossen) gemeldet. Daher wurde die Zahl Module abgeschlossen gemeldet, ohne dass alle Testläufe abgeschlossen waren, auch wenn bei einigen Geräten Probleme aufgetreten sind. Der neue Test-Harness ist konservativer und meldet bei Problemen eine höhere Anzahl von Tests mit dem Status Nicht ausgeführt.

Wenn ein Modul vollständig ausgeführt wurde, wird im Bericht für den letzten Aufruf (done="false") Folgendes gemeldet: Module Not Done (Modul nicht abgeschlossen):

  • Ein Testlauf für das Modul wurde aufgrund eines Problems mit der Geräteverbindung unterbrochen.
  • Nicht alle erwarteten Testläufe für das Modul wurden ausgeführt.
  • Wiederholt (mit der Option -r/--retry) mit zusätzlichen Filteroptionen, z. B.:

    • --include-filter
    • --exclude-filter
    • -t/--test (Option wird bei Wiederholungen noch nicht unterstützt)
    • --retry-type failed
    • --subplan

Wenn Sie für diese Module den Status Module Done (done="true") erhalten möchten, wiederholen Sie für den letzten Aufruf Folgendes:

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

Ein Modul, das ohne die zuvor genannten Probleme ausgeführt wurde (auch wenn keine Tests mehr verbleiben), wird im neuen Bericht mit Module Done (Modul abgeschlossen) gekennzeichnet.

Ausnahmen

  • Bei CtsNNAPITestCases gibt es ein bekanntes Problem aufgrund der Linux-/OS-Beschränkung von Argumenten. Das Modul kann über run cts -m CtsNNAPITestCases isoliert noch einmal ausgeführt werden.

Wie kann ich verhindern, dass die Testvorbereitung hinter der Unternehmensfirewall fehlschlägt?

Alle automatisierten Testsuiten versuchen, während der Laufzeit entweder die CTS-Mediadateien oder die Dateien mit der Geschäftslogik herunterzuladen. In vielen Unternehmensumgebungen sind eine Firewall und ein Proxy üblich, was dazu führt, dass die Testvorbereitung fehlschlägt. Führen Sie die folgende Zeile aus oder fügen Sie sie unter Ubuntu der Datei „.profile“ hinzu.

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

Benötige ich eine SIM-Karte für CTS für Secure Element?

Ob eine SIM-Karte für den Test erforderlich ist, hängt davon ab, ob das Testgerät die Funktion unterstützt.

  • Wenn Ihr Gerät NICHT die Unterstützung von Android-Apps für den Zugriff auf sichere Elemente benötigt – entweder in der UICC (z.B. einer SIM-Karte), die von den Mobilfunkanbietern verteilt wird, oder eingebettet im Gerät –, können Sie das HIDL-Manifest so konfigurieren, dass das android.hardware.secure_element-HAL-Element nicht enthalten ist. In diesem Fall gibt die API android.se.omapi.SEService.getReaders() eine leere Liste zurück und der CTS-Test wird automatisch bestanden und als bestanden gemeldet.
  • Wenn Ihr Gerät Android-Apps unterstützen muss, die auf sichere Elemente zugreifen – entweder auf der UICC (z.B. einer SIM-Karte), die von Mobilfunkanbietern vertrieben wird, oder auf einem im Gerät eingebetteten sicheren Element –, müssen Sie das sichere Element richtig implementieren und intern testen. Im CTS-Test für Secure Element wird beschrieben, wie Sie sich auf die Ausführung der CTS-Tests vorbereiten, mit denen sichergestellt wird, dass das in Android 9 hinzugefügte API-Paket android.se.omapi funktioniert. Wir empfehlen außerdem, zusätzliche Tests durchzuführen, da die CTS-Testabdeckung minimal ist.

Wo erhalte ich die SIM-Karten für CTS für Secure Element?

Wenden Sie sich an Ihren bevorzugten SIM-Anbieter.

Warum wird die Orange-SIM auf dem Sperrbildschirm während der CTS-Ausführung mit Token-Sharding angezeigt?

Der Testlauf wird nicht gestartet, weil das Testen der SIM-Karte gesperrt ist. Deaktiviere die SIM-Karte sperren in den **Einstellungen für die SIM-Sperre, bevor du den CTS mit Token-Sharding ausführst.