Sicherheit Hohe Softwarequalität durch frühzeitige und automatisierte Tests

Quelle: Pressemitteilung

Anbieter zum Thema

Wie lässt sich bei der Entwicklung von Anwendungen mit 16/32-Bit-Mikrocontrollern für eingebettete Systeme durch frühzeitige Tests qualitativ hochwertige Software erstellen?

Das Testen zu einem frühen Zeitpunkt im Projekt mit einem kostengünstigen Testwerkzeug (Hardware- und Software-Tool-chain) ist eine Methode, um die Software- und Produktqualität erheblich zu verbessern.
Das Testen zu einem frühen Zeitpunkt im Projekt mit einem kostengünstigen Testwerkzeug (Hardware- und Software-Tool-chain) ist eine Methode, um die Software- und Produktqualität erheblich zu verbessern.
(Bild: Protos )

Mikrocontroller haben eine enorme Verbreitung und sind wesentliche Bestandteile von Embedded-Systemen. Man denke nur an die Steuerung von elektrischen Antrieben. Die heutigen Motoren folgen immer noch den elektromechanischen Prinzipien aus der Anfangszeit. Die Anpassung dieser Motoren an die unterschiedlichsten Anwendungsprofile basiert heute in der Regel auf Steuerungen mit Mikrocontrollern. Für Algorithmen von Motorsteuerungen sind Programmpakete mit mehr als einer halben Million Codezeilen keine Seltenheit.

Darüber hinaus sind für diese Märkte Produktfamilien typisch, deren Vielfalt sich auch in entsprechend unterschiedlichen und damit komplexen Softwareumgebungen widerspiegelt.

Bildergalerie

Und schließlich arbeiten oft viele Entwickler an solchen Projekten, und zwar nicht nur an einem Standort. Hier ist eine große Herausforderung, den Überblick über Programmänderungen zu behalten und die Integrität des Codes sicherzustellen. Die Erfahrung zeigt, dass in vielen Projekten die Software nicht früh genug getestet wird und die Tests nicht automatisiert werden.

Doch warum ist das so?

Die Zielelektronik ist oft noch nicht verfügbar. Die Entwicklung findet auf Evaluierungsboards statt, für die es in der Regel keine Testsysteme gibt. Die üblichen Hardware-in-the-Loop (HIL)-Testsysteme sind oft zu groß und zu teuer, um kontinuierliche Tests während der Entwicklung zu ermöglichen. Testsysteme in Kombination mit Simulationselementen sind technisch kompliziert und schwer zu automatisieren.

Unit-Tests sind für das Testen von hardwarenahen, nebenläufigen oder asynchronen Funktionen (z.B. Treiber und Motorsteuerungen) schlecht geeignet.

Das Testen zu einem frühen Zeitpunkt im Projekt mit einem kostengünstigen Testwerkzeug (Hardware- und Software-Tool-chain) ist eine Methode, um die Software- und Produktqualität erheblich zu verbessern. Darüber hinaus beschleunigt das frühzeitige Testen den Entwicklungsprozess und reduziert die Kosten.

So wurde das Protos miniHIL Testsystem 2017 in einem Kundenprojekt eingeführt und ist inzwischen ein bewährtes Werkzeug in vielen Embedded-Projekten. MiniHIL ist ein kleines (Größe einer DIN A4-Seite) Hardware-in-the-Loop-Testsystem, das auf den Schreibtisch eines Entwicklers passt, weitaus billiger ist als ein herkömmliches HIL-System und von einer umfangreichen Software-Tool-Chain unterstützt wird. Es wurde entwickelt, um genau die oben zusammengefassten Anforderungen und Testlücken zu adressieren.

Zusätzlich ermöglicht es Testautomatisierung durch Hardware-in-the-Loop-Tests mit Continuous Integration.

Wie passt das zusammen?

Jede kleine Code-Änderung in der Software-Entwicklung kann schlimme Auswirkungen haben, wenn Fehler und Probleme zu spät entdeckt werden. Zudem ist ihre Beseitigung dann meist sehr aufwändig und teuer.

Deshalb ist es wichtig, jede Code-Änderung innerhalb von Minuten zu testen. Nur so kann sichergestellt werden, dass die Fehler schnell erkannt und behoben werden.

Bei reinen Softwareprojekten hilft zudem die vollständige Automatisierung der Tests über Continuous Integration. Hier löst jede Codeänderung automatisch den Build und Test der kompletten Software aus. Dies ermöglicht einen vollständigen Regressionstest, um Fehler in bestehendem und neuem Code innerhalb von Minuten zu entdecken.

Aber wie kann dies für System- oder Integrationstests von eingebetteten Systemen erreicht werden?

  • Die dafür erforderlichen Hardware-in-the-Loop-Tests oder manuellen Systemtests sind oft schwer zu automatisieren.
  • Echte Hardware-Komponenten im Testaufbau verhindern Automatisierung und Wiederholbarkeit (z.B.: Motoren, Batterien, Aktuatoren, Sensoren, ...)
  • Es kann nur der "Happy Path" getestet werden, nicht aber Fehlverhalten
  • Der Prüfstand ist oft zu teuer, um jederzeit für jedes Projekt für den Einsatz einer automatisierten Testumgebung zur Verfügung zu stehen
  • Leichtgewichtige Hardware-in-the-Loop-Tests mit miniHIL hingegen, ermöglichen die vollständige Automatisierung von Tests durch Continuous-Integration.

Wie funktioniert das?

  • Hardwareschnittstellen werden nur auf Signalebene simuliert und eigenen sich daher sehr gut für die Testautomatisierung
  • Testhardware wird weitgehend durch Software-Simulation ersetzt
  • Fehlverhalten kann leicht simuliert und entsprechend getestet werden
  • Die benötigte Hardware ist deutlich einfacher, kleiner und günstiger als herkömmliche HIL-Systeme. Ein eigener Testaufbau für die Automatisierung ist kosgtengünstig zu erstellen und für jedes Projekt jederzeit verfügbar

Mit MiniHL kann jede Änderung innerhalb von Minuten automatisch getestet werden. Nur durch eine vollständige und schnelle Testautomatisierung kann komplexe Embedded Software effektiv im Team entwickelt werden. In einem Testrack können zahlreiche Projekte - unterschiedliche Hardware- und Softwarevarianten – parallel, lokal und remote getestet werden. Die Continuous Integration verfolgt alle Programmänderungen und gewährt Code-Integrität in komplexen Entwicklungsumgebungen.

(ID:48484480)

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung