Holen Sie sich die UMFANGREICHSTE Abdeckung für die Einhaltung von MISRA C! Erfahren Sie mehr >>

Kostengünstiges Testen von IoT-Geräten mit Virtual Labs

Von Parasoft

18. August 2017

5  min lesen

Selbst das kleinste IoT-Gerät befindet sich in einer komplexen Umgebung, die zum Zeitpunkt der Entwicklung möglicherweise nicht vollständig verstanden wird. Tatsächlich haben wir bereits die Sicherheitsprobleme gesehen, die mit Geräten verbunden sind, die zum ersten Mal mit dem Internet verbunden sind. In einem früheren PostWir diskutierten die Vorteile der Serviceorientierung für Design, Entwicklung und Test. In diesem Beitrag bringen wir servicebasierte Tests und Servicevirtualisierung zum nächsten Schritt - den virtuellen Labors. Der Aufbau einer realistischen Laborumgebung für physikalische Tests ist schwierig, und selbst wenn sie abgeschlossen ist, wird sie zum Hauptengpass bei Systemtests. Virtuelle Labore beseitigen diesen Engpass und bieten gleichzeitig neue Vorteile für service-basierte IoT-Gerätetests.

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

Eine kürzlich Studie festgestellt, dass 80 Prozent der IoT-Apps sind nicht auf Sicherheitslücken getestet werden. Die Barr Group hat das festgestellt 56% der Entwickler eingebetteter Geräte Überprüfen Sie den Quellcode nicht auf Sicherheitslücken und 37% haben keinen schriftlichen Codierungsstandard. Dies sind keine ermutigenden Statistiken, und es ist klar, dass Hersteller von IoT-Geräten Qualität, Sicherheit und Schutz ernst nehmen müssen. Die Testautomatisierung ist ein wichtiger Schritt, um sicherzustellen, dass die Tests strenger, konsistenter und gründlicher durchgeführt werden. Das Testen, insbesondere auf Sicherheitslücken, wird häufig als zu kostspielig und komplex angesehen und daher überstürzt oder ganz übersehen. Es ist jedoch ein teurer Fehler, Ihre Kunden (und Angreifer) die Sicherheit Ihres IoT-Geräts für Sie testen zu lassen.

Die Zutaten des virtuellen Labors

Ein echtes Testlabor erfordert die engste physische Manifestation der Umgebung, in der ein IoT-Gerät arbeiten soll, aber selbst in den anspruchsvollsten Labors ist es schwierig, eine realistische Umgebung zu erreichen. Ein virtuelles Labor behebt dieses Problem. Virtuelle Labore entwickeln sich über die Notwendigkeit schwer zu findender (oder möglicherweise nicht vorhandener) Hardwareabhängigkeiten hinaus. Verwenden Sie eine ausgefeilte Service-Virtualisierung mit anderen wichtigen Tools zur Testautomatisierung:

  • Service-Virtualisierung simuliert alle Abhängigkeiten, die das zu testende Gerät benötigt, um vollständige Systemtests durchzuführen. Dies umfasst alle vom Gerät verwendeten Verbindungen und Protokolle mit realistischen Reaktionen auf die Kommunikation. Beispielsweise kann die Servicevirtualisierung ein Back-End eines Unternehmensservers simulieren, mit dem ein IoT-Gerät kommuniziert, um regelmäßige Sensorablesungen bereitzustellen. Ebenso kann die Virtualisierung das IoT-Gerät auf realistische Weise steuern.
  • Service- und API-Tests bieten eine Möglichkeit, das zu testende Gerät so zu betreiben, dass sichergestellt ist, dass die von ihm bereitgestellten Dienste (und die bereitgestellten APIs) einwandfrei funktionieren. Diese Tests können über die Automatisierungsplattform bearbeitet werden, um bei Bedarf Leistungs- und Sicherheitstests durchzuführen.
  • Laufzeitüberwachung Erkennt Fehler in Echtzeit auf dem zu testenden Gerät und erfasst wichtige Trace-Informationen. Beispielsweise können Speicherlecks, die in einem fertigen Produkt unentdeckt bleiben können, frühzeitig und kostengünstig erkannt und behoben werden.
  • Verwaltung und Analyse von Testlabors Stellen Sie die übergreifende Kontrolle über die virtuellen Labors bereit. Nach der Virtualisierung kann das gesamte Labor-Setup nach Bedarf repliziert und Testläufe automatisiert und wiederholt werden. Analytics bieten die notwendige Zusammenfassung der Aktivitäten und Ergebnisse.

Das Edge-Computing-IoT-Ökosystem ist in Abbildung 1 dargestellt und zeigt eine typische Umgebung, in der eingebettete IoT-Geräte bereitgestellt werden. Sensoren und Steuergeräte übertragen Informationen an den Edge. Hierbei handelt es sich um eine Reihe von Geräten oder Anwendungen, die Informationen empfangen und mithilfe der Logik mit einem Gerät oder bis zur Cloud kommunizieren können. Die Cloud verfügt dann über eine übergeordnete Logik, die es ihr ermöglicht, auf diese Informationen zu reagieren. Die Cloud besteht aus einer Reihe von Diensten - Mikrodiensten, Verbindungen zu Datenbanken, zusätzlicher Logik oder Diensten von Drittanbietern -, einem komplexen Netz funktionaler Bausteine ​​(siehe unten rechts).

 Abbildung 1: Ein typisches IoT-Ökosystem, in dem eingebettete Geräte bereitgestellt werden

Wenn es Zeit ist, im IoT-Ökosystem zu testen, sind Tests auf vielen Ebenen erforderlich. Um neue Funktionen zu testen, die im Gateway eingeführt wurden, z. B. die Überprüfung, ob das Gateway Informationen von Sensoren empfangen und diese auf die Art und Weise kommunizieren kann, wie Sie die Geschäftslogik erstellt haben.

Um all diese Komplexität zu validieren, Parasoft Virtualisieren (das erforderliche Abhängigkeiten simuliert) und Parasoft SOAtest (welche Tests antreibt) werden verwendet, um diese Eingaben zu simulieren. Diese Tools bieten Simulationen realistischer Anrufe von den Geräten über das Netzwerk (unabhängig davon, ob es sich um Protokolle wie REST / HTTP oder beliebte IoT-Protokolle wie CoAP, XMPP oder MQTT handelt) und testen das zu testende Gerät (in diesem Beispiel das Gateway). kommuniziert angemessen mit den Cloud-Diensten, indem die Antworten überprüft werden, die von SOAtest zurückkommen. Abbildung 2 unten zeigt ein Beispiel dafür, wie eine virtuelle Laborumgebung für zu testende Edge-Geräte erstellt werden kann.

Wenn es externe Möglichkeiten gibt, Informationen in dieses Gateway zu übertragen, können diese Anrufe ebenfalls simuliert werden. Parasoft Virtualize wurde entwickelt, um die Testumgebung zu stabilisieren und vorhersehbare Antworten auf Anforderungen zu erstellen, die Testdaten von SOAtest nutzen und das Gateway und die Dienste vollständig testen. 

Schließlich kommunizieren die Dienste der obersten Ebene möglicherweise wieder an den Rand und zurück zu anderen Sensoren und externen Akteuren, und es ist möglicherweise wichtig zu wissen, dass der Fluss Ihrer Eingaben durch die Umgebung zurück zum Back-End gelangt Systeme. Parasoft Virtualize wird verwendet, um den Empfang dieser Anrufe bis zum Rand (bis zu den IoT-Geräten) zu simulieren und diese Informationen dann an SOAtest weiterzuleiten, um zu bestätigen, dass der Anruf den Roundtrip durchgeführt hat und sich so verhalten hat, wie es im IoT-Ökosystem erwartet wurde . Die Kombination von Parasoft Virtualize und SOAtest bietet vollständige Kontrolle, um die gesamte Umgebung zu testen, selbst innerhalb der Komplexität eines IoT-Ökosystems.

Abbildung 2: Die Rolle der Parasoft-Tools Virtualize und SOAtest erstellt eine virtuelle Laborumgebung für ein zu testendes Edge-Gerät

Verbessern Sie Qualität und Sicherheit und reduzieren Sie gleichzeitig Zeit, Kosten und Risiken

Normale Testumgebungen sind teuer, wahrscheinlich mehr als die meisten Entwicklungsmanager prognostizieren. Eine Studie von voke Forschung fanden heraus, dass die durchschnittliche Investition in ein Vorproduktionslabor 12 Millionen US-Dollar betrug. In Bezug auf die Zeit betrug die durchschnittliche Zeit für die Bereitstellung des Labors 18 Tage, und weitere 12 bis 14 Tage wurden für die Konfiguration aufgewendet. Die Einrichtung dieser Labore nimmt viel Zeit und Geld in Anspruch, und selbst danach fungieren sie aufgrund des eingeschränkten Zugriffs als Engpass beim Testen. Darüber hinaus sind die täglichen Betriebskosten der physischen Labore erheblich. In den meisten Fällen ist das Duplizieren eines physischen Labors zur Erhöhung des Testdurchsatzes unerschwinglich.

In ein anderer BeitragWir haben die Vorteile der Service-Virtualisierung auf die Verbesserung des Zugriffs auf Testgeräte mit einer besseren Kontrolle des Verhaltens virtualisierter Abhängigkeiten reduziert, wodurch die Kosten gesenkt und die Testgeschwindigkeit erhöht werden. Lassen Sie uns auf ähnliche Weise die Vorteile des virtuellen IoT-Testlabors aufschlüsseln:

  • Verbesserte Qualität durch bessere und umfassendere Tests
    Servicebasierte Tests stellen sicher, dass wichtige Anwendungsfälle ausgeführt und perfektioniert werden. Automatisierte Leistungstests gewährleisten Stabilität und Zuverlässigkeit unter hoher Last. Darüber hinaus stellt die Laufzeitüberwachung sicher, dass schwer zu findende Fehler erkannt und verfolgt werden.
  • Verbesserte Sicherheit durch automatisierte Penetrationstests, die fehlerhafte Daten simulieren
    Lasttests können Denial-of-Service-Angriffe simulieren und die Laufzeitüberwachung kann Sicherheitslücken erkennen. Die Wiederholbarkeit des Tests stellt sicher, dass jede Iteration, jeder Patch oder jede Version auf genau dieselbe Weise getestet wird. Darüber hinaus wird die Testentwicklung und -manipulation (dh das Verbessern und Erstellen neuer Tests) vereinfacht.
  • Reduzieren Sie Testzeit, -risiko und -kosten, indem Sie keine teuren Abhängigkeiten mehr benötigen, die für vollständige Systemtests erforderlich sind
    Die Automatisierung bietet Wiederholbarkeit und Konsistenz, die manuelle Tests nicht bieten können, und bietet gleichzeitig bessere und umfassendere Tests. Virtuelle Labore reduzieren die für die Einrichtung physischer Labors erforderliche Bereitstellungszeit erheblich und wirken sich auf die gesamte Testzeit aus.

Fazit

Angesichts des Standes der Entwicklung von IoT-Geräten müssen Änderungen an Entwicklungs- und Testprozessen vorgenommen werden. Testautomatisierung ist ein bewährter Ansatz zur Reduzierung von Kosten und Risiken. Der nächste große Schritt zur Qualitäts- und Sicherheitsverbesserung für IoT-Geräte ist die Verwendung virtueller Labore, die Servicevirtualisierung, servicebasierte Tests, Verwaltung virtueller Labors und Laufzeitüberwachung kombinieren. Dies reduziert die Bereitstellungs- und Konfigurationskosten erheblich und erhöht gleichzeitig die Qualität der durchgeführten Tests erheblich.  

Von Parasoft

Die branchenführenden automatisierten Softwaretest-Tools von Parasoft unterstützen den gesamten Softwareentwicklungsprozess, vom Schreiben der ersten Codezeile über Unit- und Funktionstests bis hin zu Leistungs- und Sicherheitstests, wobei simulierte Testumgebungen genutzt werden.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.