Utilisation des Structures Combinatoires pour le Test Statistique. Contexte. Plan. Le test de logiciel. Les structures combinatoires décomposables



Documents pareils
Resolution limit in community detection

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Chp. 4. Minimisation d une fonction d une variable

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Programmation linéaire

CH.6 Propriétés des langages non contextuels

MIS 102 Initiation à l Informatique

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Algorithmes de recherche

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Plus courts chemins, programmation dynamique

Définitions. Numéro à préciser. (Durée : )

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Cours de Master Recherche

GPA770 Microélectronique appliquée Exercices série A

Annexe 6. Notions d ordonnancement.

Model checking temporisé

IFT3245. Simulation et modèles

Système de contrôle du trafic d une ligne de métro Dossier de tests

Programmation Par Contraintes

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Big Data et Graphes : Quelques pistes de recherche

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Formula Negator, Outil de négation de formule.

chapitre 4 Nombres de Catalan

L exclusion mutuelle distribuée

Introduction à la théorie des graphes. Solutions des exercices

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

INF601 : Algorithme et Structure de données

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Chapitre 5 : Flot maximal dans un graphe

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

SIGNAUX NUMERIQUES ET MODULATIONS NUMERIQUES

Les structures de données. Rajae El Ouazzani

chargement d amplitude variable à partir de mesures Application à l approche fiabiliste de la tolérance aux dommages Modélisation stochastique d un d

Big Data et Graphes : Quelques pistes de recherche

Évaluation et implémentation des langages

Architecture des Systèmes d Information Architecture des Systèmes d Information

Programmation linéaire

Formats d images. 1 Introduction

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

LES DECIMALES DE π BERNARD EGGER

Jean-Philippe Préaux

Pi, poker et informatique ; une «épuisante» alliance pour des projets en mathématiques

Quatrième partie IV. Test. Test 15 février / 71

LE PROBLEME DU PLUS COURT CHEMIN

Cours 1 : Qu est-ce que la programmation?

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Rétablissement d un réseau cellulaire après un désastre

Eléments de Théorie des Graphes et Programmation Linéaire

Bases de programmation. Cours 5. Structurer les données

FIMA, 7 juillet 2005

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Qu est-ce qu une probabilité?

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

UE Programmation Impérative Licence 2ème Année

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Arbre de probabilité(afrique) Univers - Evénement

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

ALGORITHMIQUE ET PROGRAMMATION En C

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.


Chapitre 7. Récurrences

Rupture et plasticité

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

données en connaissance et en actions?

EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (43) Date de publication: Bulletin 2009/25

Dualité dans les espaces de Lebesgue et mesures de Radon finies

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Recherche dans un tableau

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

La classification automatique de données quantitatives

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Création intuitive des éléments d un paysage

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Correction du baccalauréat ES/L Métropole 20 juin 2014

Une nouvelle approche de détection de communautés dans les réseaux sociaux

Utilisation des tableaux sémantiques dans les logiques de description

La charge électrique C6. La charge électrique

Cours 1 : introduction

Initiation à LabView : Les exemples d applications :

Modélisation et Simulation

Transcription:

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