Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Überblick über die Handelsföderation

Trade Federation (kurz Tradefed oder TF) ist ein kontinuierliches Testframework, mit dem Tests auf Android-Geräten ausgeführt werden können. Mit Tradefed werden beispielsweise die Compatibility Test Suite (CTS) und die Vendor Test Suite (VTS) ausgeführt .

Trade Federation ist eine Java-Anwendung, die auf einem Host-Computer ausgeführt wird und über dbmlib (die Bibliothek hinter DDMS) über adb mit einem oder mehreren Android-Geräten kommuniziert.

Im Folgenden sind einige der Hauptfunktionen von TF sowie einige Beispielanwendungsfälle aufgeführt. Das heißt, wenn Sie direkt einsteigen und loslegen möchten, können Sie direkt zur Seite Start Here gehen .

Eigenschaften

  • modulares, flexibles und skalierbares Design
  • hat Unterstützung für die Ausführung vieler verschiedener Arten von Android-Tests eingebaut : Instrumentierung , uiautomator , native / gtest, hostbasierte JUnit usw.
  • bietet Zuverlässigkeit und Wiederherstellungsmechanismen zusätzlich zu adb
  • unterstützt das parallele Planen und Ausführen von Tests auf mehreren Geräten

Unter Testing Through TF finden Sie die aktuellsten Informationen zum Ausführen Ihrer vorhandenen Tests, z. B. Instrumentation .

Anwendungsfälle

Die Modularität der Trade Federation macht es einfach, sich in Umgebungen mit vorhandenen Build-, Test- und Berichtsinfrastrukturen einzufügen. Im Folgenden sind einige demonstrative Anwendungsfälle aufgeführt, in denen Tradefed effiziente, skalierbare Testpraktiken ermöglichen könnte.

Zunächst ist es nützlich, die Landschaft potenzieller Anwendungsfälle im Hinblick auf die Frage zu betrachten, welche Teile modifizierbar und welche statisch sind. Ein Geräte-OEM kann beispielsweise das Framework, das System und die Hardware ändern, hat jedoch nur geringen oder keinen Einfluss auf vorhandene Anwendungen. Ein Anwendungsentwickler hingegen kann die App ändern, hat jedoch wenig Kontrolle über die meisten Aspekte des Systems oder des Frameworks.

Infolgedessen hat eine Entität in jedem Anwendungsfall unterschiedliche Testziele und im Fall einer Reihe von Testfehlern unterschiedliche Optionen. Trotz dieser Unterschiede kann Trade Federation dazu beitragen, jeden ihrer Testprozesse effizient, flexibel und skalierbar zu gestalten.

Gerätehersteller

Ein Geräte-OEM erstellt Hardware und optimiert häufig das Android-System und die Frameworks, um auf dieser Hardware einwandfrei zu funktionieren. Der OEM ist möglicherweise bestrebt, diese Ziele zu erreichen, während Stabilität und Leistung auf Hardware- und Systemebene erhalten bleiben und sichergestellt wird, dass die Framework-Änderungen die Kompatibilität mit vorhandenen Anwendungen nicht beeinträchtigen.

Der OEM könnte ein Geräte-Flashing-Modul implementieren, das während der Ziel-Setup-Phase des Lebenszyklus ausgeführt wird . Dieses Modul hätte während seiner Ausführungsphase die vollständige Kontrolle über das Gerät, wodurch es möglicherweise gezwungen würde, das Gerät in den Bootloader zu zwingen, zu flashen und das Gerät dann zum Neustart in den Userspace-Modus zu zwingen. In Kombination mit einem Modul zur Anbindung an ein kontinuierliches Build-System kann der OEM Tests auf seinem Gerät ausführen, wenn er Änderungen an der Firmware auf Systemebene und an Frameworks auf Java-Ebene vornimmt.

Sobald das Gerät vollständig gestartet ist, kann der OEM vorhandene JUnit-basierte Tests nutzen oder neue schreiben, um die interessierende Funktionalität zu überprüfen. Schließlich könnten sie ein oder mehrere Modul für die Ergebnisberichterstattung schreiben, um sie in vorhandene Testergebnisse-Repositorys einzubinden oder um Ergebnisse direkt zu melden (z. B. per E-Mail ).

App-Entwickler

Ein Anwendungsentwickler erstellt eine App, die auf einer Vielzahl von Plattformversionen und Geräten gut funktionieren muss. Wenn auf einer bestimmten Plattformversion und / oder einem bestimmten Gerät ein Problem auftritt, können Sie nur eine Problemumgehung hinzufügen und fortfahren. Für größere Entwickler kann der Testprozess in eine kontinuierliche Erstellungssequenz integriert werden. Für kleinere Entwickler kann es regelmäßig oder von Hand gestartet werden.

Die meisten App-Entwickler würden die bereits in TF vorhandenen apk-Testinstallationsmodule verwenden. Es gibt eine Version, die vom lokalen Dateisystem installiert wird , sowie eine Version, die von einem Build-Service heruntergeladene Apks installieren kann. Es ist wichtig zu beachten, dass die letztere Version weiterhin ordnungsgemäß mit beliebig vielen TF-Instanzen funktioniert, die auf demselben Hostcomputer ausgeführt werden.

Aufgrund der Fähigkeit von TF, mit mehreren Geräten umzugehen, wäre es einfach, jedes Testergebnis nach dem Gerätetyp zu klassifizieren, der für diesen Test verwendet wurde. Somit könnte TF möglicherweise eine zweidimensionale (oder mehrdimensionale) Kompatibilitätsmatrix für jeden Build der Anwendung erzeugen.

Testdienst

Ein Testdienst kann beispielsweise App-Entwicklern ermöglichen, Apps einzureichen und Tests auf Geräten durchzuführen, die mit Tools zur Leistungsmessung ausgestattet sind, um den Stromverbrauch für die App zu bestimmen. Dies unterscheidet sich von den beiden vorherigen Anwendungsfällen darin, dass der Service Builder die Geräte oder Anwendungen, die ausgeführt werden, nicht steuert.

Da Trade Federation jede Java-Klasse ausführen kann, die die einfache IRemoteTest Schnittstelle implementiert, ist es trivial, Treiber zu schreiben, die eine externe Hardware mit dem Testfall koordinieren können, der auf dem Gerät ausgeführt wird. Der Treiber selbst kann Threads erzeugen, Anforderungen an andere Server senden oder alles andere tun, was er benötigt. Darüber hinaus bedeutet die Einfachheit und Vielseitigkeit der Ergebnisberichtsschnittstelle ITestInvocationListener , dass es ebenfalls einfach ist, beliebige Testergebnisse (einschließlich beispielsweise numerischer Leistungsmetriken) in der Standard-Ergebnisberichtspipeline darzustellen.