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
Cours, terminal, éditeur et simulateur : rien à installer.
Commencer le module 1Accès au parcours : le prix et le fonctionnement sont sur la page Tarifs
Programme
- Travailler en équipe
-
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.
- Tester le code
-
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.
-
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.
- Tester sur des données réelles
-
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.
- Automatiser
-
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.
-
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.