Neue Domänen erobern und den Erfolg sichern!

Warum umfängliches Testen für das Internet der Dinge unumgänglich ist
Im Internet der Dinge (IoT) entsteht Wertschöpfung aus dem Zusammenspiel von Dingen, Cloud-Plattformen und Benutzerschnittstellen. Das jeweilige Verhalten ist in Software hinterlegt, die in getrennten Domänen entsteht. Der Nachweis des erwünschten Verhaltens mit angemessener Qualität erfolgt durch umfängliche Absicherung mittels weitgehend automatisiertem Test, der jetzt die Domäne Betrieb erobert. Die kontinuierliche Veränderung des IoT-Systems im Betrieb ist dabei nur eine Herausforderung.
Im Internet der Dinge (IoT) werden grundverschiedene Domänen, wie Dinge, Cloud-Plattformen und Benutzerschnittstellen zu IoT-Systemen verknüpft. Die Verknüpfung erfolgt durch Software. Im Zentrum steht der Mensch – als Kunde und Mitarbeiter. Um Aufgabe und Stellenwert des Software Tests in IoT-Systemen einordnen zu können, ist ein Blick auf deren Wertschöpfung hilfreich.
Wertschöpfung aus Daten
Hinter IoT-Systemen stehen in der Regel datengetriebene Geschäftsmodelle, d.h. die Wertschöpfung entsteht durch Entscheidungen, die auf Basis von Daten getroffen werden.
Zur Veranschaulichung: Ich möchte jetzt von A nach B kommen und habe die folgende Auswahl:
a) mit dem Auto über die Autobahn,
b) mit dem Auto über die Landstraße oder
c) mittels öffentlichem Nahverkehr.
Auf Basis der aktuellen Daten in Tabelle 1 zu Ankunftszeiten und Kosten der möglichen Optionen kann ich mich für das beste Verhältnis von Kosten zu Nutzen entscheiden. Abhängig von der Situation kann der Nutzen unterschiedlich ausfallen, je nachdem ob ich besonders schnell oder besonders kostengünstig von A nach B gelangen möchte. Die dabei erzielte Wertschöpfung hängt wesentlich von der angemessenen Qualität der Daten und deren Verarbeitung in der Software ab, z. B. der Vorhersagequalität.

Tabelle 1: Ich möchte jetzt von A nach B
Software ist der Schlüssel
Die für die Datenverarbeitung verantwortliche Software entsteht in unterschiedlichen Domänen mit ursprünglich unterschiedlichen Grundanforderungen, Programmiersprachen und jeweiliger Historie: z.B. Firmware in Embedded Systemen, Netzwerkprotokoll Stacks, Betriebssysteme für die Cloud und für IT Plattformen, sowie Apps an den Benutzerschnittstellen. Die zentrale Querschnittsanforderung zur Aufrechterhaltung der Wertschöpfung stützt sich auf entsprechende Anforderungen an die Datensicherheit. Wertvolle Daten müssen gegen unberechtigten Zugriff oder unerlaubte Veränderung geschützt werden. Datensicherheit ist damit geschäftskritisch und erfordert für die Software – nach typischen IT-Sicherheitsregeln – spätestens nach drei Monaten ein Security Update. Dies bedeutet eine stetige Anpassung und damit Veränderung der Software in allen Domänen. Hinzu kommen kontinuierlich Änderungswünsche aufgrund von Kundenfeedback bezüglich neuer Services und Features, der Abrundung von Serviceangeboten und der Umsetzung von Kosteneinsparungen.
Abbildung 1 bietet einen groben Eindruck zur Länge der damit verbundenen Prozesskette. Ebenso ist die Bandbreite der beteiligten Domänenspezialisten und der kontinuierliche Ablauf angedeutet. Die Erfolgschancen eines IoT-Geschäftsmodells wachsen, wenn alle Beteiligten einen klaren Focus auf die Wertschöpfung haben. Dabei hilft ein stringentes Qualitätsmanagement, das für die einzelnen Domänen die angemessene Qualität definiert. Kurz gesagt: Zu hohe Qualität kostet Geld und zu geringe Qualität kostet Kunden. Voraussetzung für eine erfolgreiche Umsetzung ist eine effiziente Zusammenarbeit aller Domänenspezialisten unter gemeinsamen Zielsetzungen. Und der Test spielt dabei eine entscheidende Rolle.

Abb. 1: Schematisierte IoT-Prozesskette und das Team der beteiligten Domänspezialisten
Testen dient dem Nachweis
Der Test dient dem Nachweis des Erreichens der angemessenen Qualität und damit der Freigabe zur Verwendung in nachfolgenden Prozessschritten. Die gute Nachricht: Eine weitgehende Automatisierung des Tests lohnt sich. Das IoT-System wird kontinuierlich weiterentwickelt. Der automatisierte Test stellt – im Sinne der Regression – eine Investition dar, die durch Wartung geschützt wird. Die schlechte Nachricht: Der Test bezüglich Funktionalität ist eine wichtige Voraussetzung und stellt nur einen kleinen Teil des Gesamtumfangs dar. Abhängig von der konkreten Risikoanalyse erfordern nicht-funktionale Qualitätsmerkmale, z.B. IT-Sicherheit, Robustheit, Performanz, etc., große Beachtung und einen entsprechenden Testumfang. Die dafür notwendige Testbarkeit muss von vornherein berücksichtigt werden. Die Herausforderung: IoT-Systeme sind meist offen angelegt. Quantitativ, was die mögliche Anzahl von Komponenten betrifft und qualitativ, was die Erweiterung von Schnittstellen zur Kombination mit anderen und neuen Komponenten und Systemen angeht. Dies führt zu einer steigenden Bedeutung des Tests zum Nachweis von Kompatibilität, Interoperabilität und Skalierbarkeit. Bis zu einem gewissen Grad kann der Test im Labor und damit getrennt vom Produktivsystem, durchgeführt werden. Zum Nachweis des erwarteten Verhaltens einer veränderten Software können im Labor prinzipiell auch Ausschnitte von Echtzeit-Daten aus dem Produktivsystem verwendet werden. Allerdings stellt dies nur eine Annäherung an das tatsächliche Verhalten dar.
Test im Betrieb
Dementsprechend wichtig wird der Test im Betrieb. Und damit ist aktives Testen im Produktivsystem gemeint, das weit über das übliche Monitoring im operativen Betrieb hinausgeht. Da das Verhalten des IoT-Systems nur unvollständig vorhersehbar ist und sich ändern kann, empfiehlt sich ein umsichtiges Vorgehen. Das Risiko einer Beeinträchtigung des Systems ist dabei dem Gewinn an Kontrolle aufgrund der durch den Test nachgewiesenen Qualität gegenüberzustellen. Idealerweise erfolgt ein Abbruch des Tests wenn Messgrößen des Systems erwartete Korridore verlassen. In jedem Fall wird das System nach Ende des Tests in einem konsistenten Zustand hinterlassen. Zur Veranschaulichung seien Stresstests genannt, die zum Nachweis der geforderten Skalierbarkeit oder der Härtung gegenüber Denial-of-Service Attacken dienen. Idealerweise werden solche Tests durchgeführt, wenn möglichst wenige Kunden betroffen sind. Wird das System entgegen der Erwartung überlastet, muss es möglich sein, das System in den nominalen Zustand zu überführen ohne kundenrelevante Daten zu verlieren. Die Bereitstellung der dazu notwendigen Testschnittstellen stellen Sicherheitsrisiken bzgl. IT-Sicherheit und funktionaler Sicherheit dar und müssen von Anfang an berücksichtigt werden. Neben den rein technischen Herausforderungen sind auch rechtliche Rahmenbedingungen zu beachten. Sind z.B. beim Test private Daten betroffen, ist die explizite Zustimmung des Nutzers eine notwendige Voraussetzung.
Zusammenfassung
Zusammengefasst dient der Test im Internet der Dinge der Charakterisierung von Komponenten, Teilsystemen bis hin zum Gesamtsystem. Der Test übernimmt damit gewissermaßen die Realitätsprüfung aller Spezifikationen und Erwartungen. Je umfänglicher die Testabdeckung ist, desto präziser können Vorhersagen über das Verhalten des IoT-Systems getroffen werden. Die kontinuierliche Auswertung aller Testergebnisse bis in den Betrieb stellt ihrerseits eine datengetriebene Entscheidungsgrundlage für die Weiterentwicklung bereit. Umfängliches Testen sorgt bei IoT-Systemen für eine sichere und ununterbrochene Wertschöpfung.
Sie möchten mehr erfahren? Nehmen Sie gerne Kontakt zu mir auf.