IRISA_logo                            
Alexandra DESMOULIN

Docteur en informatique
(A.T.E.R IFSIC/Université de Rennes 1) 

IRISA/Université de Rennes 1
équipe DIONYSOS - bureau F407
Campus de Beaulieu
35042 RENNES Cedex - FRANCE
tel: +33 2 99 84 72 64
email: alexandra.desmoulin-at-irisa.fr
English version
Index

Activités de recherche
Mots-clés: Test de protocoles, interopérabilité, conformité, méthodes formelles, génération de tests

Thématiques abordées:



Mon activité de recherche se déroule au sein de l'IRISA (Institut de Recherche en informatique et Systèmes  Aléatoires), d'abord dans l'équipe-projet ARMOR (ARchitecture et MOdèle de Réseaux), puis dans l'équipe qui lui a succédé, équipe appelée DIONYSOS (Dependability, Interoperability and perfOrmaNce analYsiS of netwOrkS). Cette activité de recherche est centrée sur la thématique du test de protocoles réseaux, et plus particulièrement sur le test d'interopérabilité.


Contexte du travail de recherche : tests de protocole, conformité et interopérabilité

Mon activité de recherche s'est déroulée au sein d'une équipe dont la thématique est orientée tests et performances de réseaux informatiques. Ma thématique se situe plus précisément dans le domaine du test des implémentations de protocoles réseaux. Dans ce domaine, des normes, décrivant les services que doivent rendre les protocoles réseaux, sont écrites par des organismes de normalisation (ITU, ISO, IEEE, IETF, etc). Ces normes sont ensuite implémentées par différents constructeurs. Les implémentations de protocoles ainsi obtenues doivent être testées avant d'être déployées dans des réseaux réels.

Mon travail de recherche s'est situé autour de cette phase de test des implémentations de protocoles. Il existe plusieurs types de tests permettant de vérifier que les implémentations de protocoles se comportent "correctement". Parmi les différents types de test, je me suis intéressée au test de conformité et surtout au test d'interopérabilité. L'objectif du test de conformité  est de vérifier qu'une implémentation (prise isolement) est conforme à sa spécification. Le test d'interopérabilité met en relation plusieurs implémentations.
L'objectif du test d'interopérabilité est alors de s'assurer à la fois que les implémentations interagissent (c'est-à-dire communiquent) correctement et qu'elles rendent les services prévus dans leur spécification pendant leur interaction.

Le test de conformité a été précisément défini : un cadre méthodologique formel existe, ainsi que de nombreuses études sur ce type de test aboutissant à une définition précise de la notion de conformité et à des méthodes, algorithmes et outils de génération de tests. Le but de mes travaux est d'appliquer le même type d'approche au test d'interopérabilité pour lequel aucun cadre méthodologique de ce type n'existe malgré quelques études.

Une approche formelle du test d'interopérabilité

Les travaux effectués pendant ma thèse consistaient à appliquer une approche formelle au test d'interopérabilité. Plus précisément, l'objectif de ces travaux  était de préciser les notions relatives au test d'interopérabilité en terme d'architectures de test, de définitions de la notion d'interopérabilité et de méthodes de génération de test.

Lors de ce travail, nous avons proposé une approche formelle du test d'interopérabilité de deux implémentations. Pour cela, nous avons défini formellement la notion d'interopérabilité grâce à des critères d'interopérabilité qui définissent formellement les conditions que doivent vérifier  les implémentations pour être considérées interopérables. Différents critères ont été définis prenant en compte les différents contextes dans lesquels des tests d'interopérabilité peuvent être réalisés. Ces critères sont basés sur les évènements observés aux interfaces des implémentations, ils prennent également en compte les blocages éventuels des implémentations. De plus, grâce à l'étude des dépendances entre évènements, ils permettent également de vérifier la prise en compte effective d'une entrée par une implémentation.

Nous avons ensuite étudié les approches de génération de test pouvant être dérivées de ces critères d'interopérabilité. En particulier, nous avons défini  une méthode de génération de cas de test d'interopérabilité qui, basée sur l'équivalence de deux critères  d'interopérabilité en terme de détection de la non-interopérabilité, permet d'éviter le problème d'explosion combinatoire habituellement rencontré lors de la génération de tests d'interopérabilité.

Nous avons appliqué notre méthode sur des exemples de protocoles. Cette application a permis de confirmer que notre méthode permet bien d'éviter le problème d'explosion combinatoire rencontré avec l'approche classique. Cette application a également permis de confirmer que les cas de test d'interopérabilité générés avec notre méthode pouvaient détecter les situations de non-interopérabilité qui seraient détectées avec l'approche classique.

Nous avons également commencé l'étude de la généralisation de notre approche à un contexte de test d'interopérabilité de N (N>2) implémentations. Nous avons étudié les problèmes de configurations spécifiques à ce contexte. Nous avons également généralisé les définitions formelles à ce contexte. Nos études actuelles dans ce contexte concernent les possibilités d'automatiser la génération de tests d'interopérabilité.

Conclusion et perspectives sur l'approche formelle du test d'interopérabilité

J'ai ainsi lors de mes différentes expériences de recherches travaillé sur une approche formelle du test d'interopérabilité de protocoles réseaux. Lors de mes travaux, j'ai cherché àpréciser la notion d'interopérabilité et à définir des méthodes pour la génération automatique de tests d'interopérabilité. Les travaux réalisés ouvrent la voie à de nombreuses autres études. Par exemple, les tests générés par notre approche doivent être compilés de façon à être exécutables sur des implémentations réelles. Comme travail futur, je souhaiterais ainsi étudier cette étape de compilation et les différents modes d'exécution pour nos tests. Actuellement, je m'intéresse également à la généralisation de notre approche à un contexte de N (N>2) implémentations, avec les problèmes de complexité que cela engendre.


Autres orientations possibles du travail de recherche

Durant ma thèse, j'ai étudié une approche formelle du test d'interopérabilité. Cette approche formelle est basée sur la modélisation de sytèmes, puis la définition de propriétés que l'on veut tester/vérifier sur ces systèmes. Les techniques de modélisation étaient basées sur l'étude de graphes étiquetés. Il s'agissait de définir à partir d'une représentation des systèmes la propriété d'interopérabilité habituellement attendue par les testeurs définissant (manuellement) et exécutant des tests d'interopérabilité de façon à avoir une définition plus précise de cette propriété et également de façon la définition des tests. Un point particulièrement intéressant pour moi dans ce domaine s'est situé dans le lien entre des pratiques existantes (ici le test d'interopérabilité) et la modélisation ou approche formelle de ce domaine pour en améliorer la connaissance.
 
Ainsi, à la suite de ce travail, je suis intéressée par différents axes possibles de recherche autour de: