Une recherche identifie des bugs dans les logiciels scientifiques populaires

La plateforme logicielle incontournable utilisée par les scientifiques pour faire leur travail pourrait devenir moins problématique, grâce aux recherches de l’Université de l’Alberta.

Une étude complète des vulnérabilités de Jupyter Notebook, une application Web open source populaire que les chercheurs utilisent pour explorer et analyser leurs données d'étude, identifie les bugs les plus courants du logiciel, une première étape vers son amélioration.

« En comprenant les faiblesses de Jupyter Notebook, des outils plus intelligents et plus fiables peuvent être créés pour les utilisateurs et les développeurs », déclare Thibaud Lutellier, professeur adjoint d'informatique et de mathématiques au Campus Augustana et auteur principal de l'étude publiée sur le site. arXiv serveur de préimpression.

Pour soutenir la recherche dans des secteurs clés comme les soins de santé, la finance et la technologie, l’exactitude de la science des données est essentielle, ajoute-t-il, soulignant qu’au Canada, les investissements dans ce domaine ont presque doublé en 10 ans, avec des estimations allant de 15 à 21 milliards de dollars en 2008 à 29 à 40 milliards de dollars en 2018.

Largement utilisé dans la science des données et l'apprentissage automatique, Jupyter Notebook crée un document unique et interactif qui combine du code en direct, des résultats et des notes explicatives pour les études de recherche, ce qui en fait un outil tout-en-un efficace. Il offre également plus de flexibilité que les configurations de programmation traditionnelles, car les données peuvent être chargées de manière non séquentielle.

« C'est une façon interactive de programmer, d'explorer et d'interpréter des données, sans avoir à tout recharger ; on peut rembobiner un peu, ce qui le rend très pratique », explique Lutellier.

Mais cette fonctionnalité unique rend également Jupyter Notebook vulnérable aux bugs, note-t-il. « Il est beaucoup plus facile de casser accidentellement quelque chose dans le code ou de configurer le système de manière incorrecte, car vous modifiez les choses tout le temps. »

Et comme un large éventail d'utilisateurs, dont beaucoup ne sont pas des experts en informatique, peuvent accéder au logiciel, cela augmente le risque de défauts et de mauvaises configurations, explique Lutellier. Ces vulnérabilités peuvent entraîner des problèmes tels que la perte de données ou une interprétation inexacte des résultats, et peuvent même conduire à des attaques de ransomwares, note-t-il.

Pour découvrir quels facteurs contribuent aux bugs, les chercheurs ont collecté et analysé près de 9 000 Jupyter Notebooks de GitHub et Kaggle, deux principaux « classeurs » en ligne pour les développeurs de logiciels.

Lutellier, Harsh Darji, participant à la recherche de premier cycle à Augustana, et des chercheurs de l'Université Concordia et de l'ETH Zurich ont exploré si certaines caractéristiques, telles que la complexité d'un cahier ou le nombre de personnes qui y ont travaillé, étaient liées à davantage de bugs. Ils ont également créé une taxonomie détaillée des bogues pour classer les différents types trouvés, et examiné les mises à jour et les rapports de sécurité pour déterminer les risques potentiels liés à l'utilisation de ces ordinateurs portables.

Leur évaluation a montré que le fait que plusieurs personnes travaillent ensemble sur le même ordinateur portable était plus susceptible de produire des bugs, ce qui est surprenant, selon Darji. « Nous pensions que le problème serait la complexité du code, mais nous avons découvert que si une équipe de personnes travaille sur le même morceau de code avec Jupyter Notebook, le code est plus susceptible d'être erroné. Plus il y a de collaborateurs, plus il est probable que des bugs soient introduits. »

La recherche a également révélé deux principaux types de bugs : ceux introduits lorsque les utilisateurs installent ou configurent incorrectement leurs ordinateurs portables et une utilisation incorrecte des fonctionnalités intégrées.

En examinant l'écosystème Jupyter Notebook, ses vulnérabilités montrent qu'il existe actuellement un compromis entre convivialité et sécurité, suggère Lutellier. « Il est flexible et plus rapide que d'autres logiciels, mais le code qui y est écrit sera probablement beaucoup plus bogué et il sera plus difficile de travailler en collaboration. Cela soulève des inquiétudes quant à la reproductibilité, à la maintenabilité et à la sécurité des projets réalisés sur Jupyter Notebook. »

Les conclusions de l'étude soulignent la nécessité pour les développeurs de logiciels et les ingénieurs en IA de créer de meilleurs outils de gestion de configuration et de travail collaboratif autour de Jupyter Notebook, explique Lutellier, dont les recherches se concentrent désormais sur le développement d'un nouvel outil d'IA pour détecter automatiquement ces bogues.

Les fournisseurs devraient améliorer les outils de support pour aider les grandes équipes à utiliser les ordinateurs portables en toute sécurité, et en tant qu'utilisateurs, les data scientists doivent travailler avec soin et mieux utiliser les outils collaboratifs et les systèmes de détection de bugs existants, dit-il.

« En réduisant ces erreurs, les notebooks deviennent plus fiables pour tout le monde, aidant les data scientists à se concentrer sur la résolution des problèmes plutôt que sur la correction des erreurs de codage. »

Newsletter

Rejoignez notre newsletter pour des astuces chaque semaine