Contribution à la validation des systèmes réflexifs tolérants aux fautes : stratégie de test de protocoles à métaobjets
Auteur / Autrice : | Juan Carlos Ruiz García |
Direction : | Jean-Charles Fabre |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique et télécommunications |
Date : | Soutenance en 2002 |
Etablissement(s) : | Toulouse, INPT |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Le protocole à métaobjets (MOP) est la pierre angulaire de nombreux systèmes réflexifs à objets. Le test du MOP est un aspect incontournable du processus de validation de ce type de systèmes réflexifs. Il pose trois questions fondamentales : quelles sont les étapes de test à envisager ? Quels sont les objectifs à couvrir dans chacune de ces étapes de test ? Quels sont les environnements nécessaires à la réalisation des expériences de test ? Dans cette thèse, nous proposons une stratégie de test générique qui repose sur une décomposition des fonctionnalités du MOP en quatre mécanismes réflexifs élémentaires : interception des invocations (réification), activation des méthodes (intercession comportementale), capture de l'état des objets (introspection), et mise à jour de cet état (intercession structurelle). L'analyse des dépendances entre ces mécanismes permet de définir quatre étapes de test successives, une par mécanisme élémentaire dans l'ordre ci-dessus. L'originalité de cette stratégie incrémentale repose sur la réutilisation, à chaque étape, des mécanismes testés aux étapes précédentes afin de réduire l'effort de test global. Pour chaque étape de test, la stratégie spécifie les vérifications qui doivent être effectuées (en termes d'objectifs de test), et définit l'environnement de test permettant de résoudre, notamment, les problèmes de commandabilité et d'observabilité relatifs au mécanisme sous test. Cette stratégie générique à été complétée par la définition d'étapes plus spécifiques ciblant le test d'aspects propres à la mise en œuvre des MOPs par compilation ouverte. Dans ce cas, le protocole est défini par un ensemble de règles d'analyse, de transformation et de génération de code source. Des tests de conformité sont alors effectués pour chacune de ces règles. Nous illustrons la faisabilité de l'approche en utilisant comme cible de test le MOP défini dans le prototype FRIENDS v2, un système réflexif CORBA tolérant aux fautes qui utilise des techniques de compilation ouverte pour générer son MOP. À l'occasion de ces expériences, un banc de test réutilisable a été développé. Les résultats obtenus ont montré la capacité des différents environnements de test à révéler des fautes dans l'implémentation du MOP. Certaines de ces fautes ont pu être corrigées et d'autres se sont transformées en conventions de programmation à imposer aux utilisateurs, ce qui implique un retour sur la conception. D'autre part, la mise en œuvre du banc du test a permis d'identifier et de résoudre précisément les problèmes de commandabilité et d'observabilité relatifs au test d'un MOP.