labgrid Schulung

Automatisierte Softwaretests sind eine tolle Sache. Ein paar Testfälle ausdenken, Code schreiben, um sie abzudecken, und ab dann kann man sich jederzeit per pytest-, cargo test- oder meson test-Aufruf vergewissern, dass neue Änderungen keine bestehenden Annahmen verletzen. Gepaart mit einer Continuous Integration Pipeline, die diese Tests reproduzierbar z.B. für jeden Merge-/Pullrequest automatisch ausführt, können viele Probleme schon vermieden werden, bevor sie überhaupt im Hauptzweig eines Projekts landen.

Aber was, wenn die Software, die Sie testen wollen, mit Hardware interagieren muss, um sinnvoll getestet werden zu können? Z.B. weil es sich ein Embedded-System handelt, das auf einer ganz anderen Architektur basiert als Ihr Entwicklungssystem.

Dann kommt labgrid ins Spiel!

Das Wichtigste auf einen Blick

  • Art der Schulung: Private Schulung für Ihr Team
  • Ort: Bei Ihnen vor Ort
  • Dauer: 2 oder 3 Tage
  • Anzahl Teilnehmer: 1 bis 5 Teilnehmer
  • Sprache der Unterlagen: Englisch
  • Gesprochene Sprache: Deutsch oder Englisch
  • Agenda: Siehe Abschnitt "Der Workshop"
  • Notwendiges Vorwissen: Grundlagen im Umgang mit Embedded Linux sowie Python
  • Zielgruppe: Embedded-Linux-Entwickler und Tester von Embedded-Linux-Systemen
  • Notwendige Hardware: Wird gestellt

Um die Schulung bei Ihnen durchführen zu können, müssen folgende Voraussetzungen erfüllt sein:

  • Schulungsraum
  • Beamer für Präsentationen
  • Laptop oder anderer PC mit installiertem Linux für jeden Teilnehmer
  • Ungefilterte Internetverbindung via Netzwerkkabel
  • Steckdosen für jeden Platz

labgrid in wenigen Worten

labgrid erlaubt es, Embedded-Linux-Geräte fernzusteuern. Dies kann entweder interaktiv oder zum Durchführen von Integrationstests auf der tatsächlichen Hardware genutzt werden.

labgrid besteht aus mehreren Komponenten:

  • Eine Python-Bibliothek, die Abstraktionen für verschiedene Arten von Geräten bereitstellt.

    Die Abstraktionen umfassen z.B. Geräte zum Ein- und Ausschalten der Versorgungsspannung eines Device under Test (DUT) oder zum Einspielen von Software in ein DUT. Außerdem stehen auch Abstraktionen zur Kommunikation mit dem DUT zur Verfügung, z.B. per serieller Konsole oder per SSH.

  • Eine Client ⇄ Coordinator ⇄ Exporter Infrastruktur zur Nutzung von DUTs über das Netzwerk, inklusive Locking und Reservierungen, um Konflikte zwischen mehreren NutzerInnen zu vermeiden.

    Mehrere EntwicklerInnen nutzen am Tag gemeinsam ein einziges DUT. Und in der Nacht laufen auf genau diesem Gerät automatisierte Regressionstests.

    So nutzen Sie eine begrenzte Anzahl an Prototypenhardware bestmöglich.

Der Workshop

In unserem zweitägigen Workshop wollen wir Ihnen und Ihrem Team den direkten Einstieg in labgrid zeigen: Sie lernen die interaktive Nutzung von labgrid zum Teilen von Hardwareressourcen zwischen mehreren EntwicklerInnen kennen und erfahren, wie Sie labgrid zur Testautomatisierung nutzen.

Um keine Zeit mit der Einrichtung von Infrastruktur und anschließender Fehlersuche zu verbringen, reisen wir mit einem vorkonfigurierten labgrid-Setup bestehend aus LXA TACs und weiteren üblichen Fernsteuergeräten für jeden Teilnehmer an. Unser Setup deckt damit die häufigsten Nutzungsszenarien ab.

Die Veranstaltung gliedert sich in zwei Hälften: ein interaktiver Schulungsteil und ein Workshopteil.

Bei dem Schulungsteil sind Aufgaben und Lösungsansätze weitestgehend vorgegeben. In dem Workshopteil erarbeiten die Teilnehmenden Lösungen für Ihren Entwicklungsalltag. Dabei unterstützt Sie das Schulungspersonal.

Tag 1 (Schulungsteil): labgrid-Grundlagen
  • Vorstellung der verschiedenen Komponenten eines labgrid-Setups.
  • Überblick über die nötige Fernsteuerhardware zum Schalten der Versorgung, Software Einspielen, Kommunikation mit dem Gerät etc.
  • Interaktive labgrid-Nutzung per labgrid-client.
  • Nutzung von labgrid als Python-Bibliothek.
  • Nutzung von labgrid Strategies zur Automatisierung von Abläufen (Gerät abschalten → Software einspielen → Gerät einschalten → booten → einloggen → Shell).
  • Integration mit pytest zum automatischen Ausführen von Tests.
Tag 2 (Schulungsteil): Fortgeschrittene Themen
  • (Re-)Initialisieren eines DUT in einen bekannten Zustand für reproduzierbare Tests.
  • Testen von Updates inklusive Daten-Migration und Fallback.
  • Diskussion komplexer Szenarien, wie Provisionierung bei aktivem Secure Boot.
  • Automatisches Ausführen der Tests per GitLab-CI.
  • Diskussion von Möglichkeiten, um Ihre spezifische Hardware per labgrid einzubinden, und Skizzieren möglicher Testcases.

Im Schulungsteil wechseln sich theoretische Vorträge mit praktischen Übungen am Gerät ab. Praktische Übungen nehmen 50 % bis 70 % der gesamten Zeit ein.

Tag 3 (Workshop, optional): labgrid-Schnellstart auf Ihrer Hardware
  • Gemeinsame Inbetriebnahme Ihres labgrid-Labs.
  • Gemeinsames Aufsetzen einer initialen Testumgebung für Ihr DUT.
  • Gemeinsames Entwickeln erster Tests für Ihr DUT.

Der optionale Workshop wird im Pair-Programming mit wenigen Entwicklern und unseren ExpertInnen durchgeführt.

Kontakt

Ist Ihr Interesse geweckt? Dann treten Sie mit uns in Kontakt und fragen Sie Ihr individuelles Angebot an:

info@pengutronix.de

Gerne schneiden wir die Inhalte auf die Bedürfnisse Ihres Unternehmens zu.