IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intelligence artificielle Discussion :

Code Defect AI, un outil IA pour aider les développeurs à repérer les bogues pendant le codage


Sujet :

Intelligence artificielle

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 307
    Points
    66 307
    Par défaut Code Defect AI, un outil IA pour aider les développeurs à repérer les bogues pendant le codage
    Code Defect AI, un outil IA pour aider les développeurs à repérer les bogues pendant le codage et non à la fin,
    disponible en open source sous licence Apache v2.0

    Les bogues sont souvent détectés au dernier moment, ce qui retarde le déploiement des logiciels. Pour permettre aux développeurs ainsi qu’aux entreprises d’y remédier, Altran, une entreprise qui fournit des services de R&D et d’ingénierie fondés sur l’IA, a mis en place un outil pour les aider à repérer les bogues pendant le processus de codage et non à la fin. L’outil a été développé en partenariat avec Microsoft et est disponible en open source sur GitHub sous la licence Apache v2.0. Voici ci-dessous les détails clés qu’il faut retenir sur “Code Defect AI”, l’outil d’Altran.

    Les bogues sont une réalité dans le développement de logiciels. Plus un défaut est découvert tardivement dans le cycle de développement, plus les coûts inhérents à sa correction sont élevés. Si un défaut est découvert après le déploiement, les clients sont touchés et les développeurs passent plus de temps à reproduire le problème, puis à publier une correction. Ce processus de déploiement, d'analyse et de correction des bogues est long et coûteux. Par ailleurs, cela peut également occasionner des retards dans les livraisons de nouvelles fonctionnalités.

    Pour aider les entreprises et développeurs à trouver et corriger plus rapidement les bogues, Altran leur propose une solution basée sur l’IA. Le but est de suivre efficacement les bases de code qui comportent un risque élevé d’introduire un bogue. Selon Microsoft, ces bases de code peuvent être apprises par un algorithme d'apprentissage de classification pour prévoir la possibilité qu'un des fichiers présente un bogue. Cela permet de découvrir plus tôt un défaut, ce qui minimise le coût de la correction des bogues. Altran a publié cet outil sous le nom de “Code Defect AI”.

    Nom : cdpaiarch3.jpg
Affichages : 4507
Taille : 29,0 Ko

    Code Defect AI est un classificateur d'apprentissage automatique qui prédit les fichiers de code source committé présentant un risque plus élevé de bogue en se référant aux commit historiques. En d’autres termes, en utilisant Code Defect AI, des modèles de classification personnalisés sont créés pour les projets GitHub, sur la base des métadonnées associées aux commit historiques. De cette façon, quand Code Defect AI découvre de nouveaux commit de développeurs, elle prédit si certains fichiers du commit risquent de présenter des défauts.

    La justification de cette prédiction est présentée à l'aide de LIME (Local Interpretable Model-Agnostic Explanations). LIME est une méthode qui permet d’expliquer les prédictions d’un classificateur d'apprentissage automatique. Altran a employé cette technique afin que les développeurs puissent faire confiance à cette prédiction et en tirer des enseignements. Selon Walid Negm, directeur de l'innovation d’Altran, ce nouvel outil aidera les développeurs à publier rapidement un code de qualité et faire baisser les coûts de correction des bogues.

    « Le cycle de publication des logiciels a besoin d'algorithmes qui peuvent aider à prendre des décisions stratégiques, surtout lorsque le code devient plus complexe », a-t-il Negm. Code Defect AI utilise plusieurs techniques de ML, dont les forêts de décision aléatoire, les machines à vecteurs de soutien, le perceptron multicouche (MLP) et la régression logistique. Voici comment fonctionne Code Defect AI :

    • pour un projet GitHub open source, les données historiques sont collectées en utilisant les interfaces RESTFul et Git CLI. Ces données comprennent l'historique complet des commit et l'historique complet des bogues ;
    • des techniques de prétraitement telles que l'identification des caractéristiques, l'encodage des étiquettes, un encodage à chaud, la mise à l'échelle et la normalisation des données sont appliquées aux données historiques collectées ;
    • l'étiquetage est effectué sur les données prétraitées. Le processus d'étiquetage implique la compréhension du modèle dans lequel les “fix commits” (où un bogue a été fermé) sont étiquetés pour chacun des problèmes fermés. Après la collecte des commit de correction, les commit qui ont introduit les bogues sont identifiés en faisant un retour en arrière sur les changements historiques pour chaque fichier d'un commit de correction ;
    • si un ensemble de données contient une très petite quantité de données de bogues par rapport aux enregistrements propres, des données synthétiques sont également générées pour éviter tout biais vers la classe majoritaire ;
    • de multiples algorithmes de modélisation sont formés sur les données préparées ;
    • une fois qu'il existe un modèle qui a une valeur acceptable de précision et de rappel, le modèle sélectionné est déployé pour la prédiction sur les nouveaux commit.

    En outre, Code Defect AI peut être intégré avec des outils d'analyse tiers. De même, il permet également d’identifier les bogues dans un code de programme donné. Code Defect AI permet aussi aux développeurs d'évaluer quelles caractéristiques du code devraient être prioritaires en matière de correction des bogues. Il peut être hébergé aussi bien dans les locaux que sur des plateformes de cloud computing telles que Microsoft Azure.

    Sources : Microsoft, Page GitHub de "Code Defect AI"

    Et vous ?

    Que pensez-vous de cet outil ?

    Voir aussi

    ESLint 7.0.0 est disponible, l'utilitaire de linting pour JavaScript supprime la prise en charge de Node.js 8 et vient avec plusieurs changements de ruptures

    Suivi des linters JavaScript, outils d'analyse statique de code source, ESLint en 4.19.0 et standardJS en 11.0.0

    Node.js : eslint-scope, un paquet npm, a été infecté par un hacker pour lui permettre de voler des identifiants npm

  2. #2
    Membre actif
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 211
    Points
    211
    Par défaut
    Si je comprends bien le principe, l'outil se base sur l'historique pour pouvoir prédire si des modifications vont(peuvent?) provoquer des bugs.
    Si c'est le cas il y a intérêt à ce que les message de commit soient clairs sur ce qui est fait (mais biensûr c'est toujours le cas )

    Je ne pense pas que cet outil change la donne. Après tout avec l'expérience on sait très bien que toucher à tel ou tel fichier c'est s'exposer à des régressions, donc l'outil ne nous dis pas grand chose.
    A mon sens il faut mieux investir dans du test unitaire et des tests fonctionnels automatisés + exploratoires.

    Ce qui m'échappe c'est comment cet outil peut dire "là il y a un bug" comment il le sait?

    La meilleure façon de trouver des bugs et de savoir si l'application permet à l'utilisateur de traiter efficacement le problème qu'il veut résoudre c'est d’interagir avec l'application.
    Cette tendance à vouloir aller plus vite que la musique me laisse perplexe...

  3. #3
    Expert éminent Avatar de marsupial
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2014
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2014
    Messages : 1 790
    Points : 7 285
    Points
    7 285
    Par défaut
    Intéressant. Il fonctionne pour Java, C/C++ et C#. On peut l'utiliser en cloud Azure ou sur site. Je n'ai pas l'infra pour tester mais ça vaut la peine d'essayer pour les grosses boîtes style CapGemini, Sopra Steria et autres. Même Google pourrait être intéressé bien qu'il dispose de machines exclusives sachant pondre du code C/C++ et Java. Manque Python et ce serait parfait.

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/08/2016, 10h52
  2. AdoptMyGame - Outil innovant pour aider les Dévs à trouver des distributeurs
    Par AdoptMyGame_Mikael dans le forum Marketing, licences et publication de jeux vidéo
    Réponses: 0
    Dernier message: 16/06/2015, 12h46
  3. Convention pour aider les autres programmeurs à modifier votre code
    Par sosolal dans le forum Humour Informatique
    Réponses: 21
    Dernier message: 22/03/2014, 15h16
  4. Réponses: 0
    Dernier message: 15/12/2010, 03h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo