Thèse soutenue

Le logiciel de prédiction des défauts logiciels basé sur les graphes
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Abir M'Baya
Direction : Nejib Moalla
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 06/07/2022
Etablissement(s) : Lyon
Ecole(s) doctorale(s) : École doctorale en Informatique et Mathématiques de Lyon
Partenaire(s) de recherche : établissement opérateur d'inscription : Université Lumière (Lyon ; 1969-....)
Laboratoire : DISP - Décision et Information pour les Systèmes de Production (Lyon, INSA)
Jury : Président / Présidente : Hervé Panetto
Examinateurs / Examinatrices : Sebti Foufou
Rapporteurs / Rapporteuses : Teresa Goncalves, Virginie Goepp

Résumé

FR  |  
EN

Les applications logicielles modernes sont souvent trop compliquées et sujettes aux défaillances. La prédiction des défauts logiciels alerte sur le risque de défaillance dès les premières étapes du développement et aides les développeurs à planifier leurs efforts de test et à garantir une meilleure qualité logicielle. Actuellement, les outils statistiques traditionnels de prédiction des défauts ont montré leurs limites, alors que les techniques basées sur le machine learning ont prouvé leur capacité à mieux capturer les propriétés du code. Cependant, leurs performances varient en fonction de la qualité des données d'entrée. Or, les langages et frameworks des applications modernes présentent de plus en plus de complexité, il est indispensable de fournir une représentation d'analyse de code puissante capable d'explorer en profondeur les les artefacts du code source et de capturer les informations utiles à partir des différents niveaux d'abstraction des programmes. Pour ces raisons, de nombreux travaux ont été conduits par la communauté scientifique afin de proposer de nouveaux outils de prédiction de défauts logiciels, qui sont meilleurs que les précédents, mais avec un niveau de performance qui n’est pas encore suffisant.Dans cette thèse, nous proposons une nouvelle technique de prédiction des défauts logiciels basée sur l'apprentissage en profondeur, qui améliore les approches existantes, couteuses en temps et imprécises puisqu’elles ne permettent pas d’extraire les propriétés sémantiques des programmes. Récemment, les chercheurs ont commencé à exploiter des algorithmes d'apprentissage en profondeur basés soit sur des représentations arborescentes de programmes, soit sur des représentations graphiques représentant les flux d'exécution des programmes. Bien que meilleurs, ces modèles ne permettent pas encore de couvrir tous les types de défauts tels que ceux liés aux dépendances intraprocédurales, malgré leur importance.Pour construire un modèle de prédiction efficace, il est nécessaire d’alimenter le processus d’apprentissage avec suffisamment de données historiques relatives au projet. Par conséquent, pour les projets récents ne disposant pas de données suffisantes, le modèle de prédiction doit se construire en se basant sur les données historiques d'autres projets similaires. Afin de sélectionner ces projets, les approches traditionnelles se basent sur des comparaisons statistiques. Cependant, celles-ci ne suffisent pas à capturer les différences importantes entre les projets sur plusieurs aspects tels que l'architecture, l'expérience du développeur, le style de codage, la sémantique, etc., et rendent la tâche de sélection plus complexe.Dans ce travail de thèse, le focus a été mis sur deux objectifs principaux : Premièrement, afin de combler l’écart entre les dépendances des programmes et les caractéristiques du code de prédiction des défauts, nous proposons un algorithme d'apprentissage en profondeur de bout en bout pour apprendre de manière plus complète la représentation du code source incluant différents niveaux d'abstractions tels que la syntaxe, la sémantique, les dépendances et ainsi construire un classifieur de prédiction de défauts plus performant, qui prend en compte toutes ces caractéristiques complexes. Les résultats expérimentaux montrent que notre approche améliore considérablement les approches existantes de prédiction des défauts. Deuxièmement, nous proposons une nouvelle méthode pour mieux sélectionner les projets similaires qui seront utilisés pour leurs données historiques, en se basant sur un apprentissage en profondeur des caractéristiques des projets. En évaluant notre méthode sur des projets open source, les résultats montrent qu'une sélection rigoureuse des projets améliore sensiblement les performances des techniques existantes et même notre approche de prédiction proposée, lorsqu’elle n’inclut pas de stratégie de sélection des projets externes d’apprentissage.