Dieser Inhalt richtet sich an Entwickler von Android-Plattformen. Bevor Sie verstehen, wie Tests auf der Android-Plattform durchgeführt werden, sehen Sie sich bitte die Android-Plattformarchitektur an, um einen Überblick zu erhalten.
Tauchen Sie dann in die genauen Technologien ein, die Ihnen in diesem Abschnitt zur Verfügung stehen, wie z. B. die Vendor Test Suite (VTS) und ihre unzähligen Video- und Codelab-Tutorials .
Beachten Sie auch die verfügbaren sicherheitsspezifischen Testmechanismen , um Schwachstellen auf Ihren Geräten zu erkennen und zu schützen.
Beginnen Sie beim App-Testen mit den Grundlagen des Testens und führen Sie das Android Testing Codelab mit den bereitgestellten Beispielen durch.
Beachten Sie schließlich, dass Ihnen grundlegende Presubmit-Tests über Repo-Hooks zur Verfügung stehen, die Linters ausführen, die Formatierung überprüfen und Unit-Tests auslösen können, bevor Sie fortfahren, z. B. das Hochladen eines Commits. Beachten Sie, dass diese Hooks standardmäßig deaktiviert sind. Weitere Einzelheiten finden Sie in der Einführung zu Repo-Hooks .
Was und wie testen
Ein Plattformtest interagiert typischerweise mit einem oder mehreren der Android-Systemdienste oder HAL-Schichten (Hardware Abstraction Layer), übt die Funktionalitäten des zu testenden Subjekts aus und bestätigt die Korrektheit des Testergebnisses.
Daher kann ein Plattformtest:
- Framework-APIs über Anwendungsframework ausüben; Spezifische APIs, die ausgeübt werden, können Folgendes umfassen:
- öffentliche APIs, die für Anwendungen von Drittanbietern bestimmt sind
- versteckte APIs, die für privilegierte Anwendungen bestimmt sind, nämlich System-APIs
- private APIs (@hide oder protected, privates Paket)
- Rufen Sie Android-Systemdienste direkt über Raw-Binder/IPC-Proxys auf
- über Low-Level-APIs oder IPC-Schnittstellen direkt mit HALs interagieren
Die Typen 1 und 2 werden normalerweise als Instrumentierungstests geschrieben, während Typ 3 normalerweise als GTests geschrieben werden.
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 unabdingbar 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 auch Instrumentierungstests und das GTest-Framework.
CTS- und Plattformtests schließen sich nicht gegenseitig aus, und hier sind einige allgemeine Richtlinien:
- Wenn ein Test die Korrektheit von Framework-API-Funktionen/-Verhalten bestätigt und er von OEM-Partnern durchgesetzt werden soll, sollte er in CTS sein
- Wenn ein Test Regressionen während des Plattformentwicklungszyklus abfangen soll und für die Durchführung möglicherweise eine privilegierte Genehmigung erforderlich ist und von Implementierungsdetails (wie in AOSP veröffentlicht) abhängig sein kann, sollten es nur Plattformtests sein
Anbieter-Test-Suite (VTS)
Die Vendor Test Suite (VTS) automatisiert HAL- und OS-Kernel-Tests. Um VTS zum Testen einer integrierten Android-Systemimplementierung zu verwenden, richten Sie eine Testumgebung ein und testen Sie dann einen Patch mit einem VTS-Plan.
Testinfrastruktur der Handelsföderation
Trade Federation (kurz Tradefed oder TF) ist ein kontinuierliches Testframework, das für die Ausführung von Tests auf Android-Geräten entwickelt wurde. TF kann Funktionstests lokal, an Ihrem Schreibtisch, innerhalb Ihrer Plattform-Kasse durchführen. Es gibt zwei erforderliche Dateien, um einen Test in TF auszuführen, 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 zugehörige Befehle zum Debuggen, Verfolgen und Profilieren von integriertem Android-Plattformcode bei der Entwicklung von Funktionen auf Plattformebene zusammen.