Skip to main content

Passer en revue le code généré par l’IA

Découvrez les techniques de vérification et de validation du code généré par l’IA, et comment Discussion avec Copilot peut vous aider.

L’examen du code généré par des outils IA tels que GitHub Copilot, ChatGPT ou d’autres agents de codage devient une partie essentielle du flux de travail du développeur moderne. Ce guide fournit des techniques pratiques, met l’accent sur l’importance de la surveillance et des tests humains, et inclut des exemples d’invites pour montrer comment l’IA peut aider dans le processus d’examen.

Pour les bases de code héritées et les demandes de tirage plus volumineuses en particulier, un processus de révision approfondi est essentiel. La combinaison de l’expertise humaine avec des outils automatisés peut garantir que le code généré par l’IA répond aux normes de qualité, s’aligne sur les objectifs du projet et respecte les meilleures pratiques.

Avec Copilot, vous pouvez simplifier votre processus de révision et améliorer votre capacité à identifier les problèmes potentiels dans le code généré par l’IA.

1. Commencer par des vérifications fonctionnelles

Exécutez toujours des tests automatisés et des outils d’analyse statique en premier.

Exemples d’invites

  • What functional tests to validate this code change do not exist or are missing?
  • What possible vulnerabilities or security issues could this code introduce?

2. Vérifier le contexte et l’intention

Vérifiez que le code généré par l’IA correspond à l’objectif et à l’architecture de votre projet.

  • Passez en revue la sortie IA pour la conformité avec vos exigences et schémas de conception.
  • Demandez-vous : « Ce code résout-il le bon problème ? Est-ce qu’il suit nos conventions ?
  • Utilisez votre fichier README, vos documents et vos pull requests récentes comme point de départ pour fournir un contexte à l'IA. Indiquez à l’IA quelles sources faire confiance, ce qui n’est pas utilisé et donnez-lui de bons exemples pour travailler avec.
  • Essayez Synthèse de recherches pour voir comment Copilot utilise la documentation et la recherche pour informer la génération de code.
  • Lorsque vous demandez à l’IA d’effectuer des tâches de recherche et de planification, envisagez de distiller la sortie de l’IA en artefacts structurés afin de devenir un contexte pour les futures tâches IA telles que la génération de code.

Exemples d’invites

  • How does this refactored code section align with our project architecture?
  • What similar features or established design patterns did you identify and model your code after?
  • When examining this code, what assumptions about business logic, design preferences, or user behaviors have been made?
  • What are the potential issues or limitations with this approach?

3. Évaluer la qualité du code

Les normes humaines sont toujours importantes.

  • Recherchez une lisibilité, une facilité de maintenance et des noms clairs.
  • Évitez d’accepter du code difficile à suivre ou prend plus de temps à refactoriser que de réécrire.
  • Préférez le code bien documenté et inclut des commentaires clairs.
  • Consultez Amélioration de la lisibilité du code et de la maintenance pour obtenir des indications et des conseils sur la révision et la refactorisation du code généré.

Exemples d’invites

  • What are some readability and maintainability issues in this code?
  • How can this code be improved for clarity and simplicity? Suggest an alternative structure or variable names to enhance clarity.
  • How could this code be broken down into smaller, testable units?

4. Examiner les dépendances

Soyez vigilant avec les nouveaux packages et les nouvelles bibliothèques.

  • Vérifiez si les dépendances suggérées existent et sont activement conservées. Considérez les origines et les contributeurs de nouvelles dépendances pour s’assurer qu’elles proviennent de sources fiables et non concurrentes.
  • Passez en revue les licences. Évitez d’introduire du code ou des dépendances incompatibles avec la licence de votre projet (par exemple, AGPL-3.0 dans un projet sous licence MIT ou les dépendances sans licence déclarée).
  • Méfiez-vous des packages hallucinés ou suspects (comme des packages qui n'existent pas réellement) ou du slopsquatting (une attaque théorique contre les LLM reposant sur des packages factices ou malveillants).
  •         [AUTOTITLE](/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-templates) montre comment Copilot peut vous aider à configurer les dépendances, mais il est recommandé de toujours vérifier vous-même les packages suggérés.
    
  • Utilisez Référence au code GitHub Copilot pour passer en revue les correspondances avec du code disponible publiquement.

Exemples d’invites

  • Analyze the attached package.json file and list all dependencies with their respective licenses.
  • Are each of the dependencies listed in this package.json file actively maintained (that is, not archived and have recent maintainer activity)?

5. Repérer les pièges spécifiques à l’IA

Les outils IA peuvent faire des erreurs uniques.

  • Recherchez des API fantômes, des contraintes omises ou une logique erronée.
  • Recherchez les tests supprimés ou ignorés, au lieu d’être corrigés.
  • Soyez sceptique du code qui « semble correct », mais ne correspond pas à votre intention.
  • Voir Déboguer un JSON non valide comme un exemple de détection d'erreurs subtiles et de débogage avec Copilot.

Exemples d’invites

  • What was the reasoning behind the code change to delete the failing test? Suggest some alternatives that would fix the test instead of deleting it.
  • What potential complexities, edge cases, or scenarios are there that this code might not handle correctly?
  • What specific technical questions does this code raise that require human judgment or domain expertise to evaluate properly?

6. Utiliser des révisions collaboratives

Le travail en binôme et la contribution de l'équipe permettent de détecter des problèmes subtils.

  • Demandez aux collègues de passer en revue les modifications complexes ou sensibles.
  • Utilisez des listes de contrôle pour vous assurer que tous les points de révision clés (fonctionnalités, sécurité, facilité de maintenance) sont couverts.
  • Partagez des suggestions et des schémas réussis pour l’utilisation de l’IA au sein de votre équipe.
  • Consultez Communiquer efficacement pour obtenir des exemples d’utilisation de Copilot en collaboration et documenter les résultats.

7. Automatiser ce que vous pouvez faire

Laissez les outils gérer le travail répétitif.

  • Mettez en place des vérifications de CI pour le style, le linting et la sécurité.
  • Utilisez Dependabot pour les mises à jour et alertes des dépendances.
  • Appliquez CodeQL ou des analyseurs similaires pour l'analyse statique.
  •         [AUTOTITLE](/copilot/how-tos/get-code-suggestions/find-matching-code) montre comment Copilot peut aider à suivre les modèles de code et à automatiser les tâches de recherche.
    
  • Déterminez si les agents IA dotés de capacités de raisonnement peuvent vous aider à automatiser des parties de votre processus de révision. Par exemple, créez un agent auto-évaluable qui évalue les requêtes de tirage en brouillon par rapport à vos normes, vérifiant leur précision, le ton approprié, et la logique métier avant de demander une révision humaine.

8. Continuez à améliorer votre flux de travail

L’adoption de nouveaux outils et techniques d’IA peut rendre votre workflow encore plus efficace.

  • Documentez vos meilleures pratiques pour examiner le code généré par l’IA.
  • Encouragez les « champions de l'IA » de votre équipe à partager des conseils et des flux de travail.
  • Mettez à jour vos guides d’intégration et de contribution pour inclure vos techniques et ressources d’examen d’IA. Utilisez un CONTRIBUTING.md fichier dans votre référentiel pour documenter vos attentes en matière de code source et de contenu générés par l’IA, consultez Définition de recommandations pour les contributeurs de dépôt.
  •         [Référencez AUTOTITLE](/copilot/tutorials/copilot-chat-cookbook) pour obtenir de l’inspiration et partager des recettes utiles dans votre documentation d’équipe.
    

Lectures complémentaires

  •           [Supervision humaine dans la revue de code moderne](https://resources.github.com/enterprise/human-oversight-modern-code-review/) dans les ressources de GitHub