IoT – 6. Testen van het Internet of Things

Hoe test je het Internet of Things?

​Omdat ik een tester ben ga ik het uiteraard nu hebben over het testen van het Internet of Things. Dit is een van de meest essentiële onderdelen in het ontwikkelproces van het Internet of Things. Waarom? Simpelweg om alle risico’s af te dekken. Als er geen risico’s waren zouden deze ook niet getest hoeven worden.

Laten we een device eens analyseren. Op de eerste plaats is het een apparaat wat iets kan doen. Het heeft dus een functionaliteit. Op de tweede plaats heeft het een rekencapaciteit, want het gaat dingen voor ons regelen, berekenen, uitsturen en ga zo maar door. Op de derde plaats gaat het ding communiceren via WiFi, LoFi of Bluetooth, etc.. De rekeneenheid werkt op een platform. Dat communiceren gaat gepaard met behulp van allemaal andere devices. Denk daarbij aan routers etc. Dan wordt de data uitgestuurd waar een analyse op uitgevoerd kan worden. Deze data kan weergegeven worden op een webapplicatie.

Als tester kun je nu gaan testen door de verschillende onderdelen op een exploratory wijze aan te vliegen. Beter is het om er iets gestructureerder naar te kijken. Laat ik daarom eens een zijstapje maken.

Lang geleden is er door de international standardisation organization een model bedacht voor het opzetten en analyseren van dataverbindingen tussen twee communicerende partijen (pc’s). Dit model heet het OSI-model. Dit OSI model bestaat uit zeven lagen, waarbij laag zeven de meest visuele is voor de gebruiker. Laag zeven is de Applicatie laag. Dit is daadwerkelijk de applicatie waarmee een gebruiker werkt. Denk daarbij aan een webbrowser met een webapplicatie. De zesde laag is de Presentatielaag. Dat is de laag waarop de applicatie gebouwd is. Denk daarbij aan het Windows of Mac of Linux systeem. De vijfde laag is de Sessielaag. Om uberhaupt iets te kunnen versturen moet een sessie opgezet worden met de ‘andere kant’. Er wordt door de ene pc gezegd: ‘hallo, ik ben pc abc’. De andere pc zegt: ‘Leuk dat je er bent, ik heet xyz. Zullen we kletsen’. Daarna zegt de andere pc: ‘Goed idee’. Vervolgens komen we bij de vierde laag, namelijk de Transportlaag. De transportlaag zorgt dat jouw boodschap in pakketjes wordt opgedeeld, zodat het later over de lijn verstuurd kan worden. Hoe dat gaat is in het geval van het internet via TCP: Transfer Control Protocol. Het verdelen van de berichten in een bepaald soort pakketjes. De derde laag is de Netwerklaag. Deze netwerklaag zorgt ervoor dat de pc of het device bekend is op het netwerk. Dit is de laag waar het IP adres wordt toegekend. Zodoende ontstaat dus TCP/IP. Denk dus aan Routers in het geval van de Netwerklaag. De tweede laag is de Datalinklaag. Deze laag zorgt ervoor dat er gecommuniceerd kan worden binnen een netwerk. Dat devices samen communiceren. Dit gebeurt samen met de netwerklaag. Bij de datalinklaag moet je denken aan hubs en switches. Deze werken samen met de router. En dan komen we op de eerste laag. De Fysieke laag. Dit zijn de fysieke kabels die door de muur zijn getrokken.

Deze zijstap is belangrijk. Waarom? Een Internet of Things device maakt in principe gebruik van alle zeven lagen van het OSI model. Laten we even een eenvoudig voorbeeld nemen, een lichtknop. De gebruiker wil namelijk gebruik maken van de functionaliteit van het device. De Applicatielaag zorgt dat ik daadwerkelijk de knop kan indrukken. Klik aan en klik uit. Een klein stukje software registreert vervolgens een Aan of een Uit. De Presentatielaag is bijvoorbeeld het Arduino operating systeem waarop de software draait. Software zonder operating systeem is even goed als een vel papier met letters. Vanaf dat moment wordt er een sessie opgebouwd met een ander device aan de andere kant, namelijk het lampje. “Hallo ik ben lichtknop.”, “Hallo, ik ben lampje, zullen we samenwerken?”, “Prima idee!”. De transportlaag zal een pakketje versturen waarin de informatie staat om aan te gaan. De Netwerklaag zal zowel de lichtknop en de lamp een IP adres moeten toekennen. Anders zijn de apparaten niet gekend op het netwerk en kunnen ze dus niet communiceren, waardoor er geen functionaliteit te zien is. De Datalinklaag zal in dit geval niet een switch zijn. Er zijn WiFi verbindingen. De Netwerklaag, de Datalinklaag en de Fysieke laag worden zo gecombineerd. Het kan uiteraar ook zijn dat de lichtknop via een kabel daadwerkelijk aan een switch hangt bij een essentieel device als een lichtknop. Dan is de datalinklaag wel hard aanwezig. En vervolgens is er de fysieke laag. Kabels naar de switches en routers, Wifi verbindingen en de stroom van het netwerk.

Om de Internet of Things testen serieus aan te pakken zul je dus serieus moeten gaan kijken naar alle zeven lagen van het OSI model en niet alleen naar de Presentatielaag en fysiek als je een kabel uittrekt. Wat gebeurt er tussen die lagen. Binnen die vijf lagen kan er namelijk heel veel mis gaan. Er zijn veel afhankelijkheden. Het verkrijgen van een IP adres, het wijzigen van een IP adres, versleutelen van data, hoeveelheid data en ga maar door.

Het testen van het Internet of Things komt dus neer op het toepassen en analyseren van het OSI model op dat device. Daarnaast moet er ook eens goed gekeken worden hoe een device vervaardigd is. Er zijn componenten gebruikt die samengesteld zijn. Hoe is dat gedaan en hoe is gecontroleerd of dat met een hoge kwaliteit gedaan is. En hoe is gecontroleerd of het device ook daadwerkelijk functioneert? En nog eerder in de lifecycle. Hoe zijn de verschillende componenten gefabriceerd en op kwaliteit gecontroleerd? Wat is het stroomverbruik? Hoe vaak moet er aangegeven worden dat het device nog op het netwerk bestaat?

Het hele QA traject moet bekeken worden om te controleren hoe snel onderdelen stuk kunnen gaan. Als een apparaat duur is maar daarna altijd feilloos werkt, dan is dat veel prettiger dan dat een apparaat elke twee weken vervangen moet worden, al kost het bijna niets. Vervangkosten moeten ook berekend worden. En dan spreken we nog niet over de maatschappelijke verantwoording. Vele devices worden vervangen, weggegooid etc. Wat is de levenscyclus en de impact op het milieu?

Leuk he dat testen. Het testen van het Internet of Things heeft iets meer voeten in aarde dan je zo in eerste instantie zou denken. Toch net iets uitgebreider dan enkel het klikken op een lichtknop. Ja, dat testvak gaat nog eens groot worden.