Digital steuerbare Jalousien, smarte Waschmaschinen oder intelligente Backöfen – das Internet of Things (IoT) hält in immer mehr Haushalten Einzug. Was wir früher manuell bedienen mussten, ist inzwischen Teil eines Netzwerks, das Geräte und Objekte über das Internet miteinander verbindet. Der Nachteil: Die umfängliche Vernetzung macht die Dinge des alltäglichen Bedarfs anfälliger für Fehler. Testing spielt daher bei der Entwicklung von IoT-Geräten eine zentrale Rolle. Mit welchen Herausforderungen müssen Projektteams beim IoT Software Testing rechnen? Und welche Lösungsansätze können helfen? Dieser Blogartikel gibt einen ausführlichen Einblick.
Dass IoT-Geräte immer beliebter werden, spiegelt sich auch in den Zahlen der Branche wider: Die Europäische Kommission geht davon aus, dass 2030 mit dem Internet of Things für Verbraucher weltweit mehr als 400 Mrd. Euro eingenommen werden. 2019 waren es etwas mehr als 100 Mrd. Eine Studie der Magazine Computerwoche und CIO, dass 51 Prozent der befragten Firmen in der DACH-Region bereits IoT-Projekte umsetzen oder kurz davorstehen. Unterschiedliche Marktforschungsstudien gehen für die Branche von einer Wachstumsrate von 25 Prozent in den kommenden Jahren aus.
Das Internet of Things – oder auch Internet der Dinge – wird immer relevanter für die Wirtschaft und für die Verbraucher. Umso wichtiger ist jedoch, dass der smarte Kühlschrank, die Fitnesswatch und das elektronische Türschloss auch wirklich funktionieren. Hier liegt oftmals das Problem: Immer wieder müssen Hersteller defekte Geräte aufgrund von Softwareschäden zurückrufen. Das bedeutet nicht nur Verluste für die Unternehmen und ein Ärgernis für die betroffenen Kunden, sondern schadet auch dem Vertrauen in diese zukunftsweisende Branche. Um das zu verhindern, müssen Software-Tester einige Herausforderungen meistern.
Interoperabilität und Offenheit von Systemen
Jeder Hersteller von IoT-Geräten hat inzwischen seine eigene App. Hinzu kommen zig verschiedene Betriebssysteme von Smartphones und ebenso viele Sprachassistenten, mit denen Kunden ihr Smarthome steuern können. Es ist daher nicht verwunderlich, dass Probleme bei der Interusability zwischen all diesen Systemen auftreten können.
Um sich von der Konkurrenz abzuheben, entwerfen viele Hersteller zudem bewusst Systeme, die inkompatibel zu anderen Anbietern sind. In der Regel besitzen Kunden jedoch meist Geräte von unterschiedlichen Herstellern. Die Steuerungsapps sollten daher in der Lage sein, die Hard- und Software verschiedener Anbieter zu vereinen. Auch die Interoperabilität mit Cloudlösungen, verschiedenen Hard- und Softwareversionen sowie der manuellen Steuerbarkeit von IoT-Geräten kann zum Problem werden. Beispielsweise muss gewährleistet sein, dass ein smartes Beleuchtungssystem funktioniert, wenn Kunden es gleichzeitig per App und per manuellem Lichtschalter steuern.
In der Realität ist es kaum möglich, dass Software-Tester die schier unendliche Zahl an Kombinationsmöglichkeiten von Soft- und Hardwarelösungen auf ihre Funktionsfähigkeit überprüfen. Daher sollten sie im Vorfeld Informationen sammeln, welche Geräte und Softwareversionen die Kunden am meisten nutzen. So wissen die Tester, auf welche Kombinationsmöglichkeiten sie sich besonders konzentrieren müssen. Die Tests brauchen eine ausreichende Bandbreite und Flexibilität hinsichtlich der verschiedenen Systeme, dürfen gleichzeitig aber nicht an Detailtiefe verlieren. Hilfreich sind an dieser Stelle funktionale und plattformübergreifende Tests, die weitgehend automatisiert ablaufen. Für die restlichen Kombinationen reichen dann einfache Integrationstests.
Eine Vielzahl an Kommunikationsprotokollen
Die Geräte nutzen verschiedene Protokolle, um untereinander und mit den Servern zu kommunizieren. Zu den beliebtesten Protokollen zählen Queuing Telemetry Transport (MQTT), Extensible Messaging and Presence Protocol (XMPP) und Constrained Application Protocol (CoAP). Diese unterschiedlichen Protokolle sind notwendig, da die Geräte oftmals in ihrer Qualität und Leistungsfähigkeit variieren. Um die Interaktion mit den Geräten zu vereinfachen, legen Softwareentwickler oftmals noch zusätzlich ein Application Programming Interface (API) über das Kommunikationsprotokoll. Testing-Tools müssen daher viele verschiedene Protokolle und APIs unterstützen können.
Datensicherheit
Eine US-amerikanischen Studie aus dem Jahr 2020 zeigte, dass 57 Prozent der untersuchten IoT-Geräte anfällig für Hackerangriffe mittlerer oder starker Reichweite sind. Der Grund dafür: 98 Prozent des Datenverkehrs findet unverschlüsselt statt. Software-Tester sollten daher besonders großen Wert auf mögliche Sicherheitslücken legen, insbesondere in Bereichen, die die körperliche Unversehrtheit von Nutzern betreffen. Beispiele hierfür sind das autonome Fahren oder elektronische Schlösser. Eine mögliche Lösung wäre, Passwortrichtlinien regelmäßig zu überprüfen. Zudem sollten Tests von Grund auf neukonzipiert werden. Sicherheitschecks müsse IoT-Software aus der Perspektive von Hackern betrachten und Worst-Case-Szenarien sowie Notfallprotokolle enthalten.
Konnektivität und Datenaustausch
Auch schwankende Netzwerkbedingungen können IoT Software Testing zur Herausforderung machen. Der schnelle und hohe Datenaustausch belastet die WLAN-, Bluetooth- und Internet-Netzwerke stark. Diese sind zum Teil ohnehin bereits schwach, langsam oder unzuverlässig, insbesondere in ländlichen Regionen. Vor allem wenn sich IoT-Objekte wie Smartwatches oder autonome Fahrzeuge bewegen und das Netz wechseln, können Probleme auftauchen. Neben der schwankenden Netzqualität sollten Tester noch weitere Umweltfaktoren wie Wärme und Kälte, die Landschaft (Wald, Gebirge etc.), Innen- und Außenanwendung, In- und Ausland etc. mitdenken.
Zudem müssen System- oder Komponentenausfälle überbrückt werden können, gerade wenn das Internet of Things in sicherheitsrelevanten Bereichen wie dem Verkehr oder der kritischen Infrastruktur zum Einsatz kommt. Für Kunden sind in erster Linie die Lade- und Reaktionszeiten alltäglicher Geräte von Bedeutung: Wenn eine Webseite oder ein Download mehrere Sekunden lädt, tolerieren Kunden dies vielleicht noch. Bei einem Türschloss oder der Deckenleuchte, die manuell schnell reagieren, sieht das anders aus.
Auch hier sollten Tester ein besonderes Augenmerk auf Backup-Lösungen legen und umfassende Performancetests unter verschiedenen Netzwerkbedingungen ausführen.
Anwendungs- und Nutzerorientierung
Bei IoT-Geräten müssen die Anwendung und die Bedürfnisse von Kunden im Fokus stehen. Wenn das Internet der Dinge ehemals analoge Geräte digitalisiert, sollten Unternehmen von Anfang an ganz anders auf die Nutzungsgewohnheiten von Kunden achten als bei komplett neuen Softwarelösungen. Nutzer stellen andere Anforderungen an einen Kühlschrank als an eine Smartwatch. Klassische Zielgruppenanalysen sollen dabei helfen, bereits bei der Entwicklung von IoT-Software die Nutzersicht zu beachten. Das gilt genauso für Tests, die sensibel für Kundenbedürfnisse und -verhalten sein müssen. Ein beliebtes Beispiel stellen Sprachassistenten dar, die eine Schnittstelle zwischen vielen anderen IoT-Geräten bilden. Sowohl die Entwicklung als auch das Testing müssen berücksichtigen, dass Kunden beispielsweise mit Akzenten und Dialekten sprechen oder die gleichen Befehle unterschiedlich formulieren.
Um die langfristige Funktionsfähigkeit und Praktikabilität von IoT-Geräten zu gewährleisten, reichen klassische Integrationstests nicht aus. Es braucht realitätsnahe Laufzeit-, Feld- und Nutzungstests, die nicht nur in Simulationen stattfinden, sondern auch Kundenerfahrungen einbeziehen. Dafür eignet sich eine Kombination aus explorativen Tests in realen Umgebungen (zum Beispiel mithilfe von Crowdtestern oder Nutzertagebüchern) und flexibel automatisierten Tests, die auf den Ergebnissen der Anwendung beruhen.
IoT Software Testing steht von einigen Herausforderungen, die sich nur mit einer umfassenden Teststrategie bewältigen lassen. Zudem müssen auch die Gerätehersteller dazu beitragen, branchenübergreifende Standards zu etablieren. Solange jedoch die unternehmerische Bereitschaft fehlt, an der Interoperabilität und den Sicherheitsstandards von Geräten zu arbeiten, müssen Softwareentwickler und -tester die Brücken schlagen. Das gelingt nur, wenn sie funktional, plattformübergreifend und flexibel in Bezug auf Systeme, Protokolle und Anwendungsfälle testen.
Auch Alltagstauglichkeit und Benutzerfreundlichkeit spielen beim Internet of Things eine wichtige Rolle. Smarte Geräte sollten selbsterklärend sein und auf bekannten manuellen Mechanismen aufbauen. Um das sicher zu stellen, braucht es realitätsnahe Performance-Tests unter unterschiedlichen und schwierigen Testbedingungen. Nutzer sollten die Geräte außerdem über einen längeren Zeitraum auf Usability testen.
Die Tests müssen zudem eine hohe Bandbreite sowie Tiefe sicherstellen. Unternehmen sollten daher auf eine möglichst weitreichende Automatisierung von IoT Software Testing setzten.
Entwickeln Sie Softwarelösungen für IoT-Geräte und benötigen eine umfassende Teststrategie? Unsere ARINNAU-Qualitätsexperten beraten sie professionell und unverbindlich.
Wir freuen uns, Ihnen bei Fragen weiterhelfen zu können.