Schwerpunkte

Advertorial

Cloud-Infrastruktur für Continuous Integration Tests

25. Mai 2021, 09:34 Uhr   |  Alexandra Chromy

Cloud-Infrastruktur für Continuous Integration Tests
© arm

Die meisten Embedded-Anwendungen werden heute noch auf Desktop-Computern erstellt. Das hat viele Gründe. Beispielsweise hängt der Validierungsprozess stark von der Zielhardware ab. Für andere Anwendungen ist Cloud Computing gut etabliert.

Wir stellen einen Cloud-basierten CI-Workflow (Continuous Integration) für Embedded-Projekte vor, der modellbasierte Simulation verwendet.

Auf einem Cloud-Dienst wie GitHub benutzt man normalerweise diese Infrastruktur:

  • Ein Docker-Image, das eine Tool-Umgebung zum Erstellen und Ausführen eines Projekts enthält.
  • GitHub-Aktionen, die den Testworkflow starten, wenn neuer Code in ein Repository eingecheckt wird.

Cloud-basiertes kontinuierliches Testen

Bei der Entwicklung von Embedded-Software werden traditionell lokale IT-Infrastrukturen und Desktop-Computer verwendet, die eine Verbindung zur Testhardware herstellen. Cloud-Technologien haben das Potenzial, die Entwicklungsabläufe durch kontinuierliche Tests zu verbessern, bei denen ein Cloud-Server eine virtuelle Maschine oder einen Container bereitstellt, der eine Tool-Umgebung mit Simulationsmodellen enthält. Zum Beispiel erfordern Standards bei Projekten der funktionalen Sicherheit einen abgestuften Testprozess, der sich aus folgenden Schritten zusammensetzt:

  • Unit-Tests, bei denen Code hauptsächlich auf Funktionsebene mithilfe eines Testframeworks getestet wird.
  • Integrationstests, bei denen mehrere Komponenten kombiniert und Schnittstellen überprüft werden.
  • Systemtests, bei denen das gesamte System anhand der Anforderungen getestet wird.

Bei Embedded-Anwendungen werden diese Testarten häufig ignoriert, obwohl die Vorteile (die auch für nicht-sicherheitsrelevante Anwendungen gelten) gut verstanden werden. Dafür gibt es einige gute Gründe, da zum Beispiel das Testen von Systemen einer Embedded-Anwendung normalerweise den Zugriff auf die Zielhardware erfordert.

Arm Fixed Virtual Platforms (FVP) bieten eine vollständige Simulation eines Arm-Systems, einschließlich Prozessor, Speicher und Peripheriegeräte. Diese FVPs sind konfigurierbar und bieten eine "Programmiereransicht", die Ihnen ein umfassendes Modell zum Debuggen und Testen Ihrer Software bietet. Diese FVPs sind ähnlich schnell wie reale Hardware und eignen sich ideal zum Ausführen von Komponententests. Bei Verwendung von Testdatenschnittstellen kann man damit auch Integrationstests fahren. FVPs werden mit demselben Prozess wie die tatsächliche Prozessorimplementierung verifiziert und stimmen daher mit dem logischen Verhalten realer Geräte überein.

Entwicklungsteams zögern jedoch, die anfänglichen Anstrengungen zum Aufbau eines Workflows für die Continuous Integration (CI) zu unternehmen, obwohl die langfristigen Vorteile unbestritten sind:

arm
© arm

In einem Blog wird anhand zweier Beispiele erklärt, wie man mit GitHub Actions und FVPs schnell zu relevanten Ergebnissen kommt: Cloud infrastructure for continuous integration tests

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Verwandte Artikel

ARM Germany GmbH