Tests automatisés avec 1913 nœuds en réseau sans fil

Actualités de de l'Intelligence Artificielle - Machine Learning - Objets connectés

Tests automatisés avec 1913 nœuds en réseau sans fil


Une plate-forme Internet des objets (IoT) est un logiciel incroyablement complexe, car il doit résoudre un certain nombre de problèmes difficiles:

  • Sans fil: la communication radio est fragile et doit être conforme à des réglementations strictes
  • Grande échelle: les réseaux peuvent avoir des centaines à des milliers d’appareils
  • Batterie faible: les appareils fonctionnent avec de minuscules piles et doivent être extrêmement économes en énergie
  • L’intégration: tout doit fonctionner ensemble, du minuscule BRAS Microcontrôleurs sans fil Cortex aux backends de base de données pilotés par NodeJS

Et tout cela doit fonctionner, tout le temps.

Chez Thingsquare, comment nous assurons-nous que notre plateforme IoT continue de fonctionner?

La réponse est des tests automatisés: chaque modification que nous apportons au code doit passer par des tests automatisés rigoureux avant de l’accepter dans la base de code.

Notre cadre de test automatisé est intégré à notre flux de travail git: lorsque nous faisons une pull request, cela déclenche un ensemble de tests qui exercent l’ensemble du système.

Nous exécutons 27 essais parallèles pour chaque modification. Chaque essai se concentre sur un aspect différent du système. Les tests les plus basiques garantissent que le code se compile sans avertissement. Certains testent la logique de la base de données principale. Certains testent le code de l’appareil, par exemple en s’assurant que le mécanisme de mise à jour du micrologiciel est toujours stable à 100%. D’autres testent la conformité réglementaire des protocoles sans fil.

Chaque test dure entre quelques minutes et jusqu’à une heure. Une modification est considérée comme valide uniquement si elle réussit tous les tests. La sortie d’un essai de fonctionnement peut être vue ci-dessous:





Sortie d’un test de régression typique.

Le simulateur de réseau sans fil

La sauce secrète qui nous permet d’exécuter des tests automatisés est notre simulateur de réseau sans fil.

Le simulateur est capable de simuler à la fois les conditions sans fil et les nœuds qui exploitent le réseau. Nous pouvons émuler le code fonctionnant sur chaque appareil à un niveau si bas que nous pouvons voir la consommation d’énergie des paquets sans fil individuels. Nous pouvons également simuler le code à un niveau supérieur qui nous permet d’exécuter des simulations avec des centaines de nœuds en peu de temps.





Un réseau sans fil simulé utilisé dans les tests automatisés.

Le simulateur utilise Javascript pour configurer des cas de test et vérifier que la sortie des tests est ce qu’elle est censée être.

Au total, un test complet dans la version actuelle de la plate-forme Thingsquare utilise 1913 nœuds simulés.

Consommation d’énergie

La consommation électrique des appareils du système est testée de deux manières:

Les chiffres du simulateur et des appareils sont tous deux comparés à des objectifs prédéfinis qu’ils doivent atteindre. Ces objectifs sont fixés de manière à pouvoir fonctionner pendant des années avec des piles bouton.

Réglementations sans fil

Le spectre sans fil sur la bande sous-GHz est réglementé par les autorités du monde entier, telles que FCC aux États-Unis et ETSI en Europe. Les produits qui utilisent la bande sub-GHz doivent suivre ces réglementations.

La plateforme Thingsquare IoT est conçue pour se conformer à ces réglementations et les tests automatisés garantissent que les réglementations sont toujours respectées.

Pour vérifier que les réglementations sont respectées, le simulateur enregistre le temps que chaque nœud simulé passe sur leurs fréquences. Pour se conformer à la fois FCC et les réglementations ETSI, les appareils ne peuvent rester sur un canal individuel pendant plus de 400 ms avant de passer à une fréquence différente.

Performance

Le simulateur vérifie que les performances du système sont toujours conformes aux objectifs prédéfinis. Par exemple, un réseau de 100 sauts devrait être capable de s’installer et d’envoyer un nombre spécifié de messages sans problème.

Le processus de configuration des nouveaux réseaux est également testé pour s’assurer qu’il ne prend pas plus de temps que souhaité.

Mises à jour du micrologiciel en direct

L’une des fonctionnalités les plus cruciales du système est la télécommande en direct (OTA) mises à jour du firmware. Sans mises à jour du micrologiciel, il est impossible de modifier la fonctionnalité des appareils déployés.

Nous testons les mises à jour du firmware dans deux scénarios:

Pour les deux mécanismes, les périphériques doivent recevoir correctement tous les binaires du micrologiciel avec lesquels ils doivent être mis à jour. Ceci est vérifié en utilisant le mécanisme standard par lequel l’exactitude d’un binaire est vérifiée: via un mécanisme de cryptage à clé publique (PKCS #1).

Après avoir reçu le nouveau binaire sur le réseau, le nouveau binaire est démarré pour s’assurer qu’il fonctionne.

Conclusions

Une plate-forme Internet des objets (IoT) est un logiciel complexe. Nous devons nous assurer que la plate-forme IoT Thingsquare fonctionne et fonctionne toujours comme prévu. Nous utilisons des tests automatisés pour chaque modification que nous apportons au système.