Häufig gestellte Fragen zu CTS

Das Android-Kompatibilitätsprogramm ist der Schlüssel, um das positive Feedback für das Android-Ökosystem aufrechtzuerhalten. CTS ist das wichtigste Tool, um die Qualität der Kompatibilität im großen Maßstab zu gewährleisten. Das Android-Team arbeitet kontinuierlich daran, das CTS-Tool und die Testabdeckung zu verbessern. Das regelmäßige Hinzufügen von Testläufen führt zu einer deutlichen Verbesserung der Qualität kompatibler Geräte.

Allgemeine Fragen

In diesem Abschnitt finden Sie allgemeine FAQs zu CTS.

Was wird beim CTS getestet?

Der CTS-Test prüft, ob alle unterstützten stark typisierten Android-APIs vorhanden sind und ordnungsgemäß funktionieren. Der CTS testet auch andere nicht API-bezogene Systemverhalten wie den App-Lebenszyklus und die Leistung.

Wie ist die CTS lizenziert?

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

Werden Codecs vom CTS überprüft?

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

Testspezifische Fragen

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

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

CTS-Sharding und TF-Sharding sind völlig unterschiedliche Testpläne, die auf einer anderen Testinfrastruktur-Codebasis basieren. Der Befehl „run“ ist zwar für verschiedene Versionen identisch, das Sharding-Ergebnis verhält sich jedoch unterschiedlich. Beim CTS-Sharding werden Testfälle statisch so den zu testenden Geräten (Devices Under Test, DUTs) zugewiesen:

Beim TF-Sharding werden Testfälle dynamisch 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 angeblich unterstützt. Daher ist es erforderlich, eine App für die jeweiligen ABIs auszuführen. Für mehrere ABIs gelten folgende Richtlinien:

  • Für CTS und CTS Verifier gibt es für jede Architektur ARM- und x86-Releases. Jedes davon kann den 32- oder 64-Bit-Modus unterstützen.
  • Wenn ein Gerät sowohl ARM als auch x86 unterstützt, muss es sowohl ARM- als auch x86-CTS-Tests ausführen und bestehen.

Siehe CDD 3.3.1. Binärschnittstellen für CDD-Anforderungen an ABI.

Reicht es aus, einen Test nur mit der primären ABI (z. B. 64 Bit) durchzuführen, um die Testausführungszeit zu verkürzen?

Nein. Eine Android-App wird in einer eigenen 32-Bit- oder 64-Bit-Laufzeit ausgeführt. Der tatsächliche Maschinencode, der Codepfad und der Status unterscheiden sich zwischen 32 und 64. Wenn Sie einen Modus überspringen, werden nur 50% des ABI des Geräts abgedeckt.

Warum werden so viele Testfälle als „Nicht ausgeführt“ gemeldet?

Sie sollten die Anzahl der Abgeschlossenen Module anstelle der Anzahl der Nicht ausgeführten Module prüfen.

In den vorherigen Versionen wurden CTS-Module zu früh als Modul abgeschlossen gemeldet, bevor sie abgeschlossen waren. Daher wurde die Anzahl der Abgeschlossenen Module gemeldet, ohne dass der gesamte Test abgeschlossen war, auch wenn bei einigen Geräten Probleme aufgetreten sind. Der neue Test-Harness ist konservativer und meldet bei einem Problem eine höhere Anzahl von Tests, die nicht ausgeführt wurden.

Ein abgeschlossenes Modul meldet Module Not Done im letzten Aufruf (done="false") des Berichts während der folgenden Ereignisse:

  • Ein Testlauf für das Modul wurde durch ein Problem mit der Geräteverbindung unterbrochen.
  • Nicht alle erwarteten Testläufe für das Modul wurden durchgeführt.
  • Es wurde mit zusätzlichen Filteroptionen (über die Option -r/--retry) noch einmal versucht, z. B.:

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

Wenn Sie für diese Module den Status Modul abgeschlossen (done="true") erhalten möchten, wiederholen Sie die folgenden Schritte für die letzte Aufrufung:

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 eines der oben genannten Probleme ausgeführt wurde (auch wenn noch 0 Tests verbleiben), wird im neuen Bericht als Modul abgeschlossen gekennzeichnet.

Ausnahmen

  • Bei CtsNNAPITestCases tritt ein bekanntes Problem aufgrund der Linux/OS-Beschränkung der Argumente auf. Das Modul kann direkt über run cts -m CtsNNAPITestCases isoliert neu ausgeführt werden.

Wie kann ich verhindern, dass die Testvorbereitung hinter der Firewall des Unternehmens fehlschlägt?

Alle automatisierten Testsuiten versuchen, während der Laufzeit entweder die CTS-Mediendateien oder die Geschäftslogikdateien herunterzuladen. In vielen Unternehmensumgebungen sind eine Firewall und ein Proxy üblich, was die Testvorbereitung erschwert. Führen Sie die folgende Zeile aus oder fügen Sie sie unter Ubuntu zu .profile hinzu.

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

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

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

  • Wenn Ihr Gerät NICHT Android-Apps unterstützen muss, die auf Secure Elements zugreifen – entweder in der UICC (z.B. einer SIM-Karte), die von Mobilfunkanbietern bereitgestellt wird, oder im Gerät eingebettet –, können Sie das HIDL-Manifest so konfigurieren, dass es das HAL-Element android.hardware.secure_element nicht enthält. In diesem Fall meldet die API android.se.omapi.SEService.getReaders() eine leere Liste und der CTS-Test wird automatisch bestanden.
  • Wenn Ihr Gerät Android-Apps unterstützen MUSS, die auf Secure Elements zugreifen, die entweder in der UICC (z.B. einer SIM-Karte) der Mobilfunkanbieter oder im Gerät eingebettet sind, müssen Sie das Secure Element ordnungsgemäß implementieren und intern testen. In CTS Test for Secure Element wird beschrieben, wie Sie die CTS-Tests vorbereiten, mit denen geprüft wird, ob das in Android 9 hinzugefügte API-Paket android.se.omapi funktioniert. Wir empfehlen außerdem, weitere Tests selbst 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 erscheint bei der CTS-Ausführung mit Token-Fragmentierung die orangefarbene SIM-Karte auf dem Sperrbildschirm?

Der Testfall wird nicht gestartet, da die SIM-Karte gesperrt ist. Deaktivieren Sie die Option SIM-Karte sperren in den Einstellungen für die SIM-Sperre, bevor Sie die CTS mit Token-Sharding ausführen.