Si L’ia N’est Pas En Place, La Bonne Solution Est De Travailler Avec Des Programmeurs Pour Écrire Du Code

Par Super Neuro
La célèbre société de développement de jeux Ubisoft et le géant de la technologie open source Mozila ont récemment publié l'outil d'assistance à la programmation Clever-Commit, développé conjointement, qui fournit aux ingénieurs des fonctions d'avertissement et de correction de bogues.
Nous avons publié un article intitulé « Vous aider à écrire du Python n'est que la première étape pour que l'IA remplace les programmeurs », qui montre que de plus en plus d'outils d'IA peuvent aider les ingénieurs à améliorer la qualité de leur code et l'efficacité de leur travail pendant le processus d'écriture de code.
Par exemple, Kite, investi par le PDG de GitHub, peut compléter intelligemment des extraits de code, appeler des fonctions et interroger des démonstrations de documents en fonction de l'environnement de production actuel. Nous savons que Kite a plaisanté en disant que l’ambition de l’IA n’est pas seulement d’aider les humains, mais de remplacer à terme les fonctions des ingénieurs.
Bien sûr, ce ne sont que des blagues. À l’heure actuelle, il semble peu probable que l’IA remplace complètement les artisans. À l’avenir, l’IA contribuera davantage à aider les ingénieurs à travailler plus efficacement et avec une meilleure qualité.

Récemment, un assistant de codage IA, Clever-Commit, développé conjointement par Mozila et Ubisoft, a vu le jour. Sa fonction est de sauver les ingénieurs derrière Firefox des bugs. Le 12 février, Mozila a annoncé qu'il avait commencé à utiliser cet outil en coopération avec Ubisoft pour rendre l'écriture de code plus efficace, offrant ainsi aux utilisateurs de Firefox une meilleure expérience de navigation.
Clever-Commit : Avertissement de bug à haute énergie à venir !
Le prédécesseur de Clever-Commit était Commit-Assistant lancé par Ubisoft l'année dernière.

Commit-Assistant est un système permettant de trouver des bugs et de suggérer des correctifs. C'est un assistant de code qui aide les développeurs à améliorer l'expérience de jeu. La naissance de cet assistant IA est due à son énorme base de code. Au cours de sa formation, il aurait reçu environ dix ans de code fonctionnel d'Ubisoft, y compris du code avec de nombreux bugs corrigés.
Dans ce contexte, Mozlia et Ubisoft ont collaboré pour lancer une version améliorée de Clever-Commit.
Clever-Commit est un outil de programmation auxiliaire, qui peut être simplement décrit comme un assistant IA qui vérifie le code. Lorsque les développeurs soumettent des modifications de code à la base de code de Firefox, ils peuvent comparer le nouveau code avec les précédents pour voir s'il est similaire aux bogues qui ont été trouvés. Si l'assistant détermine qu'une nouvelle soumission est suspecte, il alerte le développeur.

Si la précision du jugement de l'assistant est élevée, cela signifie que les bogues peuvent être détectés et avertis avant d'être soumis au référentiel source. Pour certains bugs, Clever-Commit peut même suggérer des correctifs appropriés.
Mozilla prévoit d'utiliser Clever-Commit dans un premier temps lors de la révision du code, puis de l'étendre à d'autres étapes de développement au fil du temps. Il convient de mentionner qu’il fonctionne parfaitement avec les trois langages que Mozilla utilise pour Firefox : C++, JavaScript et Rust.
Comment détecte-t-il les bugs ?
En fait, son apparition est inévitable, et la prévention et la résolution automatiques des défauts constituent une voie inévitable pour le développement de logiciels. Les approches existantes utilisent des métriques de code et de processus pour créer des modèles basés sur des métriques qui peuvent empêcher efficacement l’insertion de défauts dans les projets logiciels.
La technologie utilisée ici s'appelle CLEVER, qui a été développée pour la première fois par des chercheurs d'Ubisoft et de l'Université Concordia. Ils ont rédigé un article intitulé « CLEVER : combiner les métriques de code avec la détection de clones pour la prévention et la résolution des pannes juste-à-temps dans les grands projets industriels » qui explique ses détails. En général, il s’agit d’une technologie combinée de prévention et de résolution des bogues.

Adresse de l'article : https://montreal.ubisoft.com/wp-content/uploads/2018/05/ICSE-CE-MSR-165.pdf
La clé est de déterminer avec précision si le code est une partie risquée lorsqu’il est ajouté, afin de l’intercepter ou de le réparer.
La méthode de mise en œuvre comporte deux étapes principales. La première consiste à créer une bibliothèque basée sur des indicateurs existants, qui peuvent déterminer si le code nouvellement ajouté est similaire au code risqué. La deuxième étape consiste à ajouter ces codes apparemment dangereux à la zone de clonage du code, puis à déterminer s'il s'agit de codes risqués.


De plus, CLEVER évalue non seulement le projet en cours, mais prend également en compte d'autres projets connexes dans son jugement, atteignant ainsi une intelligence supérieure. Sur la base de la correspondance de la base de code et de l'accumulation de données précédentes, CLEVER est au niveau leader en termes de taux d'identification des bogues et de suggestions d'amélioration.
Coopération transfrontalière entre Ubisoft et Firefox
La raison pour laquelle CLEVER est si puissant, c’est parce qu’il dispose de ressources puissantes derrière lui. Ubisoft est un géant de l'industrie du jeu vidéo, spécialisé dans la conception et la réalisation de jeux vidéo à gros budget.

Les systèmes logiciels d'Ubisoft sont hautement couplés, composés de millions de fichiers et de commits, développés et maintenus par plus de 8 000 développeurs répartis sur 29 sites répartis sur six continents. Il s’agit d’un avantage unique pour le développement et la formation de CLEVER.
Pour comparer les performances de CLEVER, ils l'ont testé sur 12 systèmes Ubisoft. Les résultats ont montré que CLEVER a atteint une précision de 79 % et un rappel de 65 % pour les soumissions de code risquées, ce qui a dépassé les performances d'une méthode similaire, Commit-guru (66 % de précision et 63 % de rappel). De plus, CLEVER a pu recommander aux développeurs comment corriger 66,7 % des commits risqués.
Clever-Commit, qui utilise la technologie CLEVER, devrait obtenir de bons résultats une fois qu'il sera entièrement intégré au processus de développement de Mozilla, ce qui réduira également considérablement la douleur des développeurs. Détecter quatre ou cinq vulnérabilités avant qu’elles ne soient commises permet d’économiser plus de ressources que de les trouver après leur commission.

L'équipe d'ingénierie de Firefox a indiqué qu'elle commencerait à utiliser Clever-Commit dans son processus d'écriture, de test et de publication de code. Ils espèrent économiser des centaines d’heures d’analyse et de détection des risques de vulnérabilité grâce à cette approche.
Autre chose?
Il existe d’autres tentatives d’utilisation de l’apprentissage automatique pour détecter des bugs dans de grandes bases de code.
L’année dernière, Microsoft a lancé un outil similaire dans Visual Studio : IntelliCode.

IntelliCode a étudié les référentiels GitHub publics les plus populaires (plus de 2 000 projets avec plus de 100 étoiles chacun) pour découvrir les caractéristiques des meilleures pratiques de codage.
L'objectif initial d'IntelliCode est assez conservateur, il fournit des suggestions de complétion IntelliSense plus intelligentes en comprenant quelles suggestions sont plus susceptibles d'être utilisées en fonction de la façon dont d'autres projets utilisent la même API. Il est également utilisé pour détecter le style de codage et l'utilisation des espaces afin de pouvoir écrire le code dans un style d'écriture de code similaire.
Comme Clever-Commit, IntelliCode peut être utilisé pour trouver des bugs. Fournir une correction rapide aux erreurs momentanées des développeurs.
