Kosteneffektiv testen dank virtuellen Labs

Selbst das kleinste IoT-Gerät steckt in einer komplexen Umgebung, die zum Zeitpunkt seiner  Entwicklung nicht unbedingt in vollem Umfang untersucht ist. Wir kennen die Security-Probleme, die entstehen, wenn Geräte das erste Mal mit dem Internet verbunden werden. Eine realistische physische Prüflabor-Umgebung einzurichten ist schwierig, und ist diese Arbeit getan, wird diese Umgebung zum entscheidenden Engpass beim Systemtest. Virtuelle Labore beseitigen diesen Flaschenhals und bringen gleichzeitig neue Vorteile für das servicebasierte Testen von IoT-Geräten mit sich.

Viele IoT-Geräte sind nicht bereit für die Primetime

Eine jüngst durchgeführte Studie ergab, dass 80 Prozent der IoT-Applikationen nicht auf Security-Mängel geprüft werden. Wie die Barr Group außerdem herausfand, untersuchen 56% der Entwickler von Embedded-Geräten ihren Quellcode nicht auf Sicherheitslücken, und 37% arbeiten ohne einen schriftlich niedergelegten Codierstandard. Angesichts dieser nicht gerade ermutigenden Zahlen wird klar: Die Hersteller von IoT-Geräten müssen die Themen Qualität, Safety und Security ernster nehmen. In diesem Kontext ist die Testautomatisierung ein wichtiger Schritt, um zu sicherzustellen, dass das Testen mit mehr Rigorosität, Konsistenz und Gründlichkeit erfolgt. Speziell das Testen auf Sicherheitslücken wird oftmals als zu teuer und komplex angesehen, sodass es im Schnelldurchlauf erfolgt oder ganz übersehen wird. Dabei ist es ein kostspieliger Fehler, es den Kunden (und deren Angreifern) zu überlassen, die Sicherheit ihrer IoT-Geräte zu testen.

Die Bestandteile eines virtuellen Labors

Ein reales Prüflabor erfordert ein möglichst wirklichkeitsgetreues Abbild der Umgebung, in der ein IoT-Gerät eingesetzt werden soll. Allerdings gestaltet sich die Skalierung auf eine realistische Umgebung selbst in den modernsten Laboren schwierig. Dieses Problem löst ein virtuelles Labor. Zum Einsatz kommt die Service-Virtualisierung gemeinsam mit weiteren wichtigen Testautomatisierungs-Tools:

  • Die Service-Virtualisierung simuliert sämtliche Abhängigkeiten, die der Prüfling für einen umfassenden Systemtest braucht. Dies schließt alle vom Gerät benutzten Verbindungen und Protokolle sowie realistische Reaktionen auf die Kommunikation ein. Zum Beispiel erlaubt die Service-Virtualisierung die Simulation des Back-Ends eines Enterprise-Servers, mit dem ein IoT-Gerät kommuniziert, um periodische Sensorsignale bereitzustellen. Auf ähnliche Weise kann die Virtualisierung das IoT-Gerät auf realistische Weise steuern.
  • Mit Service- und API-Tests lässt sich der Prüfling so ansteuern, dass die von ihm bereitgestellten Dienste (und die gebotenen APIs) fehlerlos arbeiten. Zur Durchführung der nötigen Performance- und Security-Prüfungen ermöglichen diese Tests eine Bearbeitung über die Automatisierungs-Plattform.
  • Die Laufzeit-Überwachung detektiert Fehler am Prüfling in Echtzeit und zeichnet wichtige Trace-Informationen auf. Beispielsweise lassen sich Speicherlecks, die im fertigen Produkt unentdeckt bleiben können, hiermit frühzeitig und kostengünstig erkennen und beseitigen.
  • Prüflabor-Management und Analytik übernehmen die übergreifende Kontrolle des virtuellen Prüflabors. Einmal virtualisiert, kann die gesamte Laborausstattung nach Bedarf repliziert werden, und die Testläufe lassen sich automatisieren und wiederholen. Die Analysen schließlich liefern die erforderliche Zusammenfassung der Aktivitäten und ihrer Resultate.
Bild 1. Typisches IoT-Ökosystem mit embedded Geräten (Quelle: Parasoft)

Das in Bild 1 gezeigte Edge-Computing-IoT-Ökosystem stellt eine typische Umgebung dar, in der embedded IoT-Geräte eingesetzt werden. Sensoren und Steuerungsgeräte kommunizieren Informationen an die Edge-Struktur. Diese wiederum besteht aus einer Reihe von Geräten oder Applikationen, die Informationen entgegennehmen können und mithilfe von Logik den Geräten antworten oder mit der Cloud kommunizieren. In der Cloud befindet sich übergeordnete Logik, mit der sich auf die gesammelten Informationen reagieren lässt. Die Cloud besteht aus Diensten (Mikroservices, Verbindungen zu Datenbanken, ergänzender Logik oder Third-Party-Diensten) und bildet ein komplexes Geflecht funktionaler Bausteine (im Bild rechts dargestellt).

Tests im IoT-Ökosystem sind auf mehreren Ebenen erforderlich. Um beispielsweise eine neue hinzugekommene Funktionalität im Gateway zu testen, muss bestätigt werden, dass das Gateway Informationen von den Sensoren erhalten kann und in der Lage ist, diese gemäß ihrer Geschäftslogik zu kommunizieren.

Zur Validierung all dieser Komplexität werden Tools wie Parasoft Virtualize (zum Simulieren der erforderlichen Abhängigkeiten) und Parasoft SOAtest (zum Durchführen der Tests) eingesetzt, um diese Inputs zu simulieren. Die genannten Tools liefern Simulationen realistischer Aufrufe der Geräte über das Netzwerk (unabhängig davon, ob Protokolle wie REST/HTTP zum Einsatz kommen oder IoT-übliche Protokolle wie CoAP, XMPP oder MQTT) und prüfen, ob der Prüfling (in diesem Fall das Gateway) ordnungsgemäß mit den Cloud-Diensten kommuniziert. Hierzu werden die von SOAtest zurückkommenden Antworten validiert. Bild 2 zeigt ein Beispiel dafür, wie sich eine virtuelle Laborumgebung für zu prüfende Edge-Geräte zusammenstellen lässt.

Bild 2. Parasoft Virtualize und SOAtest fungieren als virtuelle Laborumgebung für ein zu testendes Edge-Gerät (Quelle: Parasoft)

Wenn es externe Möglichkeiten zum Kommunizieren von Informationen zum Gateway gibt, lassen sich diese Aufrufe ebenfalls simulieren. Parasoft Virtualize ist dafür vorgesehen, die Prüfumgebung zu stabilisieren und vorhersagbare Reaktionen auf Anfragen zu erzeugen, die sich auf Testdaten aus SOAtest stützen, um das Gateway und die Dienste umfassend zu prüfen.

Schließlich kommunizieren die Dienste der obersten Ebene unter Umständen mit der Edge sowie mit anderen Sensoren und externen Aktoren. Hier kann es wichtig sein, die Gewissheit zu haben, dass die Inputs durch die Umgebung zurück zu den Back-End-Systemen gelangen. Parasoft Virtualize übernimmt hier die Simulation des Empfangs dieser Aufrufe bis zur Edge (bis zu den IoT-Geräten) sowie die Weiterleitung dieser Informationen zurück nach SOAtest. So lässt sich bestätigen, dass der Aufruf den Hin- und Rückweg absolviert und sich innerhalb des IoT-Ökosystems wie erwartet verhalten hat. Die Kombination aus Parasoft Virtualize und SOAtest bietet die umfassende Kontrolle zum Testen der gesamten Umgebung – auch mit den Komplexitäten eines IoT-Ökosystems.

Normale Prüfumgebungen sind teuer und dürften sogar mehr kosten als von den meisten Entwicklungsleitern eingeplant. Eine Studie von voke Research ergab, dass in ein Vorproduktions-Labor durchschnittlich 12 Mio. US-Dollar investiert werden. Für die Einrichtung des Labors werden im Mittel 18 Tage benötigt, und für die Konfiguration weitere 12 bis 14 Tage. Somit bedeutet die Bereitstellung derartiger Labore einen enormen Zeit- und Kostenaufwand – und trotzdem stellen sie wegen ihrer eingeschränkten Verfügbarkeit noch einen Engpass für die Prüfaktivitäten dar. Signifikant sind auch die täglichen Betriebskosten eines physischen Labors. In den meisten Fällen kommt es aus Kostengründen ebenfalls nicht in Frage, zur Steigerung des Prüfdurchsatzes ein zweites physisches Labor einzurichten.

Vorteile eines virtuellen IoT-Prüflabors

  • Höhere Qualität durch besseres und umfassenderes Testen – Servicebasiertes Testen bietet die Gewähr dafür, dass alle wichtigen Anwendungsfälle probiert und perfektioniert werden. Automatisierte Performance-Tests gewährleisten Stabilität und Zuverlässigkeit auch bei starker Belastung. Die Laufzeit-Überwachung schließlich stellt sicher, dass schwer auffindbare Fehler gefunden und verfolgt werden.
  • Mehr Sicherheit durch automatisierte Penetrationstests zur Simulation falsch formatierter Daten – Belastungstests können Denial-of-Service-Attacken simulieren, während sich mit der Laufzeit-Überwachung Sicherheitslücken aufdecken lassen. Die Reproduzierbarkeit der Tests stellt sicher, dass jede Iteration, jeder Patch und jedes Release auf die exakt gleiche Weise getestet wird. Hinzu kommt die Vereinfachung der Testentwicklung und -manipulation (etwa zum Verbessern und Erstellen neuer Tests).
  • Geringerer Zeit- und Kostenaufwand und weniger Risiken durch Wegfall der Notwendigkeit teurer Abhängigkeiten für komplette Systemtests – Automatisierung ermöglicht ein Maß an Reproduzierbarkeit und Konsistenz, das von manuellen Tests nicht geboten wird, während gleichzeitig für bessere und vollständigere Tests gesorgt wird. Virtuelle Labore verringern ganz erheblich den Zeitaufwand gegenüber dem Einrichten physischer Labore, was entsprechende Auswirkungen auf die gesamte Testzeit hat.

Fazit

Angesichts des aktuellen Status der Entwicklung von IoT-Geräten sind Änderungen am Entwicklungs- und Prüfprozess unabdingbar. Zunächst ist die Testautomatisierung eine bewährte Möglichkeit, die Kosten und Risiken zu reduzieren. Der nächste große Schritt zur Verbesserung der Qualität und Sicherheit von IoT-Geräten ist die Verwendung virtueller Labore, die Service-Virtualisierung, servicebasiertes Testen, virtuelles Labor-Management und Laufzeit-Überwachung miteinander kombinieren. Dies reduziert die Bereitstellungs- und Konfigurationskosten enorm, während sich die Qualität der durchgeführten Tests gleichzeitig signifikant verbessert.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.