Developpez.com

Le Club des Développeurs et IT Pro

Comment identifier et résoudre des problèmes de qualité de code avant même qu'ils se présentent ?

Des chercheurs suggèrent une méthode biométrique

Le 2016-05-24 18:43:41, par Michael Guilloux, Chroniqueur Actualités
La revue de code, consistant à examiner le code source d’un logiciel, devient de plus en plus une étape à part entière dans tout processus de développement logiciel. Elle peut s’appuyer sur la vérification (manuelle ou automatisée) du respect d'un ensemble de règles de programmation, mais l'objectif est de trouver des bogues ou des vulnérabilités potentielles ou de corriger des erreurs de conception afin d'améliorer la qualité, la maintenabilité et la sécurité du logiciel. S’il existe un large éventail d'outils et de recherches qui se concentrent sur l'identification des problèmes de qualité de code, des chercheurs font remarquer que la plupart de ces approches permettent seulement une évaluation post-hoc.

Comment donc identifier et résoudre des problèmes de qualité de code avant même qu’ils ne se présentent ? L’intérêt est que cela éviterait - après développement ou des changements dans un code - de chercher et de fixer les problèmes de qualité. Par conséquent, on pourrait avoir une réduction considérable des coûts de développement et d’évolution des logiciels.

D’après des chercheurs suisses de l’université de Zurich, cela serait possible en utilisant les données biométriques des développeurs, pendant qu’ils travaillent sur des parties de code. À l’aide de capteurs, les chercheurs ont pu recueillir les données biométriques telles que la variabilité de la fréquence cardiaque au cours d’une première étude réalisée pendant deux semaines sur dix développeurs professionnels, alors que ces derniers travaillaient sur des parties de code.

D’après les chercheurs, les résultats suggèrent, entre autres, « que les données biométriques des développeurs peuvent être utilisées pour déterminer la difficulté perçue des éléments de code et en outre identifier les endroits dans le code qui finissent avec des problèmes de qualité de code, tels que les bogues ». Les données biométriques ont par exemple aidé à détecter automatiquement 50 % des bogues trouvés dans des revues de code. Après comparaison, les chercheurs estiment encore que leur méthode surpasse les méthodes traditionnelles pour prédire les problèmes de qualité trouvés dans des revues de code, et améliore un classifieur naïf bayésien de 26 %.

Une deuxième étude réalisée sur cinq développeurs professionnels d’une autre entreprise confirme certains résultats de la première étude, notamment les conclusions sur la détermination automatique des parties difficiles dans le code, celles-ci finissant avec le plus de problèmes de qualité identifiés dans les revues de code.

Les chercheurs suisses concluent donc que dans l'ensemble, les résultats des leurs études suggèrent que la biométrie a le potentiel de prédire les problèmes de qualité de code en ligne et par conséquent réduire les coûts de développement et d'évolution des logiciels.

En ce qui concerne la portée, ils voient à partir des résultats de leurs études, « de nouvelles opportunités pour soutenir les développeurs quand ils éprouvent des difficultés dans le code et pour corriger les problèmes de qualité le plus tôt possible, juste quand ils sont en train d'être créés. »

Toutefois, il faut noter les éventuels problèmes de confidentialité que pourraient soulever l’utilisation des capteurs et la transmission des données biométriques des développeurs. Les chercheurs de l’université de Zurich estiment donc que vu ce problème, d'autres recherches sont nécessaires pour étudier une solution réalisable.

Télécharger l'étude : Using (Bio)Metrics to Predict Code Quality Online

Source : Vice.com

Et vous ?

Que pensez-vous des résultats de cette étude ?
  Discussion forum
9 commentaires
  • TiranusKBX
    Expert confirmé
    je paris que je fausse leur résultat en écoutant de la musique symphonique, vas fait bien varier la palpitant ou alors regarder en parallèle un film d'horreur ^^
    plus sérieusement quand on fait trois chose en même temps leur système fait comment pour s'en rendre compte ?
    ça ressemble furieusement à une étude pour un assureur
  • jopopmk
    Membre expert
    Envoyé par Michael Guilloux
    Que pensez-vous des résultats de cette étude ?
    Qu'il faut bien légitimer les subventions reçues.

    Maintenant y'a deux choses qui me chiffonnent dans ce qui est retranscrit ici :

    déterminer la difficulté perçue des éléments de code et en outre identifier les endroits dans le code qui finissent avec des problèmes de qualité de code
    Si on rencontre des difficultés on finit nécessairement avec un code degueu' ?

    Les données biométriques ont par exemple aidé à détecter automatiquement 50 % des bogues trouvés dans des revues de code
    Des bugs qu'on trouve à la simple lecture d'un code ? Y'aurait pas comme un souci en amont ?
  • melka one
    Membre expérimenté
    c'est un peut comme un détecteur de mensonge ça doit être utile pour du recrutement.
  • pcdwarf
    Membre éprouvé
    Ce qu'on trouvé les chercheurs est probablement vrai.
    Il semble d'ailleurs évident que la qualité du code produit dépende de la condition physique.

    Par contre, la chose est claire.
    On savait déjà qu'un développeur n'était plus un artiste mais un "pisseur de code"
    Désormais ça n'est même plus un être humain.
    C'est une entité biologique transformant la pizza en programme en employant le café comme catalyseur.

  • Jonyjack
    Membre averti
    Souvent, les bogues les plus vicieux sont ceux présents dans du code "facile". Une erreur d'attention ça arrive, et c'est très dur à détecter de prime abord.
  • rambc
    Membre chevronné
    A quand une sonde a---- ?
  • LapinGarou
    Membre confirmé
    Dans certaines entreprises il y a 2 devs sur un même poste pour éviter les erreurs. Un peu comme à la DDE...
  • gstratege
    Membre actif
    Et puis quoi encore ! On lutte déjà pour conserver nos données de nos disques durs, maintenant ils veulent voler et vendre nos données biométriques
  • Sa m'inquiète un peu ces 50%.

    Si je compare à un S.G.B.D. sa voudrait dire que c'est se tromper sur des manipulations et transmissions d'informations avec la même probabilité que pile ou face...

    Mais comme développer n'est pas que sa.

    Le cognitif de l'automate c'est un peu l'analyseur lexicale et l'analyseur grammatical. Exemple, C++ avec les .h et .cpp délimite certaines choses. Mais pas toujours le sens dans le cadre de modèle d'exploitation pré-établi, se qui introduit les degrés de libertés et de sécurités. Il y va de même pour Java. U.M.L. n'ayant pratiquement aucun pouvoir de persuasion sur l'algorithme ou le code source implémenté (qui n'est pas celui du projet). Surement une des lacunes du modèle et modélisation objet.

    Mais cela reste mon avis perso. Tout comme Jar2Exe, Launch4j et JVM.