Die Ära der durch das Internet of Thing (IoT) vernetzten Welt ist längst angebrochen. Der Testansatz eines hyperverbundenen hybriden Ökosystems mit vielschichtigen Verbindungen und Tausenden von Use Cases, Millionen von Apps, Milliarden von Nutzern und Milliarden von Dingen ist kein Kinderspiel. Wir beleuchten die kniffligen Herausforderungen und zeigen Möglichkeiten auf, wie wir diesen begegnen können, um eine effiziente Teststrategie aufzusetzen, eine maximale Testabdeckung zu garantieren und damit eine hochwertige Qualitätssicherung dieser Hyperkonnektivität sicherzustellen.
IoT – Zusammenhängendes Netz von Devices
IoT ist eine Verbindung von eindeutig identifizierbaren eingebetteten Devices (Things), die Daten sammeln, Aktionen auf Grundlage der Daten durchführen und das Internet als Medium für den Datenaustausch nutzen. IoT ist hauptsächlich gekennzeichnet durch:
- smarte Ressourcen und Sensoren,
- Intelligenz am Rand des Netzes, dem Edge,
- neue Kommunikationsparadigmen,
- Virtual Continuum & Servitization (also Erweiterung analoger Geschäftsmodelle um Digitalisierung) und
- Massive/Big Data.
Die größte Herausforderung in den vernetzten System-of-Systems ist die Prüfung der vollständigen Integration, um schnelle und qualitativ hochwertige Lieferungen zu gewährleisten, die zu einer hohen Kundenzufriedenheit führen.
Herausforderungen beim Integrationstest dieser hyperverbundenen Welt
Es gibt viele Herausforderungen, denen sich die Qualitätssicherung bei der Prüfung mehrschichtiger Komplexität, diversifizierter Plattformen, Geräte, Sensoren, Protokolle usw. stellen muss, wie:
- Vielfalt an Apps, Geräten, Netzwerken/Kanälen und Permutationskombinationen dieser Real-Time-Szenarien,
- große Auswahl an Protokollen, viele Schnittstellen und Dienste,
- Definition des Prüfumfangs aufgrund der großen Anzahl von miteinander verbundenen Hypersystemen,
- Real-Time-Datenprüfung (Feldtest),
- häufige Änderungen in der Umgebung erfordern häufige Integrationstests und Endto-End-Tests,
- enge Kopplung von Hard- und Softwarekomponenten,
- Security und Datenschutz,
- fehlende Skills und Standards.
Die Entwicklung einer effizienten Teststrategie ist der Schlüssel zur Bewältigung dieser Herausforderungen.
Ziele des Integrationstests in der hyperverbundenen Welt
Sechs Hauptziele für Integrationstests müssen erfüllt werden, um sicherzustellen, dass die Anwendung gut integriert und getestet ist:
- hohe Zuverlässigkeit,
- Möglichkeit, isoliert zu testen,
- hohe Skalierbarkeit,
- angemessene Übergangszeit,
- hohe Geschwindigkeit und Performanz und
- Kosteneffizienz.
Unsere empfohlenen Testansätze für „IoT QA“
Im Gegensatz zum Testen herkömmlicher Software hat das Testen von hyperverbundenen Hybridlösungen einen viel breiteren und komplexeren Umfang. Dazu braucht es eine verfeinerte Testexpertise und einen robusten QS-VP (Quality System-Validierungsprozess). Im QSVP ist aus Sicht des IoT-Anwenders zu handeln und dem Test-As-A-User-Ansatz zu folgen, anstatt dem anforderungsbasierten Test.
Die Art und Weise, wie wir die IoT-basierten Anwendungen testen, muss drastisch verändert werden. Bei Nagarro verwenden wir dafür einen neuen Begriff: IoT QA (= Quality Assurance). IoT QA sollte ein komfortables Testen nicht nur von Hardware, sondern auch von Software ermöglichen, das nicht nur in einer definierten Umgebung, sondern auch in einer dynamischen Umgebung durchgeführt wird. Das setzt voraus, dass Tester auch tiefere Domain-Kenntnisse besitzen.
Detaillierter Ansatz für Integrationstests in IoT-Anwendungen
Wir folgen vier Prinzipien für spezifische Integrationstests von IoT-Anwendungen:
- Interoperabilitäts- und Konformitätstests,
- Simulation,
- Service-Virtualisierung und
- Datenvalidierungen.
1. Interoperabilitäts- und Konformitätstests
Da es sich bei IoT um ein integriertes Netzwerk aus verschiedenen Softwarekomponenten, Geräten, Zugangskanälen, Protokollen und Netzwerkkanälen handelt, wird im Rahmen von Interoperabilitätstests die
Fähigkeit überprüft, dass alle Komponenten korrekte Interaktionen, Datenaustausch und Nutzung von Informationen zwischen Softwarekomponenten oder Systemen durchführen. Dies ist sowohl bei der Verwendung eines neuen IoT-Systems als auch bei der Änderung von Diensten, Protokollen oder Softwarekomponenten wichtig.
Das System Under Test (SUT) enthält die Implementation Under Test (IUT) und die Means of Testing (MOT). MOT beinhaltet wiederum mindestens einen Tester, abhängig von der Architektur des IUT und seinen Schnittstellen. MOT übernimmt zusätzlich Aktivitäten wie Koordination, Protokollierung und Reporting.
2. Simulation
Durch die Vielzahl von Dingen ist es unmöglich, hier reale Devices im Test zu verwenden. Mit einem Simulator ist der Aufbau eines großen Netzwerks relativ einfach. Dies wird durch das Schreiben von Code innerhalb des Simulators erreicht, um Knoten virtuell über ein virtuelles, drahtloses Netzwerk bereitzustellen und zu gestalten. Mit diesem Simulator können alle Aspekte des IoT-Designs simuliert werden, wie die Hardware-Einrichtung jedes Knotens, Prozessoren, Schichten, drahtlose Netzwerke usw.
Das Ändern der Signalstärke zwischen einem Knotenpaar und das zufällige Ablegen von Paketen als Ergebnis ist etwas, das innerhalb der Simulationsregeln eingerichtet werden kann. Solche Bedingungen können in der realen Welt häufig auftreten, zum Beispiel wenn ein Zug durch die Sichtverbindung zwischen zwei Knoten fährt und die Kommunikation unterbrochen wird. Es wäre schwierig, eine solche Simulation in einem Labor mit einem physikalischen Aufbau zu erstellen. Mithilfe von Code wird eine Simulation ausführbar.
3. Service-Virtualisierung
Die Service-Virtualisierung bietet eine kostengünstige Möglichkeit, Interoperabilitätstests durchzuführen. Die Service-Virtualisierung kann die Dinge erheblich beschleunigen, sodass die Tester weniger abhängig von Testinfrastrukturen sind und den Störungen der Interkonnektivität ausweichen können.
Für die Service-Virtualisierung wird ein Lab aufgesetzt, das alle simulierten Geräte und die Infrastruktur beinhaltet, um Abhängigkeiten von Entwicklungs- und Testteams zu vermeiden.
Ein Verfahren zur Service-Virtualisierung von Diensten:
- Identifizieren Sie alle Ressourcen wie Datenbanksystem, Router, Netzwerk, SaaS (Software as a Service)-Systeme, komplexe Testdaten usw., die eine Synchronisation und Integration erfordern.
- Identifizieren Sie Systeme, die für Tests nicht verfügbar sind oder über eine andere Zeitleiste und Zeitpläne verfügen.
- Erstellen Sie ein realistisches virtuelles Modell von abhängigen Systemen, sodass reale Systeme nicht mehr benötigt werden.
- Mithilfe von Automatisierungsskripten und „parent company-Simulatoren“ können Sie die Ein- und Ausgaben Ihrer Virtualisierungslösung konfigurieren und validieren.
- Stellen Sie das virtuelle Modell in einer virtuellen Umgebung bereit, um eine realistische Umgebung zu schaffen. Die Konfiguration kann bei Bedarf für Daten oder andere Funktionen erfolgen.
4. Datenvalidierungen
Als wesentliches Kriterium ist die Vollständigkeit der erfassten Daten von Sensoren, die Übergänge von Protokollen, Gateways und jedem Kommunikationskanal sicherzustellen; dabei ist speziell der Test eines korrekten Datenflusses wichtig. Das Testen der Datenvalidierung ist dabei sehr aufwendig. Aus diesem Grund haben wir ein Datenvergleichs-Framework auf Basis von Quelle und Ziel mit minimaler Anpassung und Konfiguration entwickelt.
Der Schlüssel zur erfolgreichen Integration ist ein kontinuierlicher automatisierter Test. Notwendig hierbei sind die Identifizierung der automatisierbaren Bereiche und die Implementierung der Automatisierung auf
verschiedenen Schichten von IoT-Systemen. Mit den erforderlichen Simulatoren/Emulatoren gibt es verschiedene Bereiche, in denen die Automatisierung, wie API-Tests, Cross-Browser- und Cross-Geräte-Tests, Geräte-Interaktionstests, Datenbanktests, Leistungstests usw. angewendet werden kann.
Umfang der Testarten für hyperverbundene IoT-Lösungen
Die folgende Abbildung fasst die Testarten zusammen, die in der Regel bei integrierten Produkten vor ihrer Markteinführung durchgeführt werden:
Wie kann man eine maximale Abdeckung sicherstellen?
Integrierte Services verlangen nach vielseitigen Testkompetenzen, um sicherzustellen, dass die Leistung der Dienste den Anforderungen entspricht. Durch die Einführung effektiver Best Practices können Anwender integrierte Tests erfolgreich durchführen. Beim Testen integrierter Anwendungen ist Folgendes zu beachten:
- Verwenden Sie Simulatoren, um einen Einsatz von Hunderten oder Tausenden von geografisch verteilten Geräten zu testen.
- Verwenden Sie digitale Zwillinge. Mit Digital Twins können Probleme vorhergesagt und verschiedene Lösungen virtuell getestet werden, bevor tatsächliche Änderungen am physischen Gegenstück vorgenommen werden.
- Folgen Sie den explorativen Tests, um das System während des Tests besser kennenzulernen.
- Verwenden Sie Remote Usability Tests, um die Benutzerfreundlichkeit von Websites zu testen, wenn sich Benutzer an verschiedenen geografischen Standorten befinden.
- Verwenden Sie kombinatorische Tests für eine optimale Darstellung aller Einflussfaktoren mit einer guten repräsentativen Stichprobe aller Testfälle.
- Verwenden von Service-Virtualisierungs-Tests.
- Klare Anforderungen, ein umfassender Testplan, Unittests, Integrationstests und eine effektive Kommunikation bilden die Grundlage für integrierte Tests.
- Effektives Testdatenmanagement-Tool für die Bereitstellung von Testdaten: a) Daten auf Abruf, b) Datenintegration, (c) Datensicherheit, d) Datenvalidierung.
- Robustes Backend: Wenn die Mainstream-Funktionalitäten in ein robustes Backend eingebettet sind, können Backend-Funktionalitäten mit gängigen Testmethoden, Tools und Ansätzen getestet werden.
- Verwenden Sie Risk-Based Testing, um die für das Unternehmen wichtigsten Merkmale zu identifizieren und Merkmale und korrelierte Testfälle entsprechend ihrem Risikolevel zu priosieren.
Testumgebungen wie Geräte-, Netzwerk- und Standortsimulatoren sind erforderlich, da das Testen auf realen Geräten, Aktuatoren und Kanälen nicht möglich ist. Außerdem ist es wichtig, den Datenverkehr zwischen den Geräten/Aktuatoren und Anwendungen zu überwachen, weshalb Sniffer/Analysatoren erforderlich sind.
Das Testen der integrierten, hyperverbundenen Welt ist in der Tat kein Kinderspiel. Doch mit einer effizienten Teststrategie, die maximale Testabdeckung garantiert, ist es möglich, eine hochwertige IoT QA sicherzustellen.
>> Dieser Artikel wurde im German Testing Magazin 02/2019 veröffentlicht - hier geht's zum Artikel-Download!
IoT, Accelerated Quality and Test Engineering, Integration Testing, Qualitätssicherung