CTS-FAQ

Das Android-Kompatibilitätsprogramm ist der Schlüsselfaktor für die Aufrechterhaltung des positiven Feedbacks für das Android-Ökosystem. CTS ist das Schlüsselinstrument, um die Qualität der Kompatibilität in der Waage sicherzustellen. Das Android-Team verbessert weiterhin das CTS-Tool und die Testabdeckung. Das regelmäßige Hinzufügen von Testfällen führt zu einer deutlichen Verbesserung der Qualität kompatibler Geräte.

Allgemeine Fragen

Dieser Abschnitt enthält allgemeine CTS-FAQs.

Was testet das CTS?

Das CTS prüft, ob alle unterstützten stark typisierten Android-APIs vorhanden sind und sich korrekt verhalten. Das CTS testet auch andere Nicht-API-Systemverhalten wie den App-Lebenszyklus und die Leistung.

Wie wird das CTS lizenziert?

Das CTS ist unter derselben Apache-Softwarelizenz 2.0 lizenziert, die der Großteil von Android verwendet.

Werden Codecs von CTS überprüft?

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

Testspezifische Fragen

Dieser Abschnitt enthält häufig gestellte Fragen, die dabei helfen, CTS-Tests effizienter durchzuführen.

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

CTS Sharding und TF Sharding sind völlig unterschiedliche Testpläne, die auf einer unterschiedlichen Codebasis der Testinfrastruktur basieren. Während der Ausführungsbefehl in verschiedenen Versionen gleich ist, verhält sich das Sharding-Ergebnis unterschiedlich. CTS Sharding weist Testfälle statisch den zu testenden Geräten (DUTs) wie folgt zu:

TF Sharding weist Testfälle dynamisch den verfügbaren DUTs wie folgt zu:

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 notwendig, für die jeweiligen ABIs eine App auszuführen. Die Richtlinien für mehrere ABIs lauten wie folgt:

  • Für CTS und CTS Verifier gibt es ARM- und x86-Releases für jede Architektur. Jeder von ihnen kann den 32- oder 64-Bit-Modus unterstützen.
  • Wenn ein Gerät bei CTS-Tests 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. Anwendungsbinärschnittstellen für CDD-Anforderungen an ABI.

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

Nein. Eine Android-App läuft auf eigenen 32-Bit- oder 64-Bit-Laufzeiten. Der tatsächliche Maschinencode, der Codepfad und der Status unterscheiden sich zwischen 32 und 64. Wenn Sie einen Modus überspringen, decken Sie nur 50 % des Geräte-ABI ab.

Warum werden so viele Testfälle als nicht ausgeführt gemeldet?

Sie sollten die Nummer „Modul erledigt“ anstelle der Nummer „Nicht ausgeführt“ überprüfen.

In früheren Versionen wurden CTS-Module vor dem Abschluss zu aggressiv als „Modul erledigt“ gemeldet. Daher wurde eine Anzahl „Module erledigt“ gemeldet, ohne dass der gesamte Testfall abgeschlossen war, selbst wenn bei einigen Geräten Probleme auftraten. Die neue Testumgebung ist konservativer und meldet eine höhere Anzahl nicht ausgeführter Tests, wenn ein Problem auftritt.

Ein vollständig ausgeführtes Modul meldet „Modul nicht erledigt“ beim letzten Aufruf (done="false") im Bericht während der folgenden Zeit:

  • Ein Testlauf für das Modul wurde durch ein Problem mit der Geräteverbindung unterbrochen.
  • Es wurden nicht alle erwarteten Testläufe für das Modul durchgeführt.
  • Wiederholt (mit der Option -r/--retry ) mit zusätzlichen Filteroptionen, wie zum Beispiel:

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

Um den Status „Modul erledigt“ (done="true") für diese Module zu erhalten, wiederholen Sie Folgendes für den letzten Aufruf:

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 zuvor genannten Probleme ausgeführt wurde (auch mit 0 verbleibenden Tests), wird im neuen Bericht als „Modul abgeschlossen“ gekennzeichnet.

Ausnahmen

  • CtsNNAPITestCases hat ein bekanntes Problem aufgrund der Linux/OS-Einschränkung von Argumenten. Das Modul kann isoliert erneut ausgeführt werden, indem run cts -m CtsNNAPITestCases .

Wie kann ich verhindern, dass die Testvorbereitung hinter der Unternehmens-Firewall 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 dazu führt, dass die Testvorbereitung fehlschlägt. Führen Sie die folgende Zeile aus oder fügen Sie sie zu .profile hinzu (unter Ubuntu).

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 benötigt wird, hängt davon ab, ob die Funktion im Testgerät unterstützt wird.

  • Wenn Ihr Gerät die Android-Apps NICHT unterstützen muss, die auf sichere Elemente zugreifen – weder im UICC (z. B. einer SIM-Karte), die von den Mobilfunknetzbetreibern (Anbietern) vertrieben werden, noch im Gerät eingebettet sind – können Sie das HIDL-Manifest so konfigurieren, dass es nicht enthalten ist das android.hardware.secure_element HAL-Element. In diesem Fall meldet die API android.se.omapi.SEService.getReaders() eine leere Liste und der CTS-Test besteht automatisch und meldet ein Bestehen für den CTS.
  • Wenn Ihr Gerät Android - Apps unterstützen muss, die auf eines der sicheren Elemente zugreifen – entweder im UICC (z. B. eine SIM-Karte), das von den Mobilfunknetzbetreibern (Anbietern) verteilt oder im Gerät eingebettet ist – müssen Sie das sichere Element ordnungsgemäß implementieren und testen im Haus. Der CTS-Test für Secure Element beschreibt, wie Sie sich auf die Ausführung der CTS-Tests vorbereiten, die sicherstellen, dass das in Android 9 hinzugefügte API-Paket android.se.omapi funktionsfähig ist. Wir empfehlen außerdem, zusätzliche Tests selbst durchzuführen, da die CTS-Testabdeckung minimal ist.

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

Sie können sich an Ihren bevorzugten SIM-Anbieter wenden.

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

Der Testfall startet nicht, da das Testen der SIM-Karte gesperrt ist. Deaktivieren Sie die Option „SIM-Karte sperren“ in den **Einstellungen für die SIM-Kartensperre, bevor Sie CTS mit Token-Sharding ausführen.