La code review, ou « revue de code », correspond à une mesure d’assurance qualité dans le domaine du développement de logiciels. Le code source constitue l’élément de base du travail de développement, mais aussi le principal produit de la programmation. Il convient donc de toujours soumettre le code que vous venez de créer ou de modifier à une code review. Cette procédure consiste à laisser un ou plusieurs membres de l’équipe vérifier le travail effectué par un programmeur.
Un projet logiciel comprend une « base de code », c’est-à-dire une collection de fichiers de code qui permettent, une fois rassemblés, de livrer un produit. En plus du code du produit à proprement parler, cette base comprend, entre autres, la configuration, les outils de développement et les tests nécessaires, tous ces éléments étant présentés sous forme de code. L’ensemble de la base de code est géré à l’aide d’un système de contrôle de version, comme Git. Différentes « branches » permettent de gérer plusieurs versions de la base de code parallèlement les unes aux autres. Il est donc possible de développer de nouvelles fonctionnalités sans pour autant modifier la version de production de la base de code.
Généralement, le travail de développement est donc effectué sur des branches de fonctionnalités, intégrées de manière périodique à la branche principale. La révision du code intervient avant la « fusion », c’est-à-dire avant l’association du code nouvellement créé ou modifié avec la base de code existante. Celle-ci a pour but de repérer et d’éliminer les erreurs assez tôt dans le processus, avant la mise en production du code.
La révision du code ne sert toutefois pas uniquement à résoudre les éventuels bogues. Le bon fonctionnement du code, sans erreur et avec la production du résultat souhaité, ne constitue en effet que l’un des prérequis. Il existe de nombreux autres critères de qualité à respecter pour obtenir un « clean code ». La présence de commentaires, la clarté et la cohérence du code, mais aussi le respect d’un certain guide de style et la capacité d’intégration à des systèmes existants constituent d’ailleurs autant de paramètres essentiels qu’il convient de prendre en compte lors de la code review.
Comme le travail de développement est souvent effectué en groupe, la code review ne se contente pas d’améliorer la qualité du code. La révision du code est en effet assurée par d’autres membres de l’équipe de développement, avec des effets sociaux : les nouveaux membres bénéficient de commentaires sur les conventions et les bonnes pratiques, et les connaissances sont mieux échangées et transmises au sein de l’organisation. La revue de code contribue donc à favoriser une certaine culture de la qualité.
De nos jours, même si la revue de code est assurée par des personnes, les processus de code review s’appuient généralement sur des outils spécifiques. Les outils de code review sont efficaces et soulagent toutes les personnes concernées, qui n’ont plus besoin de gérer la coordination complexe et fastidieuse des processus. Elles peuvent donc se consacrer pleinement à la code review proprement dite.
Sur le plan conceptuel, la code review réalisée par des personnes se situe à mi-chemin entre deux méthodes d’analyse automatisées : l’analyse statique et l’analyse dynamique. Voici ce qui les différencie les unes des autres :
Analyse statique | Code review | Analyse dynamique |
Par des programmes | Par des personnes | Par des programmes |
Lecture du code | Lecture du code, exécution virtuellement répétée | Exécution du code |
Application d’un style uniforme | Association à la vue d’ensemble | Détection des erreurs |
Erreurs de type ; failles de sécurité connues et anti-patterns | Failles de sécurité complexes ; codes smells | Erreurs d’intégration ; edge cases exceptionnels ; load testing |