ATELIER : Fiabiliser et tester son code embarqué
Pour connaitre les prochaines sessions de formation en Logiciel embarque et programmation cliquez ici.
L’objet de cet atelier, est de présenter un ensemble de méthodes et d’outils permettant de capturer un maximum d’erreurs et de fiabiliser vos développements logiciels. Pour ce faire, la formation alternera présentations théoriques et travaux pratiques où les participants pourront mettre en œuvre immédiatement les concepts abordés sur des exemple concrets.
Mettre sur le marché un produit fiable et de qualité est une nécessité, tant du point de vue de l’image de marque de l’entreprise que de sa performance et de sa compétitivité.
Si vos équipements sont utilisés dans des applications où la qualité de service est importante, vos équipes de développement logiciel doivent maitriser un certain nombre de bonnes pratiques et d’outils pour assurer la qualité du code embarqué.
Les défauts logiciels détectés tardivement, lors de la phase de production, ou pire, après livraison chez le client, ont un coût extrêmement important pour l’entreprise. C’est à la fois un coût lié à la correction du problème mais aussi un coût en termes de détérioration de l’image d’entreprise.
Ces bugs sont souvent mal identifiés par le client (utilisateurs non techniques) et peuvent générer d’importants problèmes de sécurité dans le logiciel. Chaque bug détecté tardivement nécessite une reprise du logiciel pouvant aller jusqu’à la conception et nécessitant de parcourir à nouveau tout le cycle de codage, test unitaire, test d’intégration et de validation. Enfin s’ils arrivent en production, ou chez le client, c’est probablement lié à un défaut intermittent, avec faible occurrence donc difficile à reproduire et à corriger.
Pour toutes ces raisons, il convient de mettre en place des méthodologies, des outils et des pratiques permettant de fiabiliser au maximum, et au plus tôt, les développements logiciels dans vos produits.
PROGRAMME
JOUR 1
• Introduction et exemples de scénarios types, introduisant la problématique d’un code de qualité, testé et documenté
• Norme de codage
• Principe et exemples : Linux coding style, MISRA, google coding style
• Outils de gestion de configuration
• Principes et exemples : CVS, SVN, GiT
• Gestion de tickets de modification / défauts. Principe, Bugzilla, Trac.
• Interaction entre TRAC et SVN pour la revue de code
• Les tests : Principe, test de non régression, automatisation des tests, testabilité
• Documentation de code avec Doxygen
JOUR 2
• Détection automatique d’erreur : Les outils de vérification statique
• Les warning du compilateur une aide précieuse, splint, cppcheck, Vera++
• Les outils dynamiques
• Principe et mise en œuvre des outils Valgrind
• Les outils propriétaires
• Principe et mise en œuvre des outils Purify & Sonar
• Utilisation SVN basique
• Navigation dans le code source avec SVN et TRAC
• Cppcheck
• Valgrind
• Etude de cas sur l’automatisation de tests
• Rendre une application testable
JOUR 3 : Journée dédiée au test
• Introduction
• Le test en tant qu’outil de vérification
Idées reçues et exemples
Notion de testabilité d’un logiciel ou d’un module logiciel
Différents types de tests
* Tests unitaires : Définition et mise en pratique sur outil de test unitaire
* Tests d’intégration : Définition et stratégie
* Tests de validation : définition et mise en œuvre
* Tests d’endurance et de robustesse
• Elaboration du plan de test logiciel
• Les tests dans le plan qualité
Impact de la testabilité sur les exigences fonctionnelles
Impact de la testabilité sur la qualité du codage
• Cas pratique avec un projet école avec du code legacy
• Cas pratique avec prise en compte des tests dès les phases de conception
Elaboration du plan de test
Mise en évidence du gain qualité à écrire du code testable
Mise en œuvre des outils de tests, tests automatiques
• Les outils connexes
Le simulateur
Le test unitaire et le driver
Utilisation d’un débogueur en mode automatique
TRAVAUX PRATIQUES : Des exercices pratiques seront proposés tout au long de la formation pour conforter la compréhension des principes théoriques par la prise en main de l’outil et sensibiliser les participants à la démarche à suivre et aux questions que l’on est amené à se poser fréquemment.
INFORMATIONS PRATIQUES
Public visé et prérequis : PME, start-ups ou bureaux d’études du secteur électronique au sens large qui envisagent de monter en compétence dans la maîtrise des outils pour le développement logiciel. Notions de C/C++ et POO.
Date et lieu :
26 au 28 juin 2019 de 09h00 à 12h30 et de 13h30 à 17h00
LAAS - 7 Av. du Colonel Roche - 31000 TOULOUSE