Revue de code

Revue de code

La revue de code est un processus de vérification entre pairs visant à examiner le code de façon à identifier les problèmes et améliorer la qualité du logiciel. La revue de code est une tâche importante dans le développement de logiciels pour des systèmes embarqués, en particulier ceux qui nécessitent une certification.

En règle générale, une équipe de revue de code se compose d'un modérateur, d'un ingénieur ou responsable qualité et de développeurs logiciel travaillant ensemble. L'équipe utilise habituellement une check-list de revue de code afin de revoir systématiquement tous les aspects du logiciel. Par exemple, l'équipe peut être amenée à évaluer la complexité du code, rechercher les erreurs logiques ou de programmation communes et vérifier la conformité aux normes de codage comme MISRA-C/C++ ou CERT C/C++. Les outils d'analyse statique de code sont fréquemment utilisés pour les revues de code.

Pourquoi effectuer des revues de code ?

Les équipes logicielles mettent en œuvre des pratiques de revue de code pour :

  • Détecter les erreurs de codage : réduire le risque que les erreurs soient détectées tardivement dans le cycle de développement ou par un client.
  • Contrôler les violations des normes de codage : vérifier la conformité aux normes de codage comme MISRA C, CWE, CERT C/C++ ou AUTOSAR C++14.
  • Réduire la complexité du code : améliorer la lisibilité et la maintenabilité tout en réduisant les risques de défaillances et de défauts.
  • Identifier les problèmes de logique et d'architecture : réduire le temps et les efforts lors de la phase de test du logiciel en détectant ces problèmes de manière anticipée.
  • Promouvoir la responsabilité de l'équipe : améliorer la qualité et le partage des connaissances en répartissant les responsabilités.
  • Guider les nouveaux ingénieurs : coacher les nouveaux ingénieurs sur les pratiques en matière de codage, le design et l'architecture.

Bonnes pratiques pour la revue de code

Workflow typique pour le développement de logiciel.

Workflow typique pour le développement de logiciel.

Malgré la diversité des techniques de codage, la plupart s'en remettent aux bonnes pratiques suivantes :

  • Définir et communiquer les objectifs et le processus de revue de code : intégrer les revues de code au processus de développement de logiciel de l'équipe et s'assurer que l'équipe comprend bien les avantages du processus et le rôle de chaque membre de l'équipe.
  • Créer une check-list de revue de code : donner aux chargés de la revue de code des instructions systématiques pour vérifier que le code satisfait aux normes de qualité.
  • Définir le mur qualité : identifier clairement les critères d'approbation pour les modifications de code.
  • Instaurer un ton collaboratif : se concentrer sur le code, et non sur le codeur, pour atteindre les objectifs de revue de code, et aussi rappeler aux chargés de la revue qu'ils doivent être objectifs, attentifs et constructifs dans leurs commentaires.
  • Allouer le temps nécessaire : limiter le temps de revue de code à moins de 60 minutes ou à 400 lignes de code à la fois, afin de favoriser la concentration des personnes en charge de la revue.
  • Proposer une formation appropriée : se concentrer sur le développement des compétences des membres de l'équipe en termes de revue de code.

Comment améliorer l'efficacité de la revue de code

Lors du processus de revue de code, le manque d'efficacité peut réduire la productivité et provoquer de la frustration. L'analyse statique constitue une méthode rapide et efficace pour détecter les erreurs de programmation ; elle permet de garantir la conformité aux règles et aux conventions de codage. Les chargés de revue de code peuvent alors se concentrer sur les aspects les plus intéressants et pertinents, comme la détection des problèmes de logique et de design.

Comment les produits Polyspace accélèrent le processus de revue

Les produits d'analyse statique de code Polyspace utilisent des méthodes formelles pour vérifier dans le code source les violations des normes de codage, les défauts de code, ainsi que les vulnérabilités de sécurité.

Polyspace s'intègre facilement aux autres outils de développement de logiciel et maintient l'efficacité tout en garantissant l'analyse statique de code pour chaque soumission de code :

  • Analyse de code effectuée avant les revues de code : détecter les problèmes dès l'écriture du code avec le plugin Polyspace as You Code depuis des environnements de développement intégré (IDE) comme Visual Studio, Visual Studio Code ou Eclipse. Les développeurs peuvent repérer les problèmes dans le fichier qu'ils éditent ou exécuter une analyse sur tous les fichiers avant de les soumettre à la revue de code.
Détection des erreurs de codage avec le plugin Polyspace as You Code dans Visual Studio Code.

Détection des erreurs de codage avec le plugin Polyspace as You Code dans Visual Studio Code.

  • Intégration de l'analyse statique aux outils de revue de code : intégrer Polyspace aux outils de revue de code comme Review Board et Gerrit. Polyspace agit alors comme un chargé de revue en exécutant des analyses sur les modifications de code et en renvoyant les résultats à l'outil.
Workflows de l'outil de revue de code avec l'analyse Polyspace automatisée.

Workflows de l'outil de revue de code avec l'analyse Polyspace automatisée.

En savoir plus sur les produits Polyspace

  • Polyspace Bug Finder™ vérifie dans du code source C/C++ les violations des normes de codage, recherche plusieurs types de bug, détecte les vulnérabilités de sécurité et calcule des métriques de qualité, notamment les métriques de complexité du code.
  • Polyspace Code Prover™ utilise des méthodes formelles pour prouver l'absence d'erreurs run-time critiques dans du code source C/C++ sans avoir à l'exécuter.
  • Les produits Polyspace pour Ada prouvent l'absence d'erreurs run-time critiques dans le code source Ada.