Intérêts scientifiques

Mes recherches s'effectuent dans le cadre de la vérification formelle : principalement pour le test formel, mais aussi le model-checking.

Je m'intéresse au problème de l'explosion combinatoire des systèmes formels qui intervient dès que les modèles étudiés représentent des systèmes non triviaux. Je travaille plus particulièrement sur des solutions qui utilisent des approches statistiques lorsque l'exhaustivité n'est plus envisageable.

Test formel

L'objectif du test formel est d'obtenir, de manière automatique, un sous ensemble de tous les tests possibles qui satisfait un certain critère de couverture. Ce sous-ensemble est communément appelé jeu de test et le critère de couverture est défini à partir de la spécification formelle du système, qu'on peut généralement représenter sous la forme d'un automate (ou une version simplifiée plus communément appelée un système de transitions étiquetées (LTS)).

Les critères de test structurel les plus classiques sont :

  • la couverture des instructions : on est passé au moins une fois dans chaque bloc élémentaire après l'exécution du jeu de tests,
  • la couverture des enchaînements : passer au moins une fois par chaque arc du graphe,
  • la couverture de tous les chemins, qui est généralement impossible (si il y a une boucle dans le programme) ou trop coûteuse et on se ramène donc à un critère plus faible comme la couverture de tous les chemins qui passent au maximum i fois dans chaque boucle.
Certains critères sont plus difficiles à couvrir que d'autres et peuvent impliquer la couverture de critères plus facile. Ainsi, si on couvre tous les chemins qui passent au moins une fois dans chaque boucle, on aura forcément couvert tous les arcs du graphe. Ma recherche s'articule autour de méthodes d'explorations probabilistes de ces modèles tout en garantissant une bonne couverture du critère attendu, quelle que soit la topologie du modèle exploré.

Exploration aléatoire

Lorsque la couverture d'un critère requiert un nombre trop important de tests, on peut envisager d'abandonner l'exhaustivité au profit de méthodes probabilistes.

La première idée qui vient quand on veut explorer aléatoirement un graphe, est l'utilisation de marches aléatoires isotropes (c'est-à-dire, à chaque étape, choisir au hasard l'état suivant uniformément parmi les successeurs de l'état courant). Les principaux avantages de cette méthode sont la simplicité et le peu de mémoire nécessaire qui lui permettent d'explorer de très grands graphes à un faible coût. Néanmoins, si on s'intéresse à la satisfaction - même partielle - d'un critère de couverture, il est très incertain pour ne pas dire improbable que les marches aléatoires isotropes puissent le satisfaire en un temps raisonnable.

Mes travaux consistent donc à utiliser des approches combinatoires pour construire des méthodes probabilistes permettant d'explorer de très grands systèmes tout en garantissant une bonne couverture du critère de test. On obtient alors des algorithmes rapides, économes en mémoire et très efficaces.

Publications

Liste complète de mes publications

2011

  • Johan Oudinet, Alain Denise, Marie-Claude Gaudel, Richard Lassaigne et Sylvain Peyronnet. Uniform Monte-Carlo Model checking. Dans FASE, Conference on Fundamental Approaches to Software Engineering, Saarbrücken, Allemagne, Mars 2011, 10 pages. [ pdf ]

2010

  • Johan Oudinet. Approches combinatoires pour le test statistique à grande échelle. Thèse de doctorat, LRI, Université Paris-Sud XI, Novembre 2010, 118 pages. [ pdf | slides ]
  • Johan Oudinet, Alain Denise et Marie-Claude Gaudel. A new dichotomic algorithm for the uniform random generation of words in regular languages. Dans GASCom, Conference on random and exhaustive generation of combinatorial objects, Montréal, Canada, Septembre 2010, 10 pages. [ pdf | slides ]

2009

  • Johan Oudinet. Exploration aléatoire de modèles. Dans MSR, colloque francophone sur la Modélisation des Systèmes Réactifs, Volume 43 of Journal européen des systèmes automatisés (JESA), Nantes, pages 905-919, Novembre 2009. [ pdf | slides ]

2008

  • Alain Denise, Marie-Claude Gaudel, Sandrine-Dominique Gouraud, Richard Lassaigne, Johan Oudinet, et Sylvain Peyronnet. Coverage-biased random exploration of large models and application to testing. Rapport interne n°1494, LRI, Université Paris-Sud XI, Juin 2008, 24 pages. [ pdf ]
  • Johan Oudinet. Uniform random exploration of concurrent systems. Dans MOVEP, MOdelling and VErifying parallel Processes, pages 323-328, Juin 2008.
  • Alain Denise, Marie-Claude Gaudel, Sandrine-Dominique Gouraud, Richard Lassaigne, Johan Oudinet, et Sylvain Peyronnet. Coverage-biased random exploration of large models. Dans ETAPS, Workshop on Model Based Testing, Electronic Notes in Theoretical Computer Science ( ENTCS), pages 3-14, Mars 2008. [ pdf ]

2007

  • Johan Oudinet. Uniform random walks in very large models. Dans ASE, Workshop on Random testing, IEEE/ACM, Atlanta, pages 26-29, Novembre 2007. [ pdf | slides ]
  • Johan Oudinet. Tirages aléatoires uniformes dans des systèmes concurrents. Thèse de master, LRI, Université Paris-Sud XI, Septembre 2007, 16 pages. [ pdf | slides ]

Co-auteurs