Ils sont souvent mal identifiés par le client (utilisateurs non techniques) et ils peuvent faire apparaître des problèmes de sécurité dans le logiciel. S’ils arrivent tard dans le cycle en V, le fait de livrer à nouveau un logiciel corrigé oblige à re-parcourir toutes les phases montantes de validation. Enfin s’ils arrivent en production, il y a de grandes chances que ces défauts soient " intermittents " avec faible occurrence et seront très ardus à reproduire en environnements maîtrisés.
Pour toutes ces raisons, plus ces défauts sont trouvés tôt dans la chaîne de conception logicielle, moins leur correction coûtera cher et plus l’impact métier sera minime.
L’objet de cette formation, est de présenter un ensemble d’outils d’analyse de code source, permettant de capturer un maximum d’erreurs de conception pour certains avant même la compilation proprement dite.
9h-18h : Jeudi 2 mars
Introduction : 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 : Principes, 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 du code
9h-18h : Vendredi 3 mars
Détection automatique d’erreur : Les outils statiques, les warnings du compilateur une aide précieuse, splint, cppcheck, Vera
Les outils dynamiques : Principe et mise en oeuvre des outils, Valgrind
Les outils propriétaires : Principe et mise en oeuvre des outils Purify & Sonar
Travaux pratiques
Utilisation SVN basique
Navigation dans le code source avec SVN et TRAC
CppCheck
Valgrind
Réalisation de tests automatiques de non régression, Mise en oeuvre avec Unity et CMock.
PME, startups ou bureaux d’études du secteur électronique au sens large qui envisagent de développer une application smartphone/tablette ou qui souhaitent se perfectionner. Une connaissance du langage C est nécessaire pour une partie du cours.