Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants: M.-C. Gaudel et A. Denise Plan Contexte Structures combinatoires Test statistique et qualité de test Nouelle approche du test statistique Tirer des chemins Optimiser la qualité de test Validation de l approche Le prototype AuGuSTe Résultats expérimentaux Bilan et Perspecties Les structures combinatoires décomposables Contexte La spécification de structures combinatoires consiste en un ensemble de règles de production construites à partir: d objets de base: (de taille et atome (de taille d opérateurs: union(+, produit(x, sequence, etc. de contraintes de cardinalité Exemples: Arbre binaire complet non ide: A= F+ AxA où F est l atome de base représentant une feuille Séquence de 3 à 5 feuilles: S= Sequence(F,Card=3..5 Les structures combinatoires décomposables Résultats théoriques sur la génération aléatoire uniforme de telles structures [Flajolet,Zimmermann,VanCutsem,99] Complexité en n*log n pour des structures combinatoires de taille n Complexité linéaire dans certains cas particuliers Outils disponibles pour l enironnement MuPAD: Le package CS [Corteel, Denise,Dutour,Sarron,Zimmermann] Le package MuPAD-Combinat [Thiery & al] Le test de logiciel Objectif: trouer des fautes/erreurs dans les programmes Comment? En exécutant le programme sur un ensemble de données qu on appelle jeu de test. Les difficultés: Trouer les bons jeux de test Exécution et dépouillement Quand arrêter les tests (critère? 5 6
Sélection d un jeu de test? Le test fonctionnel (boîte noire: sélection basée sur une spécification du système Ce que le système derait faire Le test structurel (boîte de erre: sélection basée sur le programme i.e. on s intéresse à différents chemins d exécution Ce que le programme fait et comment Le test statistique (ou aléatoire: sélection aléatoire (uniforme ou opérationnelle dans le Sélection d un jeu de test structurel/fonctionnel Pour sélectionner un jeu de tests, on part: D une modélisation du système/programme D un critère de test adapté à cette modélisation Exemples: Spécification algébriques / Couerture des axiomes Système à transitions étiquetées / Couerture des arcs Texte du programme / Couerture des instructions domaine des entrées du programme 8 Exemple: esttrie(tab,t Exemple: esttrie Spécification: le programme prend en entrée un tableau tab d au plus 6 entiers et un nombre t 6. Si les t premières aleurs du tableau tab sont triés en ordre croissant, alors il retourne rai. Si les t premières aleurs du tableau tab ne sont pas triés en ordre croissant, alors il! " #" # $ $ $ retourne faux. 9 Pourquoi le test statistique? Aantages: Possibilité de faire du test plus intensif qu aec les autres méthodes Inconénients: Mauaise couerture des cas particuliers (ex: cas d exception Solution? Le combiner aec une autre méthode de test [Théenod-Fosse,Waeselynck,99]. Qualité d un test statistique [TF,Wa] Soit E l ensemble des éléments à courir N le nombre de tests La qualité de test q N est la probabilité minimale d un élément de E d être couert lors des N tests q N =-( (- p min N où p min = min{p(e, e E} Pour maximiser q N, il faut maximiser p min Une solution (pas toujours possible: Tirage uniforme dans E
Relation entre N et q N [TF,Wa] Le test Statistique Structurel [TF,Wa] q N =-( (- p min N Si je choisis de faire N tests, quelle sera ma qualité de test q N? Si je désire atteindre une qualité de test q N, combien de tests suis-je censé effectuer? & & % Aec p 3 min {,} Construction d une distribution sur le domaine des entrées qui: Maximise la qualité de test donc la probabilité minimale d atteindre un élément du critère de couerture structurel considéré N écarte aucun point du domaine d entrée Aantages: Bons résultats expérimentaux Inconénients: Distribution déterminée de manière empirique dans certains cas Objectif de cette thèse Méthode de test statistique: qui s applique à différents types de modélisation représentable sous forme de graphes, qui optimise la qualité de test par rapport à un critère donné, qui est automatisée Nouelle approche pour le Test Statistique Apport possible des structures combinatoires pour le test 5 Nouelle approche pour le Test Statistique Test et structures combinatoires Tirage aléatoire de chemins L ensemble des chemins d un graphe peut se représenter facilement sous forme d une spécification de structures combinatoires Génération aléatoire de complexité linéaire étapes: Tirer un ensemble de chemins adéquat Passer des chemins aux données d entrée qui permettent de les parcourir Première étape: Tirer un ensemble de chemins tel que la qualité de test soit optimale Remarque: Idéalement, tirage parmi tous les chemins du graphe. En pratique, tirage dans un sous-ensemble de chemins: la présence de circuits dans le graphe implique une infinité de chemins. En pratique, on limite la longueur n des chemins. 8 3
Exemple: quel n choisir? Graphe et structure combinatoire Longueur du chemin élémentaire le plus long: Atomes= arcs Séquence d arcs= chemin e 3 5 6 Choix de n pour la suite: Nombre de passages dans la boucle entre et 3 5 chemins de longueur à considérer S=.S +.e.c.e C= e.e + e 3.B.e 6 B= e.i + I= e 5.B S e e e 3 5 e e 6 e e C 9 Génération: dénombrement Génération: tirage C B I S 3 5 6 3 8 3 9 5 S=.S +.e.c.e C= e.e + e 3.B.e 6 B= e.i + I= e 5.B e C 3 e S 3 / S /3? /3? S 6 e C e S 5 e C e / e e 3 B e 6 e e e e e 3 5 e e 6 e e e e e e e 3 e 6 e e e 3 e e 5 e 6 e 3 chemins issus de S de longueur Longueur= e Tirage de chemins Si le critère consiste à courir un ensemble de chemins : on construit la structure combinatoire correspondante Exemples: tous les chemins passant par l arc a, tous les chemins passant par le sommet B3 puis par le sommet I Si le critère consiste à courir un ensemble d éléments quelconque :??? Exemples: tous les sommets, tous les arcs Comment un tirage uniforme parmi des chemins peut-il assurer une bonne qualité de test pour une couerture d autres éléments? 3 Soit N le nombre de tests à générer.. Tirer aléatoirement, selon une distribution adéquate, N éléments e,,e N parmi les éléments à courir. Pour chaque e i, tirer aléatoirement et uniformément un chemin (de longueur n parmi ceux qui passent par e i.
Exemple: Exemple: Critère: tous les sommets carrés S={I,I,I,I5} 5 chemins de longueur. Distribution uniforme p(i= / +/ /5 +/ +/ /5 =/ =.35 De même: p(i=/, p(i=, p(i5= p min =p(i=.35 On n obtient pas le p min optimal! 5 Critère: tous les sommets carrés S={I,I} 5 chemins de longueur. Distribution uniforme p min =.5 Comment pourrais-je maximiser automatiquement le p min? 6 Probabilité d un élément La probabilité p(e d un élément e d être atteint lors d une exécution est: p(e=p (e+p (e Probabilité de tirer l élément (étape : p (e Un chemin passant par cet élément a été tiré (étape : (' = ' ' (' où e est l élément qui a été tiré (étape, c(e est le nombre de chemins passant par e c(e,e est le nombre de chemins passant par e et e Calcul des c(e,e : exemple de c(b3,i e e 3 e 5 e 6 e X A e e e A On en déduit la structure combinatoire puis la fonction 8 de dénombrement e e 3 e 5 e e 5 e 6 e Une manière de définir la distribution Pour optimiser la qualité de test, il faut maximiser p min. Or pour tout e de E, (' % + ' ' (' Maximiser p min sous les contraintes S pmin = % + + % + + = + + + 9 On résout ce problème d optimisation par un simplex et on en déduit les p (e i. 3 5
Exemple: Des chemins aux entrées Critère: tous les sommets carrés Distribution uniforme pour les chemins 5 chemins de longueur. % = = * = 3 Deuxième étape: Déterminer les entrées permettant d exécuter les chemins tirés Construction des prédicats associés aux chemins tirés (algorithme classique. Résolution des prédicats (problème indécidable dans le cas général 3 Exemple: Spécification: t [..6] Chemin I-C-I-I5 Prédicat calculé: t Ce chemin est faisable Entrées possibles: t= tab arbitraires Chemin I-C-B3-I5 Prédicat calculé: (t> (t - Ce chemin est infaisable Des chemins aux entrées Plusieurs cas possibles pour la résolution de chaque prédicat:. Le prédicat a une solution: c est notre donnée de test. Le prédicat n a pas de solution: le chemin associé est infaisable 3. Le prédicat est indéterminé Le calcul théorique des p (e i ne prend pas en compte les chemins infaisables 33 3 Application au test statistique structurel Validation de l approche Modèle: graphe de contrôle du programme Critères: Tous les chemins de longueur n Tous les enchaînements Toutes les instructions Un prototype: AuGuSTe Version : distribution basée sur les dominances Version : distribution basée sur la résolution du système linéaire : Automated Generation of Statistical Tests 36 6
,/ +!&%%,( -( ( (%!&!(. &!/(%!&- -& (!-! (( -(% - 3-!% -!-! (( -(% 6 ((5 / %!!-! 3 Les expériences Objectifs: alider l approche Comparer à l approche du LAAS Éaluer la stabilité Passage à l échelle possible? Comment? En utilisant les programmes et les mutants fournis par le LAAS Plus de exécutions réalisées sur plus 9 mutants 38 Les programmes Éaluation par mutation des méthodes de test Nom Fct Fct Fct3 Fct #lignes 3 3 35 #chemins 9 33 ( infini #blocs 9 9 #arcs #choix 5 Principe: détecter le maximum de mutants «non équialents» La proportion de mutants détectés est appelée score de mutation La notion d équialence dépend en partie de l enironnement d exécution des tests Exemple: présence de ariables non initialisées Mutants équialents différents 39 Les programmes et leurs mutants Les programmes et leurs mutants Nom #mutants #mutants équialents Nom #mutants #mutants équialents Fct Fct Fct3 Fct 65 58 6 58 6+9 +3 9+9 Fct Fct Fct3 Fct 65 58 6 58 +3 6+9 +3+6 9+9+9
Critère de couerture, q N et N Nom Fct Fct Fct3 Fct Critère choisi Tous les chemins Tous les chemins Tous les chemins Tous les enchaînements #tests 8 5x5 5x85 Qualité de test isée:.9999 Fct3 et Fct: pour s assurer de la stabilité, il y a 5 séries de tests. 3 Résultats pour Fct, Fct et Fct3 Fct3 Fct Fct Min Moy Max Uniforme.55.698.85 Score de mutation LAAS AuGuSTe.995.9989 Fct3: Reflète la dépendance is-à-is de l enironnement Lié aux ariables non initialisées détectables par un bon compilateur Graphe de contrôle de FCT Première expérience aec Fct NB_VOIES=8 NB_VOIES=9 Choix de n? n 6+ 9 soit n 3 NUM_VOIE < NB_VOIES SE_VOIE_EN_TEST=TRUE Soit plus de 3 chemins à considérer chemins dont 99,98% de chemins infaisables AuGuSTe (: p min =.5 Mais en pratique tous les enchaînements ne sont pas couerts AuGuSTe (: p min =.5 Mais en pratique, tous les enchaînements ne sont pas couerts Distribution sur les éléments tirage uniforme parmi les chemins Présence d un nombre considérable de chemins infaisables 5 6 p min NB_VOIES=8 Résultats pour Fct: expérience NB_VOIES=9 NUM_VOIE < NB_VOIES Graphe équilibré => Tirage uniforme parmi les chemins SE_VOIE_EN_TEST=TRUE Deux sous-graphes indépendants mauaise couerture Idée: Transformation automatique de la structure combinatoire Score de mutation Min Moy Max Uniforme.895 Nc.95 LAAS.9898.99.995 AuGuSTe(.96.93.985 AuGuSTe(.985.985.985 Eniron 6 chemins de longueur 3 Eniron 5% de chemins infaisables AuGuSTe (: p min =.33 Mais en pratique, tous les enchaînements ne sont pas forcément couerts AuGuSTe (: p min =.93 En pratique, tous les enchaînements sont couerts 8 8
Bilan et Perspecties Contribution Première utilisation des méthodes de tirage uniforme dans les structures combinatoires pour le test de logiciel Définition une méthode générale et automatisée pour le test statistique Importante campagne d expériences Expériences aux résultats positifs: Efficacité comparable à celle du LAAS et automatisation Approche stable Passage à l échelle possible 5 Perspecties (/ Adapter/améliorer la distribution des p (e i en fonction des différents problèmes rencontrés: Les chemins infaisables Méthodes d apprentissage [Sebag & al] Méthodes probabilistes [Maume & al] Borner la longueur des chemins peut masquer des erreurs Méthode Boltzmann [Duchon,Flajolet,Louchard,Schaeffer,] Prendre en compte plus d aspects sémantiques Exemple: les cas exceptionnels doient-ils être autant testés que les cas standards? 5 Perspecties (/ Mieux exploiter les structures combinatoires pour limiter les chemins infaisables Analyse statique Meilleure distribution Application à d autres techniques Test statistique fonctionnel Model checking 5 Modification de la structure combinatoire Des questions? 53 5 9
Distribution basée sur les dominances (/ Distribution basée sur les dominances (/ Classe d équialence Une classe A domine une classe B, si tout chemin qui passe par les éléments de B passe par les éléments de A I I,C,I5 B3 I 55 56 Choisir un représentant des classes aux feuilles S={I,I} Rajouter éentuellement à S un représentant de la classe racine. S={I,I,I} Faire du tirage uniforme dans l ensemble S. p min =. I I,C,I5 B3 I