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.
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 terme 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 bugs détectés 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.
L’objet de cet atelier est aussi d’acquérir un certain nombre de bonnes pratiques et de manipuler des outils permettant de développer un code fiable et de qualité.
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 - Travaux pratiques
• 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
Public visé et Prérequis minimum :
• Responsable R&D, chef de projet, développeur
• Une connaissance du langage C est nécessaire
• Venir avec un PC (Windows de préférence) avec Virtualbox installé, capable d’exécuter les machines virtuelles 64 bits Disposer de 10 Gigas de disponibles sur ledit PC Disposer des droits administrateurs sur ledit PC