• Aucun résultat trouvé

Validation de l’implémentation de Pacogen

6.7 Une contribution outillée : Pacogen

6.7.2 Validation de l’implémentation de Pacogen

Le processus de validation de l’outil s’est fait en deux temps :

– vérification de la correction du modèle à contraintes du modèle de features – vérification que toutes les paires valides étaient bien couvertes

Pour valider l’outil, nous nous sommes appuyé sur un outil déjà existant : SPLCATool, proposé Johanssen [JHF12a].

6.7.2.1 Validation du modèle à contraintes du modèle de features

La validation des contraintes utilisateurs qui représentent la sémantique des modèles de features s’est déroulée en deux parties : une validation unitaire puis une validation

plus générale à l’aide des modèles de features entiers.

Lors de la validation unitaire, nous avons manuellement testé les différentes con- traintes utilisateurs que nous avons créées (and, or, xor...) et nous avons vérifié que le comportement de ces opérateurs était conforme à la sémantique des opérateurs du modèle de features présenté chapitre 3.

Ensuite, nous avons comparé le nombre de configurations obtenues grâce à notre moteur à contraintes et celui obtenu par SPLCAtool. Cette comparaison a été réalisée sur 10 modèles de features de différentes tailles issus du référentiel de modèle SPLOT. La comparaison des résultats obtenus avec ceux fournis par SPLCATool nous a permis de valider la modélisation. Les modèles choisis sont de tailles modestes (inférieure à 50 features) car l’énumération des configurations est un processus coûteux avec les technique de programmation par contraintes.

6.7.2.2 Validation des configurations pairwise

Une fois le modèle à contraintes validé, nous avons vérifié que la solution générée couvre bien pairwise. c’est-à-dire que toutes les paires valides du modèle étaient bien couvertes. Pour couvrir cette dimension du problème nous avons choisi de comparer le nombre de paires valides présentes dans la solution fournie par Pacogen et le nombre de paires valides présentes dans la solution fournie par SPLCATool. Cette méthode permet de vérifier que toutes les paires sont bien présentes dans la solution retournée par Pacogen.

L’utilisation conjointe de ces deux validations : la comparaison des deux moteurs de raisonnement sur les modèles de et le dénombrement du nombre de paires obtenues dans les deux jeux de configurations fournis par les deux outils nous permet de nous assurer de la correction de Pacogen.

6.8

Discussion

Dans ce chapitre nous présentons le cœur de la contribution de cette thèse. Une ap- proche basée sur la programmation par contraintes pour la sélection de configurations de test qui respectent le critère pairwise. L’utilisation des techniques de programmation par contraintes permet de proposer une solution déterministe. Pour un même ensemble de paramètres d’entrées, les configurations générées resteront identique. De plus nous montrons comment utiliser les mécanismes de minimisations offerts par les solveurs à contraintes pour obtenir une solution de la plus petite taille possible.

L’approche proposée permet de minimiser la taille de la solution selon un contrat de temps. Ce processus de minimisation permet d’obtenir la plus petite des solutions exis- tantes. Cependant, il est complexe de prouver que la solution trouvée est la plus petite. En effet, la sélection de configurations de test qui couvrent le critère pairwise est un problème à la combinatoire très importante : il y a souvent plusieurs millions de façons d’arranger les paires valides. Ces millions de façons d’arranger les paires mènent à la

création d’un arbre de recherche très grand. Pour prouver qu’une solution est la plus petite existante il faut parcourir tout l’arbre de recherche, ce qui peut être très long pour de grands modèles de features.

Configuration et évalutation

expérimentale de Pacogen

Dans le chapitre précédent, nous avons présenté une solution basée sur les techniques de programmation par contraintes pour la sélection de configurations de test respectant le critère Pairwise. Cette approche fournit un processus de résolution reproductible et intègre une procédure permettant de minimiser le résultat obtenu. L’utilisation de cette approche nécessite la définition par l’utilisateur de différents paramètres présentés chapitre 6. Dans ce chapitre, nous classons ces paramètres en deux catégories. Nous proposons des méthodes pour déterminer la taille de la Matrice Solution et le temps de minimisation. Puis nous déterminons expérimentalement quelle combinaison de pa- ramètres utiliser (tri des paires, fonction de minimisation et technique d’énumération) afin que Pacogen produise des configurations de test de taille minimale. Nous comparons Pacogen aux autres outils de l’état de l’art : SPLCATool, MosoPolite et CASA présentés sections 4.2.3 et 4.2.4. Ces expériences montrent que Pacogen retourne un nombre de configurations plus petit que SPLCATool sur 79% des modèles évalués et dans 18% des cas un résultat de taille identique. La comparaison entre Pacogen et MosoPolite montre que Pacogen donne un résultat de plus petite taille dans 100% des cas. La comparaison avec Casa montre que les deux outils ont des résultats similaires. Sur 17 % des modèles (37 modèles), CASA retourne un nombre de configurations plus petit que Pacogen. Sur 15 % des modèles (34 modèles) Pacogen retourne un nombre de configurations plus petit que CASA. Pour les autres modèles les deux outils retournent le même nombre de configurations.

7.1

Configuration optimale de Pacogen

On distingue deux types de paramètres : les paramètres de classe 1, où le choix d’une mauvaise valeur peut empêcher Pacogen de trouver une solution, et les paramètres de classe 2 qui améliorent le processus de résolution en permettant de trouver plus rapidement des Matrices Solutions de plus petites tailles.

Figure 7.1 – Modèle de features des paramètres de Pacogen