IoTMap: Zo test je IoT-toepassingen
De 5 stappen van de IoTMap-testaanpak
1. Kwaliteitsattributen
In de eerste stap bepaal je welke kwaliteitsattributen zoals compatibiliteit, gebruikersvriendelijkheid, veiligheid en interoperabiliteit van belang zijn. Welke functionaliteiten horen daarbij en welke IoT-bouwblokken? Bij de IoT-bouwblokken wordt bepaald wat wel of niet geautomatiseerd wordt getest, met welke testhulpmiddelen (bijvoorbeeld crowdtesting) en welke tools worden ingezet om end-to-end te testen. Het TMap-design helpt bij het opzetten daarvan.
2. Ontwikkelen van testmethoden
IoTmap levert een aantal methoden voor het ontwikkelen van de tests. Nieuw is de inzet van kunstmatige intelligentie en machine learning, bijvoorbeeld bij de evolutionaire methode van testontwikkeling, ook wel behaviour driven development of test driven development.
3.Testomgeving
Als derde element is de (test)omgeving erg belangrijk. Hoe ver wil je gaan in het maken en testen van connecties tussen ‘things’? Dat connected cars met elkaar moeten communiceren, ligt voor de hand. Maar mag zo’n auto verbinding maken met een koelkast? Dat kan handig zijn, maar er kunnen ook onbedoelde en ongewenste interacties plaatsvinden. Het is dus belangrijk na te denken over de schillen rondom het IoT-ding, in dit geval:
- De contacten onderling tussen auto’s;
- Contacten met de database van de leverancier;
- Contacten met het slimme huis, enz.
Hoe verder je van binnen naar buiten door de schillen gaat hoe groter het aantal combinaties dat moet worden getest. Dat levert uiteindelijk een onmogelijk aantal op. Dus moeten er keuzes worden gemaakt. De consequenties van die keuzes, bijvoorbeeld voor beveiliging, moeten in kaart worden gebracht. Het indelen in die schillen helpt de bewustwording en moet dus zo vroeg mogelijk in het ontwikkeltraject plaatsvinden.
4. Expertises bijeenbrengen
Wie heb ik wanneer nodig? Ook dit moet vroeg gebeuren om de bewustwording te creëren en de juiste mensen op het juiste moment in te kunnen schakelen. Niet iedereen is op elk moment nodig. De teams kunnen dus wisselend van samenstelling zijn in de tijd. Er moet wel iemand zijn die de integratie en afstemming in de gaten houdt.
5. Het testen in lagen
Functioneel moeten de tests binnen de lagen worden uitgevoerd in agile teams. Uiteindelijk moet de toepassing in zijn geheel worden getest door een integratieteam.