En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies pour vous proposer des contenus et services adaptés à vos centres d’intérêts. En savoir plus et gérer ces paramètres. OK X
 
 

 

 

Techniques

Combien de bogues manquez-vous ?

Publication: Novembre 2019

Partagez sur
 
L’informaticien Edsger Dijkstra a un jour déclaré : « Les tests de programme permettent de révéler la présence de bogues, mais jamais d’en montrer l’absence. »...
 

Bien que les développeurs testent leurs logiciels autant que faire se peut, ils ne sont tout simplement pas en mesure de prouver qu’un système ne comporte pas de bogues. De plus il est très courant d’omettre des bogues - Jack Ganssle écrit qu’environ 95 % de tous les bogues introduits lors du développement de logiciels embarqués sont détectés, ce qui signifie que 5% passent inaperçus et restent dans le microprogramme de production. Et puisque même les grands programmeurs (les 1% meilleurs) introduisent environ 11 défauts par KLOC (1 000 lignes de code), les 5% de bogues oubliés représentent en fait un nombre conséquent.

Imaginons une application de 100 KLOC qui comporterait 20 défauts par KLOC. En l’occurrence, en manquant 5% des bogues, vous vous retrouvez avec 100 bogues dans le produit que vous livrez. Certains sont peut-être inoffensifs ou très peu susceptibles de causer des problèmes, mais cela n’est nullement certain. Votre système peut sembler fonctionner correctement, car les bogues que vous avez oubliés sont probablement liés à des scénarios inattendus ou à des cas critiques. Mais une fois le système exposé à de nombreux cas d’utilisation réels, ces bogues peuvent causer toutes sortes de problèmes. Un exemple célèbre est la mission Mars PathFinder de la NASA, qui a presque échoué en raison d’un problème logiciel. En l’occurrence, le problème a en fait été analysé et résolu grâce aux diagnostics et à la possibilité de mise à jour à distance.

Une fois qu’un produit est déployé, il peut être extrêmement difficile d’obtenir des informations utiles sur les problèmes réellement rencontrés. En pratique, les équipes de développement s’appuient sur leurs clients pour leur signaler tout problème. Or, ceux-ci ne se sont pas engagés à accepter cette responsabilité et par conséquent, l’on ne peut pas s’attendre à ce qu’ils l’assument. Cependant, avec un appareil IoT connecté, les développeurs peuvent utiliser un nouveau service, le DFM (Device Firmware Monitor), pour signaler les problèmes rencontrés pendant les tests ou sur le terrain. Regardons ce qu’est le DFM et comment il peut aider les développeurs.

Qu’est-ce que le DFM ?

Le Device Firmware Monitor permet aux équipes de développement de prendre conscience des problèmes liés aux appareils déployés et de récupérer les données de trace, ce qui leur permet d’analyser et d’identifier la cause première des problèmes en question. Une fois la cause identifiée, les équipes peuvent rapidement proposer un correctif du logiciel et corriger ce dernier par des mises à jour en direct avant que la plupart des utilisateurs ne soient affectés par le problème.

Le DFM peut être considéré comme un « enregistreur de vol » de logiciel qui exploite la connectivité en cloud. Une petite bibliothèque d’enregistreurs de trace est installée dans la base de code et enregistre le comportement du logiciel dans une zone tampon circulaire de la RAM, en fonction de l’instrumentation de code dans le noyau RTOS et d’autres API pertinentes. Lorsque le système se comporte mal, un message d’erreur et les données de trace qui ont été enregistrées en arrière-plan peuvent ensuite être transmis (directement ou après un redémarrage) via une interface de communication telle que Wi-Fi ou Ethernet à un service en cloud, qui stocke un rapport et informe le développeur. Ce dernier peut ensuite accéder à ces données de suivi via Tracealyzer pour examiner ce qui dans le système était à l’origine de l’erreur, et reproduire ces événements sur le banc d’essai afin que le problème puisse être rapidement résolu. Un aperçu général de la manière dont cela fonctionne est illustré dans l’image ci-dessous :

Quels types de bogues le DFM peut-il détecter ?

Le DFM peut détecter un grand nombre de problèmes potentiels dans le microprogramme de l’appareil. Tout d’abord, les développeurs peuvent configurer des alertes pour des problèmes classiques tels que des assertions ayant échoué ou lorsqu’il y a génération d’un gestionnaire d’erreurs. Ils peuvent également configurer des déclencheurs personnalisés capables de détecter des problèmes tels que les délais d’attente, le dépassement de capacité de la pile ou d’autres erreurs pouvant survenir dans un système embarqué et temps réel. Les développeurs peuvent personnaliser le micrologiciel pour détecter et signaler uniquement ce qu’ils considèrent comme de véritables problèmes. Cela peut également inclure des avertissements, par exemple une utilisation de la pile supérieure à 95%.

Lorsqu’un problème est détecté, le message d’erreur et les données de trace sont téléchargés vers le service de cloud computing, qui les stocke et informe le développeur du problème. L’un des avantages du DFM est que, si une équipe compte 1 000 appareils sur le terrain, tous signalant le même bogue, elle n’en est pas informée 1 000 fois ! Au lieu de cela, elle en est avertie une fois et informée que le problème a jusqu’à présent été détecté 1 000 fois. Ce classement automatique permet d’éviter que la boîte de réception du développeur ne soit surchargée par plusieurs appareils signalant le même bogue. Cela garantit également que chaque problème unique est remarqué, même si un seul rapport sur ce problème figure dans un grand nombre d’autres rapports.

Conclusions

Dans notre monde connecté, il n’est plus nécessaire de s’appuyer sur le client final pour signaler qu’un appareil ne fonctionne pas comme prévu sur le terrain. À l’aide du Device Firmware Monitor, les équipes de développement peuvent être alertées dès qu’un problème est détecté, sur le terrain ou sur le banc d’essai, et disposer de diagnostics significatifs qui leur permettent de résoudre rapidement le bogue. Cette capacité n’améliorera pas seulement la qualité des logiciels embarqués, mais permettra également aux premiers utilisateurs de devancer leurs concurrents. Dans le prochain article, nous examinerons le DFM de manière approfondie et examinerons un cas d’utilisation possible sur un appareil.

Suivez MtoM Mag sur le Web

 

Newsletter

Inscrivez-vous a la newsletter d'MtoM Mag pour recevoir, régulièrement, des nouvelles du site par courrier électronique.

Email: