Intermédiaire 6 modules · 8 h 45 Certificat

Tester et fiabiliser un logiciel robotique

Ce qu'on attend d'un développeur robotique en équipe, sur le code du robot de livraison : versionner avec Git, tester un nœud seul, tester plusieurs nœuds ensemble, rejouer des données enregistrées pour reproduire un bug, faire tourner tout cela à chaque changement en intégration continue, et garder un code propre, relu en équipe. Le parcours s'ouvre module par module : Git d'abord, puis les tests unitaires, les tests d'intégration, le rejeu de données, l'intégration continue, la qualité du code et la revue.

Fil rouge : Tester un nœud seul, puis tout le robot, avec des données rejouées.

Notion de génie logiciel : Tests, qualité du code, intégration continue.

Gitpytestlaunch_testingros2 bagrosbag2_pyGitHub Actionsgtestament_lint

Tout se passe dans le navigateur

Cours, terminal, éditeur et simulateur : rien à installer.

Commencer le module 1

Accès au parcours : le prix et le fonctionnement sont sur la page Tarifs

Programme

  1. Travailler en équipe
  2. 1
    Versionner son code avec Git 1 h 15 · Le geste quotidien de l'ingénieur logiciel : enregistrer son code en commits, lire l'historique pour retrouver ce qui a cassé, corriger sur une branche, fusionner, puis travailler à plusieurs avec push, pull request et revue de code.
  3. Tester le code
  4. 2
    Tester son code avec pytest 1 h 30 · Écrire des tests unitaires qui attrapent vraiment les bugs : séparer le calcul du nœud ROS, tester les cas nominaux et les limites avec pytest, paramétrer, lancer les tests avec colcon, et mesurer ses tests avec des mutants.
  5. 3
    Tester un nœud avec launch_testing 1 h 30 · Écrire des tests d'intégration qui lancent le vrai nœud ROS 2 : launch_testing, tests actifs et tests après l'arrêt, paramètres de lancement, attente des messages, codes de sortie, et mesure par les mutants.
  6. Tester sur des données réelles
  7. 4
    Rejouer des données avec ros2 bag 1 h 30 · Reproduire sur son poste un bug vu sur le robot : enregistrer des topics avec ros2 bag, inspecter et rejouer l'enregistrement, lire un bag dans un test avec rosbag2_py, et transformer le bug en test de non-régression.
  8. Automatiser
  9. 5
    Intégration continue 1 h 30 · Faire tourner la compilation et les tests à chaque pull request avec GitHub Actions : écrire un workflow pour un dépôt ROS 2, éviter le piège de colcon test, garder les mêmes étapes en local et en CI, et protéger la branche main.
  10. 6
    Qualité du code et revue 1 h 30 · Garder un code lisible et sûr en équipe : les linters d'ament (style, copyright, CMake, XML), le formatage automatique, un test unitaire C++ avec gtest, et la revue de code d'une pull request.