Insight

So werden Systeme durch gezieltes Testen resilienter

Clever angelegte Tests für Produkte und Systeme werden gerade heute immer wichtiger. Verantwortlich dafür sind nicht zuletzt die wachsende Anzahl von Schnittstellen, die sich durch immer mehr Features und ausgeprägter Flexibilität ergeben. Helbling hat seine Test-Methodik und Tool-Kompetenz in Kundenprojekten in den letzten Jahren stark verfeinert. Der Fokus liegt dabei auf gezielten Tests, die die Qualität und Resilienz von Systemen prüfen.

Was haben Diesel-Gate, eine gegroundete Flugzeugflotte und ein Zeichen-ersetzender Scanner gemeinsam? Angemessenes gesamtheitliches Testen der involvierten Produkte und Systeme hätte wahrscheinlich den immensen Image-Schaden für die Hersteller verhindert.

In einer Welt, in der Systeme immer komplexer werden – von einzelnen Geräten bis hin zu vernetzten Maschinen – steigen neben den Fehlerrisiken auch die Anforderungen an die Stabilität und Resilienz. Zahlreiche Features in Kombination mit ausgeprägter Flexibilität eines Produkts führen zu einer wachsenden Anzahl an Schnittstellen. Wie stellt man in einem solch komplexen System sicher, dass es wie gewünscht funktioniert, robust bleibt und die hohen Kundenerwartungen erfüllt?

Nebst Methodik, Entwicklungsprozessen und Reviews spielen Tests eine wichtige Rolle. Je nach Eigenheiten eines Systems gibt es Unterschiedliches zu beachten und Testabstraktionen müssen spezifisch definiert werden. Um Tests effizient und stabil umzusetzen, ist neben der Fertigkeit zum Schreiben von hochwertigem Code und zum Entwickeln von Hardware auch eine breite Erfahrung in weiteren Bereichen relevant: Schnittstellen-Design, Softwarearchitektur, Tools für Unit-, Integrations- und User Interface Tests, Build-, Deployment und Test-Automatisierung, sowie dedizierter Testsystem-Hardware. Helbling vereinigt diese Kompetenzen unter einem Dach. Nebst der Produkt-Entwicklung bietet Helbling die Entwicklung von Testsystemen und Testautomation an, und kann dabei auf eine langjährige Erfahrung aus interdisziplinären Projekten zurückschauen.

 

Gezieltes Testen gewährleistet die Qualität bei vertretbarem Aufwand

Stellen Sie sich vor, ein System wird entwickelt und erst beim Einsatz im Feld treten kritische Fehler auf. Solche Fehler können sich als kostspielig, rufschädigend, nicht korrigierbar oder sogar lebensgefährlich erweisen. Im schlimmsten Fall muss das Produkt vom Markt genommen werden. Deshalb sind Tests – in unterschiedlicher Granularität und zu verschiedenen Zeitpunkten – essenziell. Durch Simulationen oder Nachbildungen der entsprechenden Anwendungsfälle und der realen Einsatzbedingungen können Schwächen und Fehler frühzeitig erkannt und behoben werden. Dabei werden nicht nur der Gut-Fall, sondern auch Fehler wie menschliches Versagen oder technische Störungen einbezogen.

Eine hundertprozentige Testabdeckung zu erreichen, würde immense Ressourcen erfordern. Daher ist es wichtig, gezielt und effizient zu testen. Durch Helblings ausgefeilten Methoden der Risikoabschätzung für die Eintrittswahrscheinlichkeit von Fehlern und deren Tragweite können die passenden Massnahmen identifiziert und unnötige vermieden werden. Massnahmen sind nicht nur Testfälle, sondern beispielsweise Änderungen im Design oder in Prozessen. Dieser systematische Ansatz erlaubt die Reduktion auf die wesentlichen Tests.

 

Die Testpyramide – eine strukturierte Herangehensweise

Eine gut strukturierte Teststrategie umfasst mehrere Ebenen – von Unit-Tests über Komponenten- und Schnittstellen-Tests bis hin zu Gesamtsystem-Tests. Diese Struktur ermöglicht eine frühzeitige und gut lokalisierte Fehlererkennung, eine gute Wartbarkeit der Tests sowie eine klare Zuweisbarkeit von Projekt-Rollen zu Tests.

Die Testpyramide in Abb. 1 stellt die umfassende Teststruktur dar unter Berücksichtigung der Abstraktionsebenen von der Hardware bis zur Cloud.

Abbildung 1: generische Testpyramide. Abbildung: Helbling

Voraussetzung: Testbarkeit und zuverlässige Testausführung

Eine gut strukturierte System- und Softwarearchitektur mit klaren Schnittstellen sowie die Berücksichtigung der Testbarkeit aller Komponenten bereits ab der Entwurfsphase ermöglichen effektives Testen. Mithilfe einer gut definierten Branching-Strategie und einem passenden Merge- und Release-Management kann sichergestellt werden, dass Tests optimal im Entwicklungsprozess integriert und auf allen Stufen automatisierbar sind.

Die Automatisierung, die für eine zuverlässige, stabile und kosteneffiziente Testausführung unerlässlich ist, wird typischerweise auf einem Buildserver oder einer DevOps-Plattform implementiert. Diese erstellen in Pipelines die Software-Artefakte, testen sie auf verschiedenen Zielplattformen, und geben sie im Erfolgsfall als neues Release frei. Für voneinander unabhängige Testausführungen sowie für die zuverlässige Bereitstellung, das sogenannte Deployment, sind insbesondere im Cloud-Bereich oder beim Einsatz von Containern die Werkzeuge von «Infrastructure as Code» (IaC) essenziell. IaC beschreibt die zur Ausführung benötigte Infrastruktur in Form von Code, zum Beispiel für Server, Datenbanken oder Netzwerkeinstellungen. Das erlaubt, ganze Entwicklungs- und Test-Umgebungen schnell und konsistent aufzusetzen und zu verwalten. Dadurch lassen sich etwa auch nicht-funktionale oder destruktive Tests wie Stress-Tests, Penetration-Tests oder Recovery-Tests wiederholbar, skalierbar, zeit- und kosteneffizient durchführen.

Durch den gezielten Einsatz verschiedener spezialisierter Tools für Traceability und Reporting kann zudem sichergestellt werden, dass die Anforderungen an das Produkt in den Tests berücksichtigt und die Tests rückverfolgbar ausgeführt werden. Zudem können die Testresultate auf eine verständliche Art für ein breiteres Publikum zugänglich gemacht werden.

Abbildung 2: Testaufbau für ein Kundenprojekt. Abbildung: Helbling

Komponenten- und Schnittstellen-Tests: Integration im Fokus

Bei diesen Tests geht es um die Integration von ein, zwei oder mehreren Komponenten, die als Blackbox einzeln oder im Zusammenspiel über die Schnittstellen geprüft werden. In der Realität noch nicht getestete oder verfügbare Komponenten werden simuliert. Durch klar definierte Schnittstellen und die Simulation nicht getesteter Komponenten können die Komplexität reduziert und Fehler schneller identifiziert werden.

In der Factbox weiter unten sind drei konkrete Beispiele dargestellt. Sie beziehen sich auf die obige Testpyramide und zeigen die Bandbreite der Projekte, die von Helbling umgesetzt wurden und auch die Vorteile der strukturierten Herangehensweise in der Praxis.

 

 

Zusammenfassung: Spezifische Methodik für die effiziente Qualitätssicherung

Gezielte und strukturierte Tests sind der Schlüssel zur Sicherstellung der Qualität und Resilienz komplexer Systeme. Mit einer erprobten Methodik, interdisziplinär zusammengesetzten Teams und aktuellen Tools unterstützt Helbling Kunden umfassend dabei, die Resilienz und Stabilität von Produkten zu sichern. Überprüft wird dabei sowohl die kleinste Komponente als auch das Gesamtsystem. 

 

Autoren: Daniela Biberstein, Walter Pirrotta, André Wangler

Hauptbild: Helbling. Generiert mit Midjourney

Factbox

Drei Beispiele für erfolgreiche Testprojekte von Helbling:

Beispiel 1: Vernetzte Kaffeemaschine

Kaffeemaschinen im professionellen Umfeld werden immer vernetzter. Die Gründe dafür sind vielfältig und reichen vom simplen Informationsaustausch über die Fernsteuerung der Maschine bis hin zu predictive Maintenance. Viele dieser Szenarien können frühzeitig getestet werden, ohne die Notwendigkeit, eine vollständige Kaffeemaschine in Betrieb nehmen zu müssen.

In diesem Beispiel wurden Benutzereingaben direkt auf der Benutzeroberfläche der Kaffeemaschine getriggert und die darunterliegenden Hardware-Komponenten durch Simulatoren ersetzt. Die ausgelösten Ereignisse wurden über die Cloud erfasst und ausgewertet. Auf diese Weise war es möglich, das Verhalten und die Schnittstellen der Maschine zur Cloud zu testen, schon bevor die eigentliche Hardware vorhanden war. Dies hat die parallele Entwicklung der verschiedenen Komponenten unterstützt.

Beispiel 2: Integrationstestsystem für Haushaltsgeräte

Das System wurde für Continuous Testing während der Produktentwicklung und für Compatibility Testing mit unterschiedlichen Kombinationen von Komponenten während der Nutzungsphase ausgelegt. Das Endprodukt verfügte über eine Produktstruktur mit stabilen Schnittstellen bei vielen Produktvarianten und Bestelloptionen für Endkunden. U.a. wegen Obsoleszenz entstanden viele Versionen über die Zeit während der Produktlebensphase. Varianten und Versionen mussten zur Sicherstellung der Vor- und Rückwärtskompatibilität kombiniert getestet werden.

Bei der Konzipierung des Testsystems wurden die Hardware wie Firmware in einzelne, austauschbare Komponenten wie Motor, Drive, Sensoren, Tasten, Performance-Algorithmen, gegliedert. Daraus entwickelte das Team ein Framework bestehend aus Hardware und Software, welches erlaubt, beliebige, neue Komponenten mit bereits funktionierenden zu kombinieren. Neben den üblichen Logging-Funktionen wurde das Testsystem darauf ausgerichtet, Fehlverhalten oder auch leichte Abweichungen über die Zeit und die Stabilität in Ausnahmefällen festzustellen und damit vor allem die Vergleichbarkeit zwischen den Versionen zu qualifizieren und quantifizieren.

Beispiel 3: Dediziertes Test-Rack für den 24/7-Betriebtest komplexer optoelektronischer Systeme

Ein modulares und flexibel umrüstbares Testsystem für die Überprüfung verschiedener optoelektronischer Sensoren, wie etwa kamerabasiertert oder Lidar-Sensoren, wurde realisiert. Das System wird für Firmware- wie auch für Hardware-Tests eingesetzt. Der Hauptnutzen liegt in der ausgeprägten Variabilität und kurzen Umrüstzeit für verschiedene Prüflinge und somit in der hohen Investitionssicherheit.

Assets des Systems sind der hohe Automatisierungsgrad als Teil der Continuous Integration, Regressionstests und Endurance Tests. Die Virtualisierung mit Software Containern ermöglichte die Parallelisierung von mehreren Testinstanzen in Kombination mit einem Test-Rack, welches mittels dedizierten Connector Boards rasch und ohne grosses Kabelwirrwarr den zuverlässigen und sicheren Prüflingsanschluss gewährleistet. Durch die Wahl von NI-Hardware in Kombination mit Linux konnte die Entwicklungsaufwand stark verkürzt werden.

Kontakt

Daniela Biberstein

Hohlstrasse 614
8048 Zürich

André Wangler

Schachenallee 29
5000 Aarau

Weitere Insights

Treten Sie mit uns in Kontakt

Jetzt kontaktieren