Sous-sections
Test de conformité et d'interopérabilité
Participants : Sébastien Barbin,
Duncan Clarke, Claude Jard, Thierry Jéron, Pierre Morel, Vlad
Rusu, Séverine Simon, Lénaïck Tanguy, César Viho, Elena
Zinovieva.
Mots clés : test de conformité, test
d'interopérabilité, test réparti, test abstrait, test
exécutable, test symbolique, abstraction, déterminisation,
génération à la volée, vérification, objectif de test, preuve
.
Résumé :
L'activité relative au test de conformité revêt deux
aspects: la génération automatique de tests de conformité
qui produit des cas de tests dits ``abstraits'' et
l'implantation de ces tests abstraits en tests exécutables.
Concernant la génération de tests, nous poursuivons notre
activité pour améliorer les tests produits, faciliter leur
sélection, prendre en compte différentes architectures de
test. En 2000, l'accent a été mis sur la génération de
tests symboliques par l'utilisation de techniques
symboliques. Nous avons également publié une étude de cas
sur la vérification de test. Dans le cadre du contrat Van
Gogh, et en collaboration avec l'université de Twente, nous
avons expérimenté une chaîne complète de la génération à
l'exécution des tests pour une étude de cas [22] traitant d'un protocole de conférence
(ConfCase). Nous avons aussi collaboré avec le projet Armor
et une PME sur l'utilisation de techniques probabilistes
pour la génération de test. Sur l'exécution des tests un
outil prototype appelé
a été développé et nous
sert de plate-forme de validation expérimentale des
méthodes que nous développons.
Les algorithmes de TGV sont basés sur des
techniques énumératives. Lorsque, par exemple, la
spécification d'un protocole contient des paramètres et/ou
variables (paramètres de messages, compteurs, files
d'attente...), TGV instancie toutes ces
variables, qui seront traitées en ``multipliant'' les états
de contrÔle à explorer par le nombre de valeurs distinctes
que les variables peuvent prendre. Ceci peut mener à
l'explosion combinatoire ou même à la non-terminaison. Pour
résoudre ce problème, nous avons commencé un travail sur la
génération de tests symboliques: les cas de test
sont produits non plus par énumération des valeurs des
variables, mais par des calculs symboliques à partir de la
spécification et de l'objectif de test. Nous avons défini
formellement une méthode de génération de tests symboliques
et prouvé que les cas de test produits sont corrects
(essentiellement, non-biaisés et non-laxistes). Ce travail a
donné lieu à une publication en 2000 [39].
Notre travail actuel consiste à poursuivre ce travail par
l'emploi de techniques d'analyse symbolique et de preuve afin
de simplifier et d'instancier les cas de test ainsi produits
pour les rendre exécutables.
Nous avons entamé une collaboration avec le projet Armor
et une PME Lavalloise (Alitec) sur la génération de test
mixant l'approche de génération de test fondée sur le
model-checking de notre outil TGV avec des modèles
Markoviens. Il s'agit pour l'instant de produire des
séquences à partir d'un modèle markovien et relativement
abstrait du système, et d'interpréter ces séquences comme des
objectifs de test. Ces objectifs sont ensuite utilisés par
TGV pour produire des tests pour une spécification SDL. Cette
idée a été expérimentée par Alitec sur des spécifications SDL
de l'UMTS.
Nous travaillons sur une approche qui consiste à dériver
automatiquement des testeurs répartis à partir de test
centralisé. Nous avons proposé un schéma de distribution
permettant de produire un ensemble de tests communiquant
entre eux de manière asynchrone. Cette année,
- nous avons étudié un autre schéma de distribution dans
lequel les testeurs parallèles se synchronisent suivant un
mécanisme de type round-robin [42].
- nous avons développé un prototype DaTEC qui implémente
les deux schémas (le round-robin et celui avec le service
de consensus) de distribution.
Nous avons expérimenté la distribution par round-robin
sur des cas de test fournis par le CELAR [43].
Notre travail actuel porte sur d'autres méthodes pour la
synthèse automatique des procédures de coordination efficaces
entre les testeurs parallèles.
Concernant la phase d'exécution des tests, nous avons
étendu cette année notre plate-forme expérimentale
pour prendre en compte des tests répartis (comme ceux obtenus
à la sortie de notre prototype DaTEC de distribution
automatique de test). Sur cette nouvelle version
appelée
, nous étudions
l'instrumentation qui peut être faite aussi bien du cÔté des
testeurs que des IUTs pour affiner les
observations et améliorer le contrÔle.