Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Test rentable des appareils IoT avec des laboratoires virtuels

Par Parasoft

18 août 2017

5  min lire

Même le plus petit appareil IoT vit dans un environnement complexe, qui peut ne pas être entièrement compris au moment du développement. En fait, nous avons déjà vu les problèmes de sécurité liés aux appareils connectés à Internet pour la première fois. Dans un précédent poster, nous avons discuté des avantages de l'orientation des services pour la conception, le développement et les tests. Dans cet article, nous allons faire passer les tests basés sur les services et la virtualisation des services à l'étape suivante: les laboratoires virtuels. Construire un environnement de laboratoire de test physique réaliste est difficile, et même une fois terminé, il devient le principal goulot d'étranglement dans les tests de système. Les laboratoires virtuels suppriment ce goulot d'étranglement tout en offrant de nouveaux avantages aux tests d'appareils IoT basés sur les services.

De nombreux appareils IoT ne sont pas prêts pour Primetime

Une  étude ont constaté que 80% des applications IoT sont pas testé pour les failles de sécurité. Le groupe Barr a constaté que 56% des développeurs d'appareils embarqués ne révisez pas le code source pour les vulnérabilités de sécurité et 37% n'ont pas de norme de codage écrite. Ce ne sont pas des statistiques encourageantes et il est clair que les fabricants d'appareils IoT doivent prendre la qualité, la sûreté et la sécurité plus au sérieux. L'automatisation des tests est une étape importante pour s'assurer que les tests sont effectués de manière plus rigoureuse, cohérente et approfondie. Les tests, en particulier pour les vulnérabilités de sécurité, sont souvent considérés comme trop coûteux et complexes, et sont donc précipités ou négligés. Mais c'est une erreur coûteuse de laisser vos clients (et attaquants) tester la sécurité de votre appareil IoT pour vous.

Les ingrédients du laboratoire virtuel

Un vrai laboratoire de test nécessite la manifestation physique la plus proche de l'environnement dans lequel un appareil IoT est prévu de fonctionner, mais même dans le laboratoire le plus sophistiqué, il est difficile de s'adapter à un environnement réaliste. Un laboratoire virtuel résout ce problème. Les laboratoires virtuels évoluent au-delà du besoin de dépendances matérielles difficiles à trouver (ou peut-être inexistantes). Utilisez la virtualisation de services sophistiquée avec d'autres outils d'automatisation de test clés:

  • Virtualisation des services simule toutes les dépendances nécessaires à l'appareil testé afin d'effectuer des tests complets du système. Cela inclut toutes les connexions et tous les protocoles utilisés par l'appareil avec des réponses réalistes à la communication. Par exemple, la virtualisation de services peut simuler un serveur principal d'entreprise avec lequel un appareil IoT communique pour fournir des lectures de capteur périodiques. De même, la virtualisation peut contrôler l'appareil IoT de manière réaliste.
  • Test de service et d'API fournir un moyen de piloter l'appareil testé de manière à garantir que les services qu'il fournit (et les API fournies) fonctionnent parfaitement. Ces tests peuvent être manipulés via la plate-forme d'automatisation pour effectuer des tests de performance et de sécurité selon les besoins.
  • Surveillance du temps d'exécution détecte les erreurs en temps réel sur l'appareil testé et capture les informations de trace importantes. Par exemple, les fuites de mémoire, qui peuvent rester non détectées dans un produit fini, peuvent être détectées et résolues rapidement et à moindre coût.
  • Gestion et analyse du laboratoire de test fournir le contrôle global du ou des laboratoires virtuels. Une fois virtualisée, toute la configuration du laboratoire peut être répliquée selon les besoins et les tests peuvent être automatisés et répétés. L'analyse fournit le résumé nécessaire des activités et des résultats.

L'écosystème IoT de l'informatique de périphérie est illustré ci-dessous dans la figure 1, illustrant un environnement typique dans lequel des appareils IoT intégrés sont déployés. Les capteurs et les appareils de contrôle communiquent des informations à Edge, qui est une série d'appareils ou d'applications qui peuvent recevoir des informations et utiliser la logique pour communiquer avec un appareil ou jusqu'au cloud. Le cloud a alors une logique de plus haut niveau qui lui permet d'agir sur ces informations. Le cloud est un ensemble de services - microservices, connexions à des bases de données, logique supplémentaire ou services tiers - un réseau complexe de blocs fonctionnels, illustré ci-dessous à droite.

 Figure 1: Un écosystème IoT typique dans lequel les appareils embarqués seraient déployés

Lorsqu'il est temps de tester dans l'écosystème IoT, des tests sont nécessaires à plusieurs niveaux. Pour tester la nouvelle fonctionnalité introduite dans la passerelle, par exemple, la validation que la passerelle peut recevoir des informations des capteurs et peut communiquer cela de la manière dont vous avez construit la logique métier.

Afin de valider toute cette complexité, Parasoft Virtualiser (qui simule les dépendances requises) et Parasoft SOAtest (qui pilote les tests) sont utilisés pour simuler ces entrées. Ces outils fournissent des simulations d'appels réalistes depuis les appareils sur le réseau (qu'il s'agisse de protocoles tels que REST / HTTP ou de protocoles IoT populaires tels que CoAP, XMPP ou MQTT), et testent que l'appareil testé (la passerelle dans cet exemple) communique de manière appropriée avec les services cloud, en validant les réponses qui reviennent de SOAtest. La figure 2 ci-dessous montre un exemple de la façon dont un environnement de laboratoire virtuel peut être créé pour les périphériques de périphérie testés.

S'il existe des moyens externes de communiquer des informations à cette passerelle, ces appels peuvent également être simulés. Parasoft Virtualize est conçu pour stabiliser l'environnement de test, pour créer des réponses prévisibles aux demandes qui exploitent les données de test de SOAtest, en testant entièrement la passerelle et les services. 

Enfin, les services de haut niveau peuvent communiquer vers la périphérie, puis vers d'autres capteurs et acteurs externes, et il peut être important de savoir que le flux de vos entrées se fraye un chemin à travers l'environnement vers le back-end. systèmes. Parasoft Virtualize est utilisé pour simuler la réception de ces appels jusqu'au bord (jusqu'aux appareils IoT), puis relayer ces informations à SOAtest pour confirmer que l'appel a effectué l'aller-retour et s'est comporté comme prévu dans l'écosystème IoT. . La combinaison de Parasoft Virtualize et SOAtest offre un contrôle total pour tester l'ensemble de l'environnement, même dans les complexités d'un écosystème IoT.

Figure 2: Le rôle des outils Virtualize et SOAtest de Parasoft créent un environnement de laboratoire virtuel pour un périphérique de périphérie en cours de test

Améliorez la qualité et la sécurité tout en réduisant le temps, les coûts et les risques

Les environnements de test normaux sont chers, probablement plus que ce que la plupart des responsables de développement prévoient. Une étude de Recherche voke a constaté que l'investissement moyen dans un laboratoire de pré-production était de 12 millions de dollars. En termes de temps, le temps moyen pour approvisionner le laboratoire était de 18 jours et 12 à 14 jours supplémentaires ont été consacrés à la configuration. Ces laboratoires prennent beaucoup de temps et d'argent à mettre en place, et même après cela, ils agissent comme un goulot d'étranglement pour les tests en raison d'un accès limité. En outre, les coûts opérationnels quotidiens des laboratoires physiques sont importants. Dans la plupart des cas, la duplication d'un laboratoire physique pour augmenter le débit des tests est d'un coût prohibitif.

In un autre post, nous avons résumé les avantages de la virtualisation des services à l'amélioration de l'accès aux appareils de test avec un meilleur contrôle du comportement des dépendances virtualisées, ce qui réduit les coûts et augmente la vitesse des tests. De la même manière, décomposons les avantages du laboratoire de test virtuel IoT:

  • Amélioration de la qualité grâce à des tests meilleurs et plus complets
    Les tests basés sur les services garantissent que les cas d'utilisation clés sont exercés et perfectionnés. Les tests de performance automatisés garantissent la stabilité et la fiabilité sous forte charge. De plus, la surveillance d'exécution garantit que les bogues difficiles à trouver sont détectés et tracés.
  • Sécurité améliorée grâce à des tests de pénétration automatisés qui simulent des données mal formées
    Les tests de charge peuvent simuler des attaques par déni de service et la surveillance d'exécution peut détecter des vulnérabilités de sécurité. La répétabilité des tests garantit que chaque itération, patch ou version est testé exactement de la même manière. De plus, le développement et la manipulation des tests (c'est-à-dire l'amélioration et la création de nouveaux tests) sont simplifiés.
  • Réduction du temps de test, des risques et des coûts en supprimant le besoin de dépendances coûteuses requises pour des tests de systèmes complets
    L'automatisation offre une répétabilité et une cohérence que les tests manuels ne peuvent pas, tout en fournissant des tests meilleurs et plus complets. Les laboratoires virtuels réduisent considérablement le temps de provisionnement nécessaire pour les configurations de laboratoire physique, ce qui a un impact sur la durée totale des tests.

Conclusion

Compte tenu de l'état du développement des appareils IoT, des modifications doivent être apportées aux processus de développement et de test. L'automatisation des tests est une approche éprouvée pour réduire les coûts et les risques. La prochaine grande étape dans l'amélioration de la qualité et de la sécurité des appareils IoT consiste à utiliser des laboratoires virtuels qui combinent la virtualisation des services, les tests basés sur les services, la gestion des laboratoires virtuels et la surveillance de l'exécution. Cela réduit considérablement les coûts d'approvisionnement et de configuration tout en augmentant considérablement la qualité des tests effectués.  

Par Parasoft

Les outils de test de logiciels automatisés de pointe de Parasoft prennent en charge l'ensemble du processus de développement logiciel, depuis le moment où le développeur écrit la première ligne de code jusqu'aux tests unitaires et fonctionnels, jusqu'aux tests de performance et de sécurité, en exploitant des environnements de test simulés en cours de route.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.