Deux exemples de travaux sur ce thème

Slides:



Advertisements
Présentations similaires
Décomposer un nombre en employant les exposants à la base 10.
Advertisements

Primary French Presentation 2 Saying How You Are.
Théorie des graphes.
Algorithmes et structures de données avancés
Calcul géométrique avec des données incertaines
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
RECONNAISSANCE DE FORMES
Utilisation des Structures Combinatoires pour le Test Statistique Sandrine-Dominique GOURAUD Équipe Programmation et Génie Logiciel, L.R.I. Co-encadrants:
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Résolution structurée des problèmes.
Unité #3 Analyse numérique matricielle Giansalvo EXIN Cirrincione.
Equipe optimisation TempoSoft
Colloque Traitement et Analyse de séquences : compte-rendu
Visualisation d’information interactive 5 : Graphes
Cours dinformatique théorique INF f5 Alain Lecomte novembre 2005.
Les démarches de développement
Optimisation de Requêtes
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Chap 1 Grammaires et dérivations.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Création d’un langage d’action pour un logiciel MDA
Algorithmique et Programmation
Algorithmes Branch & Bound
Analyse lexicale Généralités Expressions rationnelles Automates finis
IFT313 Introduction aux langages formels
1 Exercice : longueur d’un mot est-elle paire ?  Test fonctionnel  Quel ensemble de valeur choisir / spécification  Test structurel  Soit le code d’un.
Laboratoire de Bioinformatique des Génomes et des Réseaux Université Libre de Bruxelles, Belgique Introduction Statistics.
L’ensemble microcanonique
Structures de données IFT-2000
Structures de données IFT-2000
Introduction à l’algorithmique
GPA750 Les ateliers multigammes Chapitre 5
IFT Complexité et NP-complétude
CSI3525: Concepts des Languages de Programmation
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Partie II Sémantique.
Calcul des groupes d'homologie d’objets discrets
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Programmation non procédurale Le projet ECOLE 2000
GPA750 – Gestion de Projets
Sensibilisation a la modelisation
Paradigmes des Langages de Programmation
Vers un nouvel empirisme: l’ancien et le nouvel empirisme John Goldsmith Université de Chicago CNRS MoDyCo.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Laboratoire des outils informatiques pour la conception et la production en mécanique (LICP) ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE 1 Petri nets for.
Optimisation de requêtes
Programmation linéaire en nombres entiers
Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN.
Algorithmes Branch & Bound
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
Initiation à la conception des systèmes d'informations
IFT 232 Méthodes de Conception Orientées Objets Introduction.
Recherches locales et méta-heuristiques
Introduction et Généralités sur l’Algorithmique
1 Méthode de “Fast Marching” générique pour “Shape From Shading” E. Prados & S. Soatto RFIA 2006 janvier 2006, Tours.
“Which one” are you talking about?.  Ce, cet, cette, ces  Un article qui est le plus spécifique Les types d’articles…  Un/ une/ des – général  Le/
Structures de données et algorithmes – TP7 Maria-Iuliana Dascalu, PhD
Chap 1 Grammaires et dérivations.
Introduction à la Programmation Orientée Objet
A propos du “Minimal Controllability Problem” C. Commault Département Automatique Gipsa-Lab Grenoble –FRANCE 1 Séminaire GIPSA-Lab 22 octobre 2015.
Clique Percolation Method (CPM)
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Techniques d’Optimisation Chapitre 2: Problème de flôt Dr TARI Abdelkamel Mars 2014.
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
Mise à jour Processus d’agrément. Nouvelles règles  Information sur les programmes recueillie aux 2 ans  réel processus d’amélioration continue de la.
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
© 2004 Prentice-Hall, Inc.Chap 4-1 Basic Business Statistics (9 th Edition) Chapter 4 Basic Probability.
Transcription de la présentation:

« About two instances of Coverage-Based Statistical Testing » Frédéric Voisin

Deux exemples de travaux sur ce thème test statistique « structurel », orienté vers la satisfaction de « critères de couverture » Applicable à différents types de formalismes AUGUSTE: Graphe de flot de contrôle / flot de données pour du test unitaire (programmes C-like) SALLUSTE: description LUSTRE Novembre 2008 Exposé Fortesse

Principes de base Classique: test aléatoire (uniforme ou non) sur les données Avantages: automatisation test intensif possible Intéressant si on connaît la distribution opérationnelle des données Inconvénient: faible couverture de cas « rares », pas de relation avec des critères de couverture (qualité) lié à la réalisation de l’objet sous test, La couverture réelle des tests ne s’améliore pas forcément si on accroît la taille du jeu de test Novembre 2008 Exposé Fortesse

Plus novateur: test statistique structurel ! La « complexité » de la réalisation est prise en compte à travers des « critères de couverture » On introduit un « biais » par rapport à une distribution uniforme des données de manière à ne pas sous-représenter les cas rares. Idées : Plutôt que de faire des tirages uniformes sur des données, on fait du tirage uniforme sur des chemins dans une représentation en graphe (par ex. Chemins d’exécution dans le graphe de flot de contrôle) On pondère les différents éléments du graphe pour aboutir à une uniformité sur les chemins (de longueur donnée) Il existe un outil pratique pour cela: les structures combinatoires Novembre 2008 Exposé Fortesse

Les « structures combinatoires » Structure combinatoire ? un objet atomique ou obtenu en appliquant un opérateur à des objets combinatoires… Objets « décomposables  » construits de manière unique à partir d’objets plus petits Problème de base: étant donné un ensemble d’objets combinatoires et un entier n, engendrer aléatoirement un ou une séquence d’objets de taille n dans cet ensemble. Novembre 2008 Exposé Fortesse

Les « spécifications combinatoires » Un ensemble particulier de règles de constructions: Des objets « vide » de taille 0 (noté 1, ou ) Des « atomes » de taille 1 Un ensemble d’opérateurs: + : union disjointe X : produit Séquence(A): suite finie d’éléments de A – la séquence peut être bornée ou de longueur donnée. Set(A): l’ensemble des ensembles finis d’éléments de A Cycle(A): cycles finis d’éléments de A Exemples: si F est un atome: A = F + A x A -- arbres binaires complets dont les feuilles sont des atomes A = S + S x A x A – les sommets sont les atomes Novembre 2008 Exposé Fortesse

Les algos de tirage se décomposent en deux étapes: Les spécifications combinatoires sont mises sous forme « standard », équivalente à une famille d’ équations aux langages. Les algos de tirage se décomposent en deux étapes: Dénombrement des objets de taille n (ou ≤ n) Étape de tirage basée sur le dénombrement précédent… Il existe des algo très efficaces de génération quand la spécification combinatoire correspond à un langage algébrique ou rationnel Dans la suite on ne garde que +, x, et * (lang. rationnel !) On peut ajouter une extension « syntaxique » seq (n) ou seq (≤ n), n étant fixé, sans sortir du cadre rationnel. Novembre 2008 Exposé Fortesse

Un exemple de génération uniforme Langage de Fibonacci : L = (a+bb)* S  aS | bbS | Une instance de taille 4: S  aS aaS aabbS Toutes les instances: S4 aS3 bbS2 aaS2 abbS1 bbaS1 bbbbS0 aaaS1 aabbS0 abbaS0 bbaaS0 bbbb aaaaS0 aabb abba bbaa aaaa Novembre 2008 Exposé Fortesse

Counting and randomising: aS3 bbS2 aaS2 abbS1 bbaS bbbbS0 aaaS1 aabbS0 abbaS0 bbaaS0 bbbb aaaaS0 aabb abba bbaa aaaa 3/5 2/5 2/3 1/3 1/2 1/2 Counting: S  aS | bbS |  S(0) = 1 ; S(1) = 1 ; S(n) = S(n-1) + S(n-2) (n≥2) Novembre 2008 Exposé Fortesse

Structures combinatoires et graphe de flot de contrôle INIT EXIT I0 C1 I2 I5 I4 B3 v e1 e2 e0 e3 e5 e4 e6 e7 Atomes= arcs Sequence d’arcs= chemins Structure Combinatoire : S= v.S + v.e0.C.e7 C= e1.e2 + e3.B.e6 B= e4.I + ε I= e5.B S C Novembre 2008 Exposé Fortesse

Là où ça coince…. Si on se base sur la description (le graphe) Tous les chemins ne correspondent pas à des chemins réels Il est indécidable de savoir si un chemin est exécutable On se repose sur la résolution de contraintes pour tester si le chemin est faisable et déterminer des valeurs d’entrée Comment éviter de tirer des chemins infaisables ? Comment détecter qu’un chemin est infaisable ? Que fait-on des chemins infaisables (on retire ?) Que fait-on si le critère de couverture ne se traduit pas facilement en termes de tirage de chemins ? Novembre 2008 Exposé Fortesse

SALLUSTE Optimisations adaptées à LUSTRE:  Dépendances entre données  Dépendances entre cycles temporels consécutifs  Heuristiques de résolution de contraintes Traduction de la spécification Lustre en structures combinatoires Génération basée sur le dépliage d’opérateurs Lustre Novembre 2008 Exposé Fortesse

AUGUSTE Test unitaire de programmes impératifs:  techniques de compilation (traduction optimisée)  critères de couvertures classiques  benchmark de la méthode Novembre 2008 Exposé Fortesse

Auguste: principe général Programme n Critère N Compilateur en une (ou plusieurs) spécifications de structures Combinatoires Si besoin, calcul de la distribution sur les éléments du critère Tirages de N chemins (précédé, si besoin, du tirages de N éléments du critère) Construction des prédicats des N chemins Résolution Échec(s) de résolution? N données de test Novembre 2008 Exposé Fortesse

AUGUSTE – V0: architecture logicielle Programme C-like, N, Nb, critère Dénombrement Resolution de Systèmes Linéaires Tirage Génération de code C Calcul d’automates (Ce,e’) Analyse syntaxique Transformation(s) S.C. Génération de S.C. ensemble de chemins Tirage Construction des prédicats De cheminement Résolution de contraintes Prédicat de chemin * Valeurs d’entrée / Échec(s) Jeu de N tests Novembre 2008 Exposé Fortesse

AUGUSTE – V1: architecture logicielle Programme C-like, N, Nb, critère Dénombrement Resolution de Systèmes Linéaires Tirage Génération de code C Calcul d’automates (Ce,e’) CIL S.C. Génération de S.C. ensemble de chemins Tirage Construction des prédicats De cheminement Résolution de contraintes Prédicat de chemin * Valeurs d’entrée / Échec(s) Jeu de N tests Novembre 2008 Exposé Fortesse

FCT4 Choix de n ? n ≥ 6 + 12 x 19 => n ≥ 234 > 1030 chemins à considérer, bcp de chemins infaisables Novembre 2008 Exposé Fortesse

Transformation de la structure combinatoire Deux sous-graphes indépendants  mauvaise couverture Novembre 2008 Exposé Fortesse

All-vertices and all-edges First naive approach: Draw uniformly N elements e1, …, eN among those to be covered For each ek, generate a path among those traversing ek, of length ≤ n Let S be the set of elements to be covered (statements, branches, …); eS, the probability of e to be activated is where is the nb of paths traversing e and is the nb of paths traversing both e and e’ Master Rech, 2006

Test Quality What does it mean to “satisfy” a coverage criteria in a randomised framework? The test quality qN is the weakest probability that any element of S has to be covered when N tests are exercised qN =1-(1- pmin)N where pmin = min{p(e), eS} Master Rech, 2006

How to increase mineS p(e) ? By drawing non uniformly from S: let S = {e1, …, em}, and p(ei) the probability of ei let , then Given the ci,j, the problem of finding the values {p(e1) , …, p(em)} such that: min{p(ei), i = 1, …, m} is maximum and p(e1) + …+ p(em) = 1 is a classical one in combinatorial optimisation Master Rech, 2006

PB : Maximise pmin under these constraints This optimisation problem is solved by a Simplex algorithm. The p1(ei) give the distribution for drawing from S  Calculate the distribution is similar to maximise pmin under these constraints. This optimisation problem can be solved by a Simplex and the p1(ei) deduced. Master Rech, 2006

Extensions à Auguste « Industrialisation » du prototype Test de différents solveurs de contraintes Passage à un sous-ensemble de vrai C Extensions « syntaxiques » Extensions « sémantiques » Annotations intelligentes de programmes C Apprentissage des chemins infaisables Traduction plus « fine » en structures combinatoires Transformations de la structure combinatoire Analyse statique et évaluation symbolique Program slicing Autres méthodes de tirage aléatoires (cas non rationnels) Novembre 2008 Exposé Fortesse