Mots-clés: Test de protocoles,
interopérabilité, conformité, méthodes
formelles, génération de tests
Thématiques abordées:
Test de protocoles réseaux dont
Test de conformité
Test d'interopérabilité
Approche formelle
Définition de propriétés à
vérifier sur des sytèmes
Systèmes distribués
Modélisation (de protocoles et des
propriétés à tester sur ces protocoles)
Génération automatique de test
Parcours de graphe
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:
la modélisation de systèmes pour améliorer
leur analyse
la modélisation (et/ou vérification) et
l'étude de systèmes communicants
la définition de propriétés sur ces
systèmes
l'application de propriété comme
l'interopérabilité à différents domaines
pratiques et à différents types de systèmes