Dieser Inhalt richtet sich an Entwickler von Android-Plattformen. Bevor Sie verstehen, wie Tests auf der Android-Plattform durchgeführt werden, lesen Sie bitte einen Überblick über die Architektur der Android-Plattform .
Dann vertiefen Sie sich in die genauen Technologien, die Ihnen in diesem Abschnitt zur Verfügung stehen, wie zum Beispiel die Vendor Test Suite (VTS) und ihre unzähligen Video- und Codelab-Tutorials .
Beachten Sie auch die sicherheitsspezifischen Testmechanismen, die zur Erkennung und Absicherung Ihrer Geräte gegen Schwachstellen verfügbar sind.
Beginnen Sie zum Testen von Apps mit den Grundlagen des Testens und führen Sie das Android Testing Codelab mit den bereitgestellten Beispielen durch.
Beachten Sie abschließend, dass Ihnen über Repo Hooks grundlegende Presubmit-Tests zur Verfügung stehen, mit denen Sie Linters ausführen, die Formatierung überprüfen und Unit-Tests auslösen können, bevor Sie fortfahren, z. B. einen Commit hochladen. Beachten Sie, dass diese Hooks standardmäßig deaktiviert sind. Weitere Informationen finden Sie in der Einführung zu Repo Hooks .
Was und wie man testet
Ein Plattformtest interagiert normalerweise mit einem oder mehreren der Android-Systemdienste oder HAL-Schichten (Hardware Abstraction Layer), übt die Funktionalitäten des zu testenden Subjekts aus und stellt die Korrektheit des Testergebnisses sicher.
Daher kann ein Plattformtest:
- Framework-APIs über das Anwendungsframework nutzen; Spezifische APIs, die ausgeübt werden, können Folgendes umfassen:
- öffentliche APIs für Anwendungen von Drittanbietern
- versteckte APIs, die für privilegierte Anwendungen gedacht sind, nämlich System-APIs
- private APIs (@hide oder protected, package private)
- Rufen Sie Android-Systemdienste direkt über Raw-Binder/IPC-Proxys auf
- interagieren Sie direkt mit HALs über Low-Level-APIs oder IPC-Schnittstellen
Typ 1 und 2 werden normalerweise als Instrumentierungstests geschrieben, während Typ 3 normalerweise als GTests geschrieben wird.
Weitere Informationen finden Sie in unseren End-to-End-Beispielen:
Machen Sie sich mit diesen Tools vertraut, da sie für das Testen in Android unverzichtbar sind.
Kompatibilitätstest-Suite (CTS)
Die Android Compatibility Test Suite ist eine Suite verschiedener Arten von Tests, die verwendet werden, um die Kompatibilität von Android-Framework-Implementierungen zwischen OEM-Partnern und Plattformversionen sicherzustellen. Die Suite umfasst außerdem Instrumentierungstests und das GTest-Framework.
CTS- und Plattformtests schließen sich nicht gegenseitig aus. Hier einige allgemeine Richtlinien:
- Wenn ein Test die Korrektheit von Framework-API-Funktionen/-Verhalten bestätigt und er bei allen OEM-Partnern durchgesetzt werden soll, sollte er in CTS erfolgen
- Wenn ein Test darauf abzielt, Regressionen während des Plattformentwicklungszyklus abzufangen, und für die Durchführung möglicherweise eine privilegierte Erlaubnis erforderlich ist und er möglicherweise von Implementierungsdetails abhängt (wie in AOSP veröffentlicht), sollte es sich nur um Plattformtests handeln
Vendor Test Suite (VTS)
Die Vendor Test Suite (VTS) automatisiert HAL- und Betriebssystem-Kernel-Tests. Um VTS zum Testen einer integrierten Android-Systemimplementierung zu verwenden, richten Sie eine Testumgebung ein und testen Sie dann einen Patch mithilfe eines VTS-Plans.
Testinfrastruktur der Handelsföderation
Trade Federation (kurz: Tradefed oder TF) ist ein kontinuierliches Test-Framework, das für die Durchführung von Tests auf Android-Geräten entwickelt wurde. TF kann Funktionstests lokal, an Ihrem Schreibtisch oder im Kassenbereich Ihrer Plattform durchführen. Zum Ausführen eines Tests in TF sind zwei Dateien erforderlich: eine Java-Testquelle und eine XML-Konfiguration. Beispiele finden Sie unter RebootTest.java und reboot.xml .
Debuggen
Der Abschnitt „Debuggen“ fasst nützliche Tools und verwandte Befehle zum Debuggen, Verfolgen und Profilieren des integrierten Android-Plattformcodes bei der Entwicklung von Funktionen auf Plattformebene zusammen.