Passer à la navigation principale Passer à la recherche Passer au contenu principal

Toward better understanding and supporting of Continuous Integration (CI) practices

Traduction de l'intitulé de la thèse: Vers une meilleure compréhension et application de l’Intégration Continue (IC)
  • Islem Saidani

Thèses et mémoires: Thèse de doctoratDoctorat en génie: Génie

Résumé

La croissance rapide de l’industrie du développement de logiciels pose de nouveaux défis aux développeurs de logiciels, car ils doivent répondre rapidement aux besoins des utilisateurs. En effet, les systèmes logiciels subissent de fréquentes modifications pour ajouter de nouvelles exigences, corriger les bogues découverts et s’adapter aux nouveaux changements technologiques et environnementaux. Ainsi, s’assurer que ces changements sont effectués de manières contrôlée est d'une importance cruciale. À cette fin, les entreprises de développement de logiciels ont massivement adopté l’Intégration Continue (IC) afin de réduire les risques d’erreur et d’augmenter la vitesse déploiement pour obtenir un avantage concurrentiel. L’IC vise à aider les développeurs à intégrer les changements de code constamment et rapidement grâce à des processus de construction et de test automatisés. Néanmoins, comme toute solution, l’adoption de l’IC induit plusieurs défis tels que la perte de productivité et les retards de livraison. Dans le cadre de cette thèse, nous visons à soutenir l’adoption de l’IC en abordant deux problèmes principaux. En premier lieu, nous nous attaquons au manque de connaissances empiriques sur l’adoption et les défis de l’IC. Ensuite, nous abordons le problème de construction lié à sa longue durée et à son échec. Tout d’abord, nous avons examiné de manière empirique les défis auxquels sont confrontés les développeurs sur la base des discussions dans Stack Overflow, un forum Questions & Réponses populaire. Grâce à cette étude, nous avons révélé que la construction logicielle est un obstacle majeur auquel les développeurs sont confrontés lorsqu’ils utilisent l’IC. Deuxièmement, nous avons montré, à travers une étude empirique, comment l’adoption de l’IC peut avoir un impact sur les efforts d’assurance qualité. Nous avons constaté que l’adoption de l’IC a le potentiel de changer la façon dont les développeurs appliquent la refactorisation du code. Ensuite, nous nous sommes attaqués au problème d’échec de construction, en développant deux solutions: la première est basée sur l’adaptation de l’ algorithme génétique NSGA-II, une approche de programmation génétique multi-objectifs. Cette approche permet de générer des règles à partir des données historiques des constructions et dont la sortie prédit si la construction en question est plus susceptible de réussir ou d’échouer. La deuxième approche utilise des réseaux de neurones récurrents basés sur la mémoire à long court terme LSTM-RNN pour construire des modèles de prédiction des résultats de construction. Le problème est composé d’une seule série de résultats de construction et un modèle doit apprendre de la série d’observations passées pour prédire le prochain résultat de construction dans la séquence. De plus, nous avons adapté l’algorithme génétique mono-objectif GA pour régler les hyper-paramètres de nos modèles LSTM. Les résultats de validation révèlent que les deux approches proposées ont montré de meilleures performances prédictives que les techniques existantes. Enfin, nous avons introduit un nouvel outil automatisé, basé sur l’adaptation de l’algorithme génétique multi-objectifs SPEA2, pour détecter les changements qui ne nécessitent pas de déclencher la construction, c’est-à-dire qui peuvent être ignorés. Cette approche a surpassé les techniques existantes et a été approuvée par une évaluation industrielle.
Date9 août 2022
langue originaleAnglais américain
Établissement diplômant
  • École de technologie supérieure
SuperviseurAli Ouni (Directeur(-trice))

Mots-clés

  • intégration continue
  • construction logicielle
  • génie logiciel basé sur la recherche heuristique
  • génie logiciel empirique
  • apprentissage approfondi

Citer cette ressource

'