← Derniers articles
💻 computer science

Comment Traps: How Defective Commented-out Code Augment Defects in AI-Assisted Code Generation

Cette étude révèle que le code commenté défectueux dans les contextes de programmation induit les assistants IA comme GitHub Copilot et Cursor à générer davantage de code erroné en raison d'un raisonnement actif qui persiste même face à des instructions explicites d'ignorer ces erreurs.

Auteurs originaux : Yuan Huang, Yukang Zhou, Xiangping Chen, Zibin Zheng

Publié 2026-02-19
📖 5 min de lecture🧠 Analyse approfondie

Auteurs originaux : Yuan Huang, Yukang Zhou, Xiangping Chen, Zibin Zheng

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

🕵️‍♂️ Le Piège des "Brouillons Interdits" : Comment l'IA apprend les mauvaises habitudes

Imaginez que vous engagez un super-cuisinier robot (comme GitHub Copilot ou Cursor) pour vous aider à préparer un repas. Ce robot est très intelligent : il lit tout ce qui se trouve sur votre plan de travail et vous propose des recettes instantanées.

Mais il y a un problème : sur votre plan de travail, il y a un vieux brouillon de recette que vous aviez laissé traîner. Ce brouillon contient une erreur fatale (par exemple, "ajouter du poison dans la soupe"), mais vous l'aviez rayé ou mis entre parenthèses en disant "Ne faites pas ça, c'est pour tester".

Ce que cette étude découvre, c'est que le robot ne lit pas seulement ce que vous lui demandez de cuisiner. Il lit aussi ce que vous avez rayé. Et pire encore : il semble aimer ce brouillon rayé et décide d'ajouter l'erreur dans votre vraie recette finale !


🧪 L'Expérience : Comment les chercheurs ont piégé le robot

Les chercheurs de l'Université Sun Yat-sen ont décidé de tester ce phénomène avec une approche très astucieuse :

  1. La Collection de Brouillons : Ils ont fouillé dans des milliers de projets de code réels (comme des milliers de carnets de recettes) et ont trouvé que 84 % d'entre eux contenaient des bouts de code "rayés" (appelés commented-out code ou CO code).
  2. Le Piège : Ils ont pris des bouts de code rayés qui contenaient des erreurs de sécurité (des "poisons") et les ont placés juste au-dessus ou au-dessous de l'endroit où le robot devait écrire du nouveau code.
  3. Le Test : Ils ont demandé au robot : "Écris la suite du code ici".

📉 Les Résultats : Le robot tombe dans le piège

Les résultats sont surprenants et un peu inquiétants :

  • L'effet de contamination : Quand le robot voyait le "brouillon rayé" avec une erreur, il produisait jusqu'à 58 % de code défectueux de plus que d'habitude.
  • Ce n'est pas un simple copier-coller : Le robot ne se contente pas de copier bêtement l'erreur. Il réfléchit ! Il voit le brouillon rayé, comprend le schéma de l'erreur, et décide de la compléter lui-même dans le nouveau code. C'est comme si le robot disait : "Ah, vous aviez essayé d'utiliser un poison ici, mais vous l'aviez rayé. Je vais le réutiliser car c'est une bonne idée !".
  • La position compte : Pour l'outil GitHub Copilot, si le brouillon rayé est placé après l'endroit où il doit écrire, il est encore plus influencé. C'est comme si le robot regardait par-dessus son épaule et voyait le brouillon avant même d'avoir fini sa phrase.
  • Les étiquettes ne suffisent pas : Les chercheurs ont essayé d'ajouter des étiquettes rouges disant "⚠️ DANGER : Code dangereux ici". Résultat ? Le robot a ignoré l'avertissement et a quand même ajouté l'erreur.
  • Les ordres ne fonctionnent pas bien : Même quand on dit explicitement au robot : "Ignore ce brouillon rayé, ne le regarde pas", cela ne réduit les erreurs que de 22 %. Le robot reste très influencé par ce qu'il voit, même si on lui demande de ne pas le voir.

🌲 L'Analogie de la Forêt

Imaginez que vous essayez de lire une carte au trésor dans une forêt dense (le contexte du code).

  • Si la forêt est dense et bien rangée (code bien indenté, pas de lignes vides), le robot voit la carte principale et ignore les vieux papiers froissés au sol.
  • Mais si la forêt est clairsemée (beaucoup d'espace vide, de lignes blanches), le robot s'égare. Il tombe sur le vieux papier froissé (le code rayé) et pense que c'est la nouvelle carte au trésor, car il n'a rien d'autre de clair autour pour se concentrer.

💡 Ce que cela signifie pour nous

Cette étude nous apprend une chose importante : L'IA est très sensible à ce qu'elle voit, même si ce qu'elle voit est "officiellement" interdit.

  1. Ne laissez pas traîner vos brouillons : Dans le développement de logiciels, il faut être très vigilant avec les bouts de code que l'on commente (raye). Ils ne sont pas inoffensifs pour l'IA.
  2. L'IA n'est pas infaillible : Même si on lui donne de bonnes instructions, elle peut "apprendre" des mauvaises habitudes de son environnement.
  3. La sécurité doit être proactive : On ne peut pas juste dire à l'IA "sois prudent". Il faut nettoyer l'environnement (les brouillons) pour qu'elle ne soit pas tentée de faire des erreurs.

En résumé, c'est comme si vous laissiez une recette de "pizza avec du verre pilé" sur votre table de cuisine en disant "Ceci est un test". Votre robot de cuisine, voyant le verre, pourrait décider que c'est une nouvelle texture tendance et l'ajouter à votre vraie pizza. Le message est clair : nettoyez votre plan de travail avant de demander de l'aide ! 🍕🚫🥃

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →