Thèse soutenue

Examinons la matrice : s'appuyer sur la variabilité pour spécialiser les systèmes et les suites de tests

FR  |  
EN
Auteur / Autrice : Paul Temple
Direction : Jean-Marc Jézéquel
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 07/12/2018
Etablissement(s) : Rennes 1
Ecole(s) doctorale(s) : École doctorale Mathématiques et sciences et technologies de l'information et de la communication (Rennes)
Partenaire(s) de recherche : ComuE : Université Bretagne Loire (2016-2019)
Laboratoire : Institut de recherche en informatique et systèmes aléatoires (Rennes) - DiverSe

Mots clés

FR  |  
EN

Mots clés contrôlés

Mots clés libres

Résumé

FR  |  
EN

Aujourd'hui, les logiciels se doivent d'être efficaces, rapide à exécuter, etc. Ils peuvent être configurés dans le but de répondre à des besoins spécifiques donnés par l'utilisateur. De fait, chaque configuration donne lieu à un système unique, spécialisé pour des besoins précis. Le nombre de configurations possible devient tellement grand qu'il est impossible de générer tous les systèmes associés résultant en une impossibilité à évaluer leurs performances dans leur globalité. En plus de cela, différentes exécutions des systèmes sont souvent nécessaire, en utilisant différents cas de tests qui représentent différents contextes, pour évaluer correctement ces performances. Il y a donc un enjeu en terme d'énergie et de temps à pouvoir cibler correctement les configurations intéressantes pour un utilisateur ainsi que les cas de tests pertinents pour évaluer les performances d'un système. A partir de cette première analyse, deux dimensions émergent: la sélection de configurations de systèmes qui permettent par la suite de générer des systèmes respectant les besoins utilisateurs et, d'autre part, la sélection de cas de tests qui permettent d'observer les performances des systèmes dans différents contextes. Nous proposons dans cette thèse de représenter ces deux dimensions comme une matrice (de performance) dans laquelle : une dimension représente les systèmes sélectionnés (avec leur configuration) tandis que l'autre représente l'ensemble des cas de tests à exécuter sur chaque système. Chaque cellule de la matrice est alors le résultat de l'exécution d'un programme sur un cas de test. Les contributions principales de cette thèse sont : premièrement, l'utilisation de techniques d'apprentissage automatique pour spécialiser une ligne de produit logiciels visant à réduire l'espace de configuration pour sélectionner plus facilement une configuration qui satisfasse les besoins utilisateurs. Les utilisateurs doivent donc être capable d'exprimer leurs besoins de telle sorte que l'on se place dans un problème de classification binaire (i.e., permettant de dissocier les configurations qui ont la capacité à respecter ces besoins et les autres configurations qui n'ont pas l'air de pouvoir). Après cela, une technique d'apprentissage automatique est utilisé pour créer un modèle mathématique séparant les deux classes permettant par la suite de spécialiser la ligne de produits logiciel et de proposer des configurations partielles réduisant l'espace de configuration. Au final, ce travail permet de réduire la première dimension de la matrice qui traite des systèmes. Deuxièmement, nous proposons une nouvelle méthode permettant d'évaluer la capacité d'une suite de tests à montrer des différences de performances significatives exécuter par différents programmes qui présentent la même fonctionnalité. Cette méthode peut être utilisées dans différents cas, par exemple pour savoir si un nouveau cas de tests doit être ajouté ou non à une suite de tests existantes or bien pour réduire une suite de tests existante. Cette méthode vise à réduire la seconde dimension de la matrice.