Embedded-Softwaretests auf echter Hardware
Midair führt dieselbe Testsuite auf allen Ihren Boards, Builds und Netzwerkaufbauten aus und speichert die Nachweise jedes Laufs.
In Embedded-Systemen zeigen sich die wichtigen Fehler auf einer Board-Revision, nach einem Update oder unter einer bestimmten Last. Midair zeigt, wo.
Was Embedded-Tests sind.Software, zusammen mit ihrer Hardware getestet.
Embedded-Tests prüfen Software zusammen mit der Hardware, auf der sie läuft. Dazu gehören das Board, seine Peripherie, das Betriebssystem, das Netz und die anderen Geräte in der Umgebung.
Firmware-Tests sind ein Teil davon. Embedded-Tests prüfen auch, wie sich Treiber, Dienste und Anwendungen auf dem Gerät verhalten und wie sich eine Geräteflotte im Feld verhält.
Die Ergebnisse hängen von der Board-Revision, dem Build, dem Timing und dem Zustand des Geräts ab. Ein brauchbarer Test zeichnet deshalb all das neben dem Ergebnis auf.
Unser Leitfaden (auf Englisch) beschreibt Methoden und typische Fehler ausführlicher: How to test embedded systems.
Teststufen.Vom Arbeitsplatzrechner bis zur Flotte.
Jede Stufe findet Fehler, die die vorherige Stufe nicht sieht. Wählen Sie eine Stufe aus, um zu sehen, was sie findet und wie Midair damit umgeht.
Auf dem Arbeitsplatzrechner
- Findet
- Logikfehler, Parserfehler, falsche Arithmetik und verletzte Schnittstellenverträge.
- Übersieht
- Timing, Peripherie und alles, was das echte Board anders macht.
- In Midair
- Visao analysiert dieselben Quellen mit Ihrer Cross-Toolchain, bevor etwas läuft. Mit dem Profil MISRA C:2012 nennt Visao die Regelnummern.
Im Emulator
- Findet
- Boot-Probleme, Integration ins Betriebssystem und Dienste, die nicht starten.
- Übersieht
- Echte Peripherie, analoges Verhalten und genaues Timing.
- In Midair
- Dieselbe Suite läuft auf QEMU mit Snapshots. So gibt es die Tests schon, bevor das Board auf dem Tisch liegt.
Auf einem Board
- Findet
- Fehler in der Peripherie, Timing, Stromausfall und Wiederanlauf nach einem Fehler.
- Übersieht
- Probleme, für die andere Geräte oder ein Netz rund um das Board nötig sind.
- In Midair
- Ein Rechner neben dem Board steuert im Test die Stromversorgung, das Flashen, die serielle Konsole und JTAG.
Mit der umgebenden Hardware
- Findet
- Protokollfehler, die Startreihenfolge und Treiber im Zusammenspiel mit echten Geräten.
- Übersieht
- Seltene Fehler, die erst bei vielen Einheiten auftreten.
- In Midair
- Test Environment koordiniert in einem Lauf Agenten auf mehreren Rechnern. So gehören das Board, das Netz und die Gegenstellen zum Test.
In einer Flotte
- Findet
- Abweichende Konfigurationen, eine Einheit, die sich von den anderen unterscheidet, und Änderungen nach einem Update.
- Übersieht
- Ob das ganze Produkt seine Aufgabe für den Nutzer erfüllt.
- In Midair
- Delta vergleicht jedes Gerät mit einer Baseline und zeigt die Ausreißer in einer Flotte.
Als Gesamtsystem
- Findet
- Das Verhalten des fertigen Produkts in seiner echten Umgebung.
- Übersieht
- Keine einzelne Stufe kann das ersetzen, denn diese Stufe baut auf den anderen auf.
- In Midair
- Ein Datensatz pro Lauf hält Befunde im Code, Testergebnisse und Nachweise vom Gerät zusammen.
Warum Embedded-Systeme schwerer zu testen sind.Fünf Gründe.
Das Ergebnis hängt von der Hardware ab
Derselbe Build kann auf einer Board-Revision bestehen und auf einer anderen fehlschlagen.
Das Timing entscheidet
Eine verspätete Antwort ist ein Fehler, und vielleicht kommt sie nur unter Last zu spät.
Das Gerät zeigt wenig
Oft gibt es keinen Debugger, nur eine Konsole und ein paar Logs.
Der Zustand bleibt erhalten
Ein vorheriger Test, eine lange Betriebszeit oder ein halb fertiges Update ändern, was der nächste Test sieht.
Späte Fehler kosten am meisten
Ein Fehler, der erst nach der Hardware-Integration auftaucht, kann ein neues Board-Design oder ein verschobenes Release bedeuten.
Wie Midair Embedded-Systeme testet.Vier Schritte, ein Datensatz.
-
1
Visao
Zuerst den Code prüfen
Visao analysiert C, C++ und Assembler mit Ihrer Cross-Toolchain, auch für Bare-Metal-Ziele. Mit einer Baseline meldet Visao nur neue Befunde.
visao · arm-none-eabi-gcc · baseline: main otp.cpp:20:20 error arithm/integer/overflow MISRA 12.4 otp.cpp:31:5 error cpp/string/no_null_terminator MISRA 21.17 2 new findings, 0 fixed since the baseline
-
2
Test Environment
Eine Suite auf allen Zielsystemen ausführen
Agenten auf den Testrechnern führen dieselbe Suite auf jedem Board, Build und Netzwerkaufbau aus. Jeder Test hat ein erwartetes Ergebnis, daher fällt eine Regression sofort auf.
fw-smoke · fw 2.4.1 · 4 targets board rev A 12 as expected board rev B 11 as expected, 1 unexpected board rev C 12 as expected QEMU aarch64 12 as expected update/keep_config fails on rev B only
-
3
Delta
Das Gerät selbst untersuchen
Delta untersucht das laufende System oder das Root-Dateisystem der Firmware: Ports, Persistenzdateien, Binärdateien und deren Härtung. Delta meldet die Abweichungen von einer Baseline.
delta · board rev B · baseline golden.json appeared /etc/cron.d/backup mode 0666 T1053.003 appeared tcp 0.0.0.0:2375 dockerd missing stack canary in /usr/bin/agent 3 differences from the baseline
-
4
Midair
Den Fehler im Zusammenhang lesen
Midair speichert jeden Lauf mit Konfiguration, Logs und Ergebnissen und überschreibt ihn nie. Ein über MCP angebundener KI-Assistent liest dieselben Fehler und Logs.
mcp · midair_run_failures update/keep_config board rev B FAILED expected PASSED mcp · midair_get_log console config v3 found, reader expects v4 console Kernel panic - not syncing
Der Embedded-Pfad.Eine Seite pro Stufe.
Weiterlesen.Aus unserer Entwicklungsarbeit.
Fragen.Kurze Antworten.
Was sind Embedded-Tests?
Embedded-Tests prüfen Software zusammen mit der Hardware, auf der sie läuft. Dazu gehören das Board, seine Peripherie, das Betriebssystem, das Netz und die Geräte in der Umgebung.
Welche Stufen gibt es bei Embedded-Tests?
Unit-Tests auf dem Arbeitsplatzrechner, Tests im Emulator und Tests auf einem Board (Hardware-in-the-Loop). Danach folgen die Integration mit der umgebenden Hardware, Tests in einer Flotte und die Validierung des ganzen Systems.
Worin unterscheidet sich das von Firmware-Tests?
Firmware-Tests konzentrieren sich auf die Software in einem Gerät: Flashen, Booten, Peripherie und Wiederanlauf. Embedded-Tests decken zusätzlich die Anwendungen auf dem Gerät, das Netz und Geräteflotten ab.
Können wir testen, bevor die Hardware fertig ist?
Ja, teilweise. Visao analysiert den Quellcode, ohne ihn auszuführen. Tests können auf QEMU laufen, und Delta kann ein Root-Dateisystem der Firmware offline untersuchen.
Mit welchen Boards und Systemen arbeitet Midair?
Tests erreichen das Board über einen Rechner daneben, das Board braucht also keinen Agenten. Delta läuft auf Embedded Linux unter x86_64, AArch64, ARMv7, RISC-V und MIPS. Visao analysiert Code, der mit Cross-Toolchains gebaut wird, auch für Bare-Metal-Ziele.
Passt das in unsere CI?
Ja. Läufe starten aus Ihrer CI, zum Beispiel mit dem Jenkins-Plugin. Ein KI-Assistent kann über MCP Läufe starten und Fehler lesen.
Starten Sie mit einem Board und einer Suite.Danach kommt der Rest des Labors dazu.
Vergleichen Sie die Tarife auf der Preisseite. Die Preise gelten pro Monat, in Euro.
Pilot starten