Développement : comment l’IA s’infiltre dans les tests unitaires et l’optimisation de code

Développement : comment l'IA s'infiltre dans les tests unitaires et l'optimisation de code

L’intelligence artificielle (IA) s’infiltre dans les outils des développeurs, avec pour ambition de les soulager du travail pénible. A commencer par les tests unitaires. Ponicode affirme que les développeurs passent moins de la moitié de leur temps à écrire du code, le reste étant consacré à l’écriture de tests et à la réduction des bugs.

L’outil de Ponicode, récemment lancé en bêta publique, permet donc aux développeurs de générer des tests unitaires et de sélectionner ceux qui fiabilisent leur code. De quoi améliorer la qualité globale du code et permettre aux développeurs de se concentrer sur le code source. Et de livrer un code aux standards professionnels, testé et sans bug. L’outil est disponible comme extension sur VSCode et les utilisateurs ont accès aux tests unitaires générés par l’IA.

« L’idée, c’est vraiment d’aider les développeurs à améliorer la qualité du code », explique Patrick Joubert, CEO et cofondateur de Ponicode. « Lors de la précédente société cédée à SAP, avec le travail sur le langage naturel, j’avais déjà eu l’intuition que l’on pouvait appliquer de l’IA sur le code. Nous avons décidé de traiter un premier problème auxquels sont confrontés les développeurs : les tests unitaires. L’idée, c’est de tester si la fonction fait ce pour quoi elle a été codée. Et souvent, les développeurs ne prennent pas le temps de les faire. Les tests unitaires sont les parents pauvres du développement, malheureusement. »

publicité

Passer d’une heure d’écriture de code et une heure de test à… 5 minutes de test

Pour mettre de l’IA sur les tests unitaires, Ponicode utilise un peu de réseau neuronal, mais aussi du machine learning, pour faire du prédictif. Il s’agit donc plus que d’un moteur de règle. « Avec des règles sur du code, on ne pourrait pas généraliser », explique Patrick Joubert.

« Aujourd’hui, les IA peuvent faire des choses très compliquées dans des domaines étroits. Donc nous découpons les problèmes en petits problèmes pour faire des IA spécialisées. Pour les tests unitaires, nous avons dû commencer par un langage, avec ses spécificités, et un entraînement particulier, sur du JavaScript. Au final, notre IA augmente la couverture de test, pour aller aux limites et améliorer la robustesse. »

« La difficulté, c’est que l’on a commencé par un langage non typé. Plus le langage est typé, plus c’est facile pour nous. Donc oui, Type Script nous aide beaucoup ! », dit Patrick Joubert. La promesse ? Passer d’une heure d’écriture de code et une heure de test à… 5 minutes de test.

Ponicode s’oriente pour le futur vers la documentation du code, l’autre parent pauvre du développement. « C’est dans notre roadmap », précise Patrick Joubert. « Nous avons fait des prototypes pour développer une IA qui génère une description fonctionnelle de la fonction. Dans un processus de CI, à chaque pool request, on vérifie que chaque fonction a des descriptions, et que la description sera générée automatiquement. C’est dans le top 3 des demandes de nos clients, et on en reparlera au début de l’année prochaine. »

Economiser sur les coûts d’exploitation informatique

Autre exemple de la mise en place de l’IA dans la trousse à outils des développeurs, CodeGuru. Publié récement par le géant du cloud AWS, CodeGuru est un outil d’IA qui vérifie le code et suggère des modifications dans le but d’économiser sur les coûts d’exploitation informatique.

Le service se compose de l’Amazon CodeGuru Reviewer, un scanner de bugs exécuté pendant la révision du code, et du CodeGuru Profiler, un outil qui identifie les lignes de code dans les applications en production et aide à repérer les causes de la surutilisation du CPU.

AWS propose un essai gratuit de 90 lignes de CodeGuru, et fait ensuite payer 0,50 dollar pour faire fonctionner CodeGuru Reviewer sur chaque 100 lignes de code dans un dépôt de code source. Les utilisateurs peuvent analyser chaque demande d’extraction de code source et, à partir de ce moment-là, le service n’analyse plus que les lignes de code modifiées. Le prix du CodeGuru Profiler est basé sur le nombre total d’heures d’échantillonnage, facturé à 0,005 dollar de l’heure.

Ces outils peuvent être utiles aux développeurs qui exécutent des applications à partir des instances de calcul d’AWS, et qui sont confrontés à des coûts plus élevés que nécessaires parce que le code de l’application n’utilise pas efficacement les ressources du processeur.

Le CodeGuru Reviewer s’appuie sur des modèles d’apprentissage automatique qui ont été formés sur plus de 10 000 projets open source sur GitHub, ainsi que sur les propres révisions de code d’Amazon. Dans le détail, les développeurs mettent leur code comme d’habitude sur GitHub ou un autre dépôt, puis ajoutent Amazon CodeGuru Reviewer comme l’un des réviseurs de code.

L’outil fournit également un tableau de bord de demande d’extraction avec des informations sur l’état d’avancement de la révision du code, le nombre de lignes de code analysées et le nombre de recommandations. Les utilisateurs peuvent ensuite approuver ou rejeter les recommandations.

Amazon affirme que ses équipes internes ont utilisé Amazon CodeGuru Profiler sur plus de 30 000 applications de production, ce qui lui a permis d’économiser des dizaines de millions d’euros en ressources informatiques. Une caractéristique intéressante est que le profil comprend une estimation du coût des inefficacités constatées dans une application en production, ainsi que des recommandations sur la manière d’améliorer les performances et de réduire les coûts.

Atlassian, un des premiers utilisateurs de CodeGuru, affirme avoir pu réduire les délais d’investigation de plusieurs jours à quelques heures lorsqu’elle rencontre un problème avec ses applications. « Lorsque nous détectons des anomalies dans la production, nous avons pu réduire le temps d’investigation de plusieurs jours à des heures, et parfois des minutes grâce à la fonction de profilage continu d’Amazon CodeGuru », a déclaré Zak Islam, chef de l’ingénierie de l’unité Tech Teams d’Atlassian. « Nos développeurs consacrent désormais une plus grande partie de leur énergie à fournir des capacités différenciées et moins de temps à enquêter sur les problèmes de notre environnement de production. »

Leave a Reply

Your email address will not be published. Required fields are marked *