La revue de code diffère des autres techniques d'assurance qualité logicielle telles que l'analyse statique de code , les auto-vérifications , les tests et la programmation en binôme . L'analyse statique repose principalement sur des outils automatisés, les auto-vérifications n'impliquent que l'auteur, les tests nécessitent l'exécution du code et la programmation en binôme est réalisée en continu pendant le développement plutôt que comme une étape distincte.
la maintenabilité du code interne grâce à une meilleure lisibilité, une plus grande uniformité et une meilleure compréhensionTypes d'avis
Il existe plusieurs variantes de processus de revue de code, avec des types supplémentaires spécifiés dans la norme IEEE 1028.
- revues de direction
- revues techniques
- Inspections
- Visites guidées
- Audits
Inspection (formelle)
Le premier processus de revue de code étudié et décrit en détail a été nommé « Inspection » par son inventeur, Michael Fagan . L’inspection de Fagan est un processus formel qui implique une exécution minutieuse et détaillée, avec plusieurs participants et en plusieurs phases. Lors des revues de code formelles, les développeurs participent à une série de réunions pour examiner le code ligne par ligne, souvent à l’aide de copies imprimées. Les recherches ont démontré que les inspections formelles sont extrêmement complètes et très efficaces pour identifier les défauts.
Revue de code régulière basée sur les modifications (Examens de code)
Les équipes de développement logiciel adoptent généralement un processus de revue de code allégé, où chaque revue porte sur les modifications apportées au code source et correspondant à un ticket, une user story, un commit ou toute autre unité de travail. De plus, des règles et conventions intègrent la revue de code au flux de développement, par exemple en imposant une revue systématique de tous les tickets, généralement dans le cadre d'une pull request , plutôt que de planifier explicitement chaque revue. Ce processus est appelé « revue de code régulière basée sur les modifications ». Il existe de nombreuses variantes de ce processus de base.
Une enquête menée en 2017 auprès de 240 équipes de développement a révélé que 90 % des équipes utilisant la revue de code suivaient un processus basé sur les modifications, et que 60 % d'entre elles pratiquaient spécifiquement une revue régulière basée sur les modifications. Parmi les grandes entreprises de logiciels connues pour utiliser la revue de code basée sur les modifications, on peut citer Microsoft, Google, et Facebook.
Efficience et efficacité
Une étude menée par Capers Jones sur plus de 12 000 projets de développement logiciel a révélé que les inspections formelles présentaient un taux de détection des défauts latents de 60 à 65 %, tandis que les inspections informelles en détectaient moins de 50 %. Le taux de détection des défauts latents pour la plupart des méthodes de test est d'environ 30 %. Une étude de cas sur la revue de code, publiée dans l'ouvrage « Best Kept Secrets of Peer Code Review » , contredit l'étude de Capers Jones, démontrant que les revues allégées peuvent détecter autant de bogues que les revues formelles, tout en étant plus rapides et moins coûteuses.
Des études indiquent que jusqu'à 75 % des commentaires lors des revues de code affectent l'évolutivité et la maintenabilité du logiciel plutôt que sa fonctionnalité ce qui suggère que les revues de code constituent un excellent outil pour les entreprises de logiciels dont les cycles de vie des produits ou des systèmes sont longs . Par conséquent, moins de 15 % des problèmes abordés lors des revues de code sont directement liés à des bogues
Lignes directrices
Les recherches indiquent que l'efficacité des revues de code est corrélée à leur rapidité. Les taux optimaux de revue de code se situent entre 200 et 400 lignes par heure. Inspecter et relire plus de quelques centaines de lignes de code par heure pour des logiciels critiques (tels que des logiciels embarqués critiques pour la sécurité ) peut s'avérer trop rapide pour détecter les erreurs.
Outils de soutien
Les outils d'analyse statique de code aident les relecteurs en vérifiant automatiquement le code source à la recherche de vulnérabilités et de schémas de défauts connus, notamment pour les grands blocs de code. Une étude de VDC Research menée en 2012 indique que 17,6 % des ingénieurs en logiciels embarqués interrogés utilisent actuellement des outils automatisés pour faciliter la relecture de code par les pairs et que 23,7 % prévoient de les utiliser dans les deux ans à venir.