Blog

Testing Embedded Systems - Richard Seidl

Geschrieben von Richard Seidl | 15.10.2024

In dieser Episode tauchen wir tief in die Welt der Embedded Software Entwicklung ein. Wir befassen uns mit den besonderen Herausforderungen beim Testen von Embedded Systemen, die häufig stark mit der Hardware verbunden sind. Dabei wird herausgestellt, dass Qualität und das Einhalten von Standards wie MISRA von entscheidender Bedeutung sind. Zudem wird die Rolle der Agilität in der Embedded-Entwicklung thematisiert und betont, wie wichtig eine gute Kommunikation im Team ist.

“Bei den funktionalen Sicherungssystemen hast du ja ein regularisches Umfeld. Du musst, wenn du so eine gewisse Zielstufe hast, einfach nach bestimmten Normen entwickeln.” – Alexander Eisenhuth

Alexander Eisenhuth ist Software-Architekt und unterstützt Hersteller von Embedded Systems mit seinem Mentoring bei der Entwicklung ihrer Software-Architektur. Seine Spezialität ist es, Junior-Software-Architekten mit gezieltem 1:1 Mentoring in ihrer Rolle als Software-Architekt fit zu machen, damit sie Ihre Herausforderungen effektiver meistern können. An der Arbeit des Software-Architekten in agilen Prozessen fasziniert ihn immer wieder aufs Neue, was beim Zusammenspiel der beiden Rollen Architekt und Team entsteht. Eine wichtige Aufgabe des agilen Software-Architekten ist es, Architekturarbeit zu identifizieren und diese möglichst gemeinsam mit dem Team umzusetzen.

Highlights in dieser Episode:

  • Embedded-Systeme sind spezialisierte Systeme innerhalb anderer Systeme, wie zum Beispiel ABS-Systeme im Auto oder Kaffeemaschinen.
  • Die Qualitätssicherung und das Testen sind bei Embedded-Systemen besonders herausfordernd, da sie eng mit der Hardware verbunden sind.
  • Es gibt spezielle Codierstandards wie MISRA und statische Codeanalysen, die sicherstellen, dass der Quellcode bestimmten Regeln entspricht.
  • Embedded-Systeme haben oft beschränkte Ressourcen, was die Wahl der Programmiersprache und Bibliotheken beeinflusst. C, C++ und Rust sind gängige Sprachen.
  • Agilität und kontinuierliche Integration sind auch in der Embedded-Entwicklung wichtig, um eine hohe Qualität sicherzustellen.

Embedded Software Entwicklung und Qualitätssicherung

In dieser Podcast-Episode spricht Richie mit Alex Eisenhut über die Herausforderungen und Besonderheiten der Embedded Software Entwicklung, insbesondere im Bereich des Testens und der Qualitätssicherung.

Einführung in die Welt der Embedded Software

Hallo und herzlich willkommen zu einer neuen Folge unseres Podcasts! Heute tauchen wir in die faszinierende Welt der Embedded Software Entwicklung ein. Wie testet man diese speziellen Systeme? Wie stellt man ihre Qualität sicher? Und was gilt es besonders im sicherheitskritischen Bereich zu beachten? Unser Gast ist Alexander Eisenhut, ein Experte auf diesem Gebiet. Alex erklärt uns zunächst, dass Embedded Systeme oft in größeren Systemen integriert sind und spezialisierte Aufgaben haben. Ein Beispiel hierfür ist das ABS-System eines Autos. Diese Systeme erfordern besondere Testmethoden, da sie eng mit der Hardware verbunden sind.

Qualitätssicherung aus Sicht eines Architekten

Alex, der als Software-Architekt für Embedded Systeme arbeitet, betont, dass Qualität eine zentrale Rolle spielt. Er beschreibt, dass das Testen von Embedded Systemen besonders herausfordernd ist, da sie oft direkt mit der Hardware interagieren. Dies erfordert Tests innerhalb des Systemkontexts. Um dies zu veranschaulichen, erläutert Alex die Schwierigkeiten bei der Simulation von Szenarien wie dem ABS-System eines Autos, wo exaktes Timing entscheidend ist. Er hebt hervor, dass die Qualitätssicherung bereits bei der Architektur beginnt und spezielle Codierstandards wie MISRA sowie statische Codeanalysen verwendet werden.

Ressourcenbeschränkungen und Programmiersprachen

Ein weiterer wichtiger Aspekt bei der Entwicklung von Embedded Software sind die beschränkten Ressourcen. Alex erklärt, dass je nach Anforderungen die Hardware unterschiedlich dimensioniert sein kann. In einigen Fällen sind nur wenige Kilobytes RAM verfügbar, was effizienten Code erfordert. Hierbei spielen auch die Wahl der Programmiersprache und Bibliotheken eine entscheidende Rolle. Traditionell wird viel in C oder C++ programmiert, aber auch moderne Sprachen wie Rust gewinnen an Bedeutung, insbesondere aufgrund ihrer Sicherheitsfeatures.

Testarten und Entwicklungsprozesse

Die Sicherheitsanforderungen an viele Embedded Systeme erfordern spezialisierte Testarten. Alex beschreibt den regulatorischen Rahmen für funktional sichere Systeme und erklärt das Vorgehen von Spezifikationen bis hin zu formalen Tests. Der Entwicklungsprozess beginnt oft mit Evaluationsboards, bevor spezifische Hardware entwickelt wird. Dabei werden verschiedene Teststufen durchlaufen: Unit-Tests, Integrationstests ohne Hardware und schließlich Systemtests auf der finalen Hardware. Die agile Entwicklung hat auch hier Einzug gehalten, wobei regelmäßige Iterationen und Anpassungen an Benutzerfeedback eine wichtige Rolle spielen.

Herausforderungen und Agilität

Ein großes Thema in der Embedded-Entwicklung ist die Zusammenarbeit zwischen Hardware- und Softwareteams. Richie erinnert sich an frühere Projekte, in denen diese Kommunikation schwierig war. Alex betont jedoch, dass Agilität auch in diesem Bereich möglich ist, sofern das Mindset stimmt. Gemeinsame Überlegungen und flexible Herangehensweisen sind hier entscheidend. Auch Automatisierung spielt eine große Rolle: CI-Pipelines sind Standard und ermöglichen kontinuierliche Integration sowie automatisierte Tests auf Target-Systemen.

Abschließende Gedanken und Tipps

“Was sind die größten Herausforderungen in der Embedded-Entwicklung?”, fragt Richie abschließend. Laut Alex sind es oft Time-to-Market-Druck sowie Kommunikationsprobleme bei Anforderungen und deren Umsetzung. Auch die Einhaltung von Sicherheitsstandards ist eine Herausforderung. Für Interessierte empfiehlt Alex den Embedded Software Engineering Congress (ESE) in Sindelfingen – eine großartige Gelegenheit zum Netzwerken und Lernen. Zum Schluss bedankt sich Richie bei Alex für das informative Gespräch und wünscht allen Zuhörern viel Spaß beim Eintauchen in die Welt der Embedded Software.