Call for Papers

TDD in der Embedded-Praxis ( Vortrag )

Mehr Vertrauen in den Code mit automatisiertem Feedback

Referent: Daniel Penning, Daniel Penning Software
Vortragsreihe: Test & Qualität
Zeit: 03. Dezember 08:50-09:35

Zielgruppe

Entwicklung

Themenbereiche

Implementierung, Test & Qualitätssicherung, Software Engineering Management

Voraussetzungen

Grundlagenwissen

Kurzfassung

Trotz aller Vorteile setzen sich agile Verfahren wie das TDD zur Entwicklung in eingebetteten Projekten nur langsam durch. Spezielle Probleme, wie Hardwareabhängigkeiten und Echtzeitanforderungen, lassen vielfach am praktikablen Einsatz dieser Methoden zweifeln. Gerade im Hinblick auf steigende Komplexität, sich verändernde Anforderungen und eine kritische Time-to-Market bietet ein agiler Ansatz mit hoher Testabdeckung jedoch entscheidende Verbesserungen. Dieser Vortrag zeigt anhand eines realen Systems zur Regelung von Leistungselektronik die Anwendbarkeit solch eines Entwicklungsmodells. Durch Bereitstellung einer simulativen Ausführungsumgebung auf dem Entwicklungsrechner lässt sich eine schnelle Feedbackschleife erreichen. Dazu werden zentrale Abhängigkeiten (RTOS, Peripherie, FPGA und Leistungselektronik) in ihrem Verhalten untersucht und dann nachgebildet. Der Ansatz erlaubt damit ein schnelles, größtenteils automatisiertes und umfassendes Feedback bei Softwareänderungen.

Gliederung

Feedback als zentrales Element eines Entwicklungsprojektes begreifen
Schwierigkeiten beim Übertragen auf die Embedded-Entwicklung

1.) Entwicklung einer Dual-Target-Umgebung
- Bestehende Abstraktionen für eine Cross-Kompilierung nutzen
- Ein Multitasking-Echtzeitbetriebssystems unter Microsoft Windows simulieren
- Zeitlich deterministische Prozesse (am Beispiel eines FPGA) abbilden
- Externe Modelle zur Simulation der Leistungselektronik einbinden

2.) Verschiedene Testebenen für gezieltes Feedback
- Unit- und Integrationstests als kritische Elemente jeder Testabdeckung
- Mocks und Stubs zur Isolierung von Hardwareabhängigkeiten
- Signal-Framework zum Test zeitabhängiger Signalverläufe
- Continuous Integration zur stetigen Qualitätssicherung

3.) Fallbeispiel: Regelung eines Tiefsetzstellers
- Zustandsautomaten vollständig testen
- Gütekriterien und Logik einer Regelung verifizieren

Kritische Betrachtung und Wirtschaftlichkeit des Ansatzes

Nutzen und Besonderheiten

Die Teilnehmer lernen, wie eine testgetriebene Entwicklung das Vertrauen in den Code erhöhen und damit den Entwicklungsprozess maßgeblich verbessern kann. Mit einem automatisiertem Feedback können auch tiefgreifende Änderungen ohne langwierige Analyse von Abhängigkeiten und Quereffekten effizient durchgeführt werden. Ohne die Gefahr bereits lauffähigen und erprobten Code durch Änderungen beschädigen zu können, werden sowohl neue oder modifizierte Anforderungen als auch strukturelle Verbesserungen leichter möglich. So können geringere Defektraten, kürzere Releasezyklen stabiler Software und sinkende Wartungskosten erreicht werden. Die vorgestellte Methodik geht weit über das reine Unit-Testen hinaus und zeigt insbesondere, wie auch zeitliche Anforderungen in den Testprozess einbezogen werden können. Die für die Embedded-Entwicklung kennzeichnende Hardware-Abhängigkeit wird dabei ausführlich besprochen.

Über den Referenten

Daniel Penning hat mehr als 10 Jahre Erfahrung in verschiedenen Bereichen der Softwareentwicklung. Zu Beginn in der klassischen Desktop-Entwicklung tätig, konzentriert er sich seit mehreren Jahren auf die speziellen Anforderungen eingebetteter Systeme. Als Freiberufler hilft er Unternehmen, agile Entwicklungskonzepte gewinnbringend auf hardwarenahe Systeme zu übertragen. Daniel Penning hält Abschlüsse in Elektrotechnik (BSc.), Automatisierungstechnik (MSc.) und ist zertifizierter Scrum Master.