Juan Carlos Ruiz García

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Licence pro MPCQ : Cours
Présentation de la circonscription Année 2011/2012 Jeudi 24 novembre 2011.
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
International Telecommunication Union Accra, Ghana, June 2009 Relationship between contributions submitted as input by the African region to WTSA-08,
Les numéros 70 –
Les numéros
Les identités remarquables
Le, la, les words Possessive Adjectives MINE!!. 2 My in french is mon, ma,mes... Le word/ begins with a vowel: Mon La word: Ma Les word: Mes.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Algorithme et structure de données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Données statistiques sur le droit doption au 31/01 8 février 2012.
Technologies et pédagogie actives en FGA. Plan de latelier 1.Introduction 2.Les technologies en éducation 3.iPads 4.TNI 5.Ordinateurs portables 6.Téléphones.
Révision (p. 130, texte) Nombres (1-100).
La législation formation, les aides des pouvoirs publics
1 7 Langues niveaux débutant à avancé. 2 Allemand.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
La méthodologie………………………………………………………….. p3 Les résultats
Structure(djs)TéléphoneFax ADRA R049,96,03,21 CHLEF027,77,22,66 /77,49, LAGHOUAT029,90,41,08029,90,42,47 OUM EL BOUAGHI032,42,16,26032,42,45,32.
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Jack Jedwab Association détudes canadiennes Le 27 septembre 2008 Sondage post-Olympique.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Présentation générale
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Le Concours de Conaissance Francais I novembre 2012.
Titre : Implémentation des éléments finis sous Matlab
Les nombres.
Les quartiers Villeray – La Petite-Patrie et les voisinages
Conseil Administration AFRAC – 2 décembre Toulouse 1 Fermes de références Palmipèdes à foie gras Synthèse régionale – Midi Pyrénées Exercice
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
CLL11 : chlorambucil (CLB) versus CLB + rituximab (R)
Les chiffres & les nombres
1.Un rang de données multicolores 2. Deux permutations des n premiers entiers 3. b permutations des k premiers entiers 4. Choix de n points dans [0,1]
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
Jean-Marc Léger Président Léger Marketing Léger Marketing Les élections présidentielles américaines.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Influenza: le modèle épidémiologique belge 29 Mai 2009
Les Nombres 0 – 100 en français.
Aire d’une figure par encadrement
Copyright 2011 – Les Chiffres Copyright 2011 –
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
Nom:____________ Prénom: ___________
LES PILES ET FILES.
Discussion autour du référentiel
Annexe Résultats provinciaux comparés à la moyenne canadienne
1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR.
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Transcription de la présentation:

Juan Carlos Ruiz García Contribution à la validation des systèmes réflexifs tolérants aux fautes : stratégie de test de protocoles à métaobjets Juan Carlos Ruiz García Tolérance aux fautes et Sûreté de Fonctionnement informatique

Contexte Systèmes TaF à base de MOPs Technologie à objets Technologie réflexive Sûreté de fonctionnement Solutions à protocole à métaobjets (MOP) Tolérance aux Fautes (TaF) Systèmes TaF à base de MOPs

Contexte Systèmes TaF à base de MOPs Technologie à objets Technologie réflexive Sûreté de fonctionnement Solutions à protocole à métaobjets (MOP) Tolérance aux Fautes (TaF) Vérification Test Systèmes TaF à base de MOPs

Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure »

Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » Métaniveau observation, interprétation, contrôle Niveau de base Comportement, structure et état du système

observation, interprétation, contrôle Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » Métaniveau observation, interprétation, contrôle Métamodèle (modèle du niveau de base) comportement état/structure Niveau de base Comportement, structure et état du système

Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » Métaobjets (entités du métaniveau) Mécanismes non-fonctionnels (Tolérance aux Fautes) Réification (observation comportement) Introspection (observation structure/état) Protocole à métaobjets (MOP) Intercession (contrôle comportement) (contrôle structure/état) Objets (entités du niveau de base) Mécanismes fonctionnels

Systèmes à base de MOPs - Notre cible de test - Métaobjets (entités du métaniveau) Mécanismes non-fonctionnels (Tolérance aux Fautes) Réification (observation comportement) Introspection (observation structure/état) Protocole à métaobjets (MOP) Intercession (contrôle comportement) (contrôle structure/état) Objets (entités du niveau de base) Mécanismes fonctionnels

Systèmes TaF à base de MOPs Exemple: Augmentation de la disponibilité d’un serveur par réplication passive métaobjet métaobjet 1. Invocation méthode service réplique primaire réplique de secours client Site 1 Site 2 Site 3

Systèmes TaF à base de MOPs Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 2. Réification métaobjet métaobjet 1. Invocation méthode service réplique de secours client réplique primaire Site 1 Site 2 Site 3

Systèmes TaF à base de MOPs Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 2. Réification métaobjet métaobjet 3. Intercession comportementale 4. Introspection 1. Invocation méthode service réplique de secours client réplique primaire Site 1 Site 2 Site 3

Systèmes TaF à base de MOPs Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 5. État observé métacontrol 2. Réification métaobjet métaobjet 3. Intercession comportementale 6. Intercession structurelle 4. Introspection 1. Invocation méthode service réplique primaire réplique de secours client Site 1 Site 2 Site 3

Plan État de l’art et problématique Stratégie de test Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

Plan État de l’art et problématique Stratégie de test Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

Test de conformité ! MOP spécification du MOP (cible du test) OK entrées de test MOP (cible du test) moniteur de test oracle vérifications de conformité sorties attendues sorties observées spécification du MOP ! OK

Test de conformité ! MOP spécification du MOP métaobjet entrées de test MOP (cible du test) moniteur de test objet oracle vérifications de conformité sorties attendues sorties observées spécification du MOP ! OK

État de l’art Vérification de MOPs : Modèle WRIGTH  MOP  connecteur entre objets  Le MOP inclut le métaniveau Modèle -calcul  MOP  connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés. Pas de travaux sur le test des MOPs ! MOP

État de l’art Vérification de MOPs : Modèle WRIGTH  MOP  connecteur entre objets  Le MOP inclut le métaniveau Modèle -calcul  MOP  connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés. Pas de travaux sur le test des MOPs ! MOP

Problématique Test de protocoles à métaobjets : Méthodes Outils Test OO Test de Protocoles Test Syst. réflexifs Quelles étapes de test à envisager ? Quels objectifs à couvrir dans chaque étape ? Quels environnements de test ?

Plan État de l’art et problématique Stratégie de test Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

Plan État de l’art et problématique Stratégie de test Modèle de MOP Ordre de test Objectifs et Environnements de test

MOP pour la TaF MAUD [Agha 93], GARF [Garbinato 95], FRIENDS [Pérennou 97], [Killijian 00] Observation Métaobjet Contrôle Interception (Reification) création destruction interactions entre objets (entrantes et sortantes) Obtention de l’état (Introspection) Consultation du lien objet/métaobjet Activation (Intercession comportementale) création destruction interactions entre objets Mise à jour de l’état (Intercession structurelle) Modification du lien objet/métaobjet Objet

MOP pour la TaF MAUD [Agha 93], GARF [Garbinato 95], FRIENDS [Pérennou 97], [Killijian 00] Observation Métaobjet Contrôle Interception (Reification) création destruction interactions entre objets (entrantes et sortantes) Obtention de l’état (Introspection) Consultation du lien objet/métaobjet Activation (Intercession comportementale) création destruction interactions entre objets Mise à jour de l’état (Intercession structurelle) Modification du lien objet/métaobjet Objet

Systèmes TaF à base de MOPs Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 5. État observé métacontrol 2. Réification métaobjet métaobjet 3. Intercession comportementale 6. Intercession structurelle 4. Introspection 1. Invocation méthode service client réplique primaire réplique de secours Site 1 Site 2 Site 3

intercession comportementale intercession structurelle Modèle de MOP réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

intercession comportementale intercession structurelle Modèle de MOP réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

intercession comportementale intercession structurelle Modèle de MOP réification métacontrol métaobjet métaobjet conteneur d’invocation Quel ordre de test ? conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

Ordre de Test But : « Réduction de l’effort global de test » Ordre de test systématique et incrémental Réutilisation de mécanismes réflexifs

Ordre de test - Étape 1 - métaobjet client objet serveur service réification métaobjet conteneur d’invocation service client objet serveur

intercession comportementale Ordre de test - Étape 2 - réification métaobjet conteneur d’invocation intercession comportementale service client comportement objet serveur

intercession comportementale Ordre de test - Étape 3 - réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection service client comportement état/structure objet serveur

intercession comportementale intercession structurelle Ordre de test - Étape 4 - réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

Ordre de Test 0. Création du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction

Ordre de Test Création du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction

Ordre de Test Création du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

Ordre de Test Création du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

Étape 1 Réification Objectifs de test serveur client métaobjet Objectifs de test Complétude – Toute interaction entre objets doit être systématiquement réifiée au métaniveau. Cohérence – Les informations réifiées doivent représenter correctement l’interaction réifiée.

InvocationExecutéeNonRéifiée Étape 1 Réification serveur client métaobjet Génération aléatoire des valeurs de sortie 3 4 < méthode réifiée, paramètres d’entrée réifiés, paramètres de sortie générées > métaobjet oracle exécution de méthode 1 2 méthode InvocationExecutéeNonRéifiée 5 6 7 Comparaison 8 < méthode invoquée, paramètres d’entrée, paramètres de sortie > retour réification objet serveur moniteur service réification

Étape 2 Intercession comp. métaobjet serveur client Objectifs de test Complétude – Toute méthode réifiée doit être activable à l’aide des mécanismes d’intercession comportementale. Cohérence – Les mécanismes d’intercession doivent déclencher l’exécution de la méthode demandée. Encapsulation – L’activité interne de l’objet ne doit pas être réifiée.

Étape 2 Intercession comp. métaobjet serveur client oracle métaobjet Comparaison < méthode invoquée, paramètres d’entrée, paramètres de sortie > retour 7 10 11 12 9 8 Les méthodes réifiées sont appliquées sur l’objet Les paramètres de sortie sont retournés au moniteur Les méthodes réifiées sont appliquées sur l’objet Les paramètres de sortie sont retournés au moniteur 1 méthode 3 2 réification 4 méthode 5 6 < Trace d’exécution > intercession moniteur service comportement serveur

Étape 3 Introspection Objectifs de test métaobjet serveur client Objectifs de test Complétude – L’ensemble de l’état de l’objet doit être observé. Cohérence – Les valeurs observées doivent être les valeurs courantes des attributs de l’objet.

Étape 3 Introspection 2 3 1 4 5 6 7 8 9 Métaobjet moniteur réification serveur client 2 3 1 4 5 état d’initialisation Métaobjet moniteur L’état «introspecté», est-il cohérent avec celui d’initialisation? 6 7 8 9 état d’introspection réification métacontrôle intercession comportementale introspection service comportement état/structure oracle objet serveur

Étape 4 Intercession struct. métaobjet serveur client Objectifs de test Complétude – L’ensemble de l’état de l’objet doit pouvoir être mis à jour depuis le métaobjet. Cohérence – Les valeurs de mise à jour utilisées doivent être celles fournies par le métaobjet.

Étape 4 Intercession struct. métaobjet serveur client 2 1 Initialisation de l’état de l’objet 3 4 état initialisation Métaobjet moniteur réification métacontrôle intercession comportementale introspection intercession structurelle service comportement état/structure oracle objet serveur

Étape 4 Intercession struct. métaobjet serveur client 2,6 1,5 Modification de l’état de l’objet 3,7 Métaobjet L’état résultant de l’intercession, est-il cohérent avec celui d’initialisation? 10 état intercession 11 9 moniteur réification métacontrôle état initialisation 8 intercession comportementale introspection intercession structurelle service comportement état/structure oracle objet serveur

Ordre de Test Création du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

Ordre de Test Création du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

Plan État de l’art et problématique Stratégie de test Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

Plan État de l’art et problématique Stratégie de test Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et prospectives MOP implementation and architecture Testing the MOP generation / instantiation / destruction

The FRIENDS MOP Testing the metaprogram A MOP for the development of fault-tolerant CORBA applications source code analysis and transformation Metaprogram (MOP implementation) MOP instance CORBA service implementation MOP programmer Open Compiler (compile-time reflection) Application programmer Testing the metaprogram CORBA service implementation CORBA metaobject CORBA object MOP instance instantiation CORBA-oriented FT-mechanism Fault tolerance programmer

CORBA service implementation A CORBA application CORBA service implementation server stub client Service interobject communications site 1 site 2

A FRIENDS CORBA application server stub client Service MetaStub MetaServer ReifiedStub metastub metaserver MOFactory ReifiedServer intermetaobject communications ORB OFactory site 1 site 2 MOP instance CORBA service implementation CORBA-oriented FT-mechanism Testing the creation and destruction of the O-MO interaction link

Test Order MOP generation (testing the metaprogram) MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) Specific Step Specific Step

Test Order MOP generation (testing the metaprogram) MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) MOP generation (testing the metaprogram) Specific Step Specific Step

Testing the metaprogram Metaprogram : set of code analysis and transformation rules Code filtering rules Error messages server code Open Compiler (OpenC++) non-reflective code stub code

Testing the metaprogram Metaprogram : set of code analysis and transformation rules Code filtering rules Data container generation rules Error messages server code CORBA Interface Repository Open Compiler (OpenC++) non-reflective code stub code

Testing the metaprogram Metaprogram : set of code analysis and transformation rules Code filtering rules Data container generation rules Reflective code generation rules Error messages server code CORBA Interface Repository Open Compiler (OpenC++) non-reflective code server code MOP stub code stub code MOP reflective code

Reflective code generation rules metaprogram behavioral reflection Code for reification & behavioral intercession structural reflection Code for saving & restoring object states objet-metaobjet link Code for handling the objet-metaobjet link classes with different method signatures classes with different types of attributes 2 3 1 classes with methods & attributes Open compiler code MOP 4 Oracle 5 Does the generated code conform to the code specified for the MOP?

Reflective code generation rules - Oracle verifications - metaprogram class a{ public: int foo(){ // foo’s body } private: int foo2() { //foo2’s body }; behavioral reflection Implemented using method wrapping class a{ public: int foo(){ //reification code } int Wrapped_foo(){ // foo’s body int Execute_fooBody(){ return Wrapped_foo() private: int foo2() { //foo2’s body }; Oracle Does the generated code conform to the code specified for the MOP?

Reflective code generation rules - Oracle verifications - metaprogram class a{ public: int foo(){ // foo’s body } private: int foo2() { //foo2’s body }; behavioral reflection Implemented using method wrapping class a{ public: int foo(){ //reification code } int Wrapped_foo(){ // foo’s body int Execute_fooBody(){ return Wrapped_foo() private: int foo2() { //foo2’s body }; Oracle Does the generated code conform to the code specified for the MOP?

Reflective code generation rules - Oracle verifications - metaprogram class a{ public: int foo(){ // foo’s body } private: int foo2() { //foo2’s body }; behavioral reflection Implemented using method wrapping class a{ public: int foo(){ //reification code } int Wrapped_foo(){ // foo’s body int Execute_fooBody(){ return Wrapped_foo() private: int foo2() { //foo2’s body }; Oracle Does the generated code conform to the code specified for the MOP?

Test Order MOP generation (testing the metaprogram) MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) Specific Step Specific Step

Test Order MOP generation (testing the metaprogram) MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) Specific Step MOP instantiation (O-MO link creation) Specific Step

MOP instantiation Test goals Unicity – Each object must be linked to one and only one metaobject. Interaction – Objects and metaobjects can only interact if their respective identifiers are correctly exchanged during the instantiation process.

MOP instantiation 6 7 8 3 4 5 1 2 oracle test driver MOFactory <object, metaobject> <object’, metaobject’> 3 4 5 metaobject oracle MOFactory 1 Service 2 object OFactory test driver

Plan État de l’art et problématique Stratégie de test Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

Vue fonctionnelle du banc de test outillage de génération de code classes d’entrée Test du métaprogramme Règles de filtrage de code Règles de génération des conteneurs Règles de génération des mécanismes réflexifs outillage d’analyse de code Création du lien d’interaction du MOP Test des mécanismes du MOP mise en œuvre des environnements de test Destruction du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle

référentiel d’interfaces Banc de Test stub squelette interface IDL implémentation du serveur compilateur IDL testeur référentiel d’interfaces CORBA implémentation réflexive d’un objet CORBA conteneurs d’invocation et d’état compilateur standard (C++) serveur réflexif mandataire réflexif Métaprogramme FRIENDS

Banc de Test Paramètres pour la génération d’implémentations d’objets CORBA générateur d’objets CORBA interface IDL testeur compilateur IDL implémentation du serveur outillage pour le test du métaprogramme stub squelette référentiel d’interfaces CORBA conteneurs d’invocation et d’état Métaprogramme FRIENDS oracle métaobjet implémentation réflexive d’un objet CORBA serveur réflexif moniteur de test objet compilateur standard (C++) mandataire réflexif environnements de test

Moniteur de test générique référentiel d’interfaces CORBA description de l’interface du serveur description de l’opération à invoquer Interface IDL du Moniteur interface Universal_Driver{ RetValue Invoke( in string serviceName, in string operationName, inout ListOfArguments arguments) raises (DriverException); }; générateur de valeurs aléatoires valeur type argument 1 argument 2 argument n référence de l’objet description de l’opération valeur de retour Universal_Driver Création dynamique de requêtes CORBA (interface DII) Interopérabilité langage-plate-forme Composant réutilisable dans d’autres contextes service de noms nom du service référence CORBA

Cas de test (1) Réification et Intercession comportementale Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Méthode sans arguments Pour chaque type considéré ( T ) : Variation du mode de passage Variation du nombre d’arguments Variation du niveau d’encapsulation Héritage de méthodes Cas précédant avec plusieurs types en même temps Cas de Test

Cas de test (1) Réification et Intercession comportementale Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Méthode sans arguments Pour chaque type considéré ( T ) : Variation du mode de passage Variation du nombre d’arguments Variation du niveau d’encapsulation Héritage de méthodes Cas précédant avec plusieurs types en même temps Cas de Test Variation du mode de passage interface shortParameters{ short shortReturn(); void shortIn(in short arg); void shortOut(out short arg); void shortInOut(inout short arg); };

Cas de test (2) Introspection et Intercession structurelle Cas de Test Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Pour chaque type considéré ( T ) : Un attribut dans une classe Plusieurs attributs par classe Héritage Association / Agrégation Cas précédant avec plusieurs types en même temps Cas de Test

Cas de test (2) Introspection et Intercession structurelle Cas de Test Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Pour chaque type considéré ( T ) : Un attribut dans une classe Plusieurs attributs par classe Héritage Association / Agrégation Cas précédant avec plusieurs types en même temps Cas de Test Héritage interface shortAtt{ attribute short shortAtt1; }; interface longAtt : shortAtt{ attribute long longAtt1;

Génération des cas de test Méthode de génération aléatoire probabiliste : test statistique 532 serveurs différents 189 interfaces pour le test des mécanismes de réification et d’intercession comportementale 197 interfaces pour le test des mécanismes d’introspection et d’intercession structurelle 156 interfaces contenant à la fois des méthodes et des attributs 24 méthodes en moyenne par interface Plus d’un million d’invocations de méthode effectuées par le moniteur de test lors des expériences

Exemples de fautes identifiées Étape Problème test incrémental Confusion entre méthode publique C++ et méthode IDL Métaprogramme Plusieurs métaobjets par objet Création du lien Réification identique de méthodes différentes Réification Violation du besoin d’encapsulation Intercession comp. Absence d’initialisation des attributs Introspection Un système à objets est un système Formatage incorrect du conteneur d’état Intercession struct. Le métaobjet survit à l’objet Destruction du lien spécification conception implémentation

Exemples de fautes identifiées Étape Problème test incrémental Confusion entre méthode publique C++ et méthode IDL Métaprogramme Plusieurs métaobjets par objet Création du lien Réification identique de méthodes différentes Réification Violation du besoin d’encapsulation Intercession comp. Absence d’initialisation des attributs Introspection Un système à objets est un système Formatage incorrect du conteneur d’état Intercession struct. Le métaobjet survit à l’objet Destruction du lien Problèmes facilement résolus car identifiés pendant le développement du MOP

Plan Stratégie de test Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

Bilan Analyse des mécanismes réflexifs des MOPs en vue du test Stratégie de test générale et incrémentale (Ordre, objectifs et environnements de test) Faisabilité et efficacité de l’approche (Le MOP de FRIENDS comme cas d’étude) Développement d’un banc de test réutilisable

Conclusions Intégration du test dans le développement des MOPs Complémentarité de points de vue durant la phase d’analyse (travail préparatoire au test) Conception en vue de la testabilité Intérêt de la séparation de mécanismes vis-à-vis du test : Les MOPs peuvent (et doivent) être testés en isolation Test d’intégration de mécanismes plus simple

Autres cibles potentielles Réification Intercession comportementale Introspection Intercession structurelle Intercepteurs de CORBA Supervision et gestion de systèmes à objet : (Systèmes multimédia, QoS) Sérialisation d’objets (Java, FT-CORBA) Perception des environnements d’exécution (Systèmes conscients de leur contexte)

Perspectives Définition de critères de test fonctionnels et structurels pour le choix des entrées de test Application de la stratégie de test à d’autres systèmes proposant des mécanismes réflexifs similaires Mécanismes d’interception de CORBA et de sérialisation des applications suivant la norme FT-CORBA Prise en compte d’autres types de mécanismes réflexifs ( propres aux systèmes mobiles, multimédia … ) Test de métaprogramme  Vers le test de systèmes programmés par aspects ?

Juan Carlos Ruiz García Contribution à la validation des systèmes réflexifs tolérants aux fautes : stratégie de test de protocoles à métaobjets Juan Carlos Ruiz García Tolérance aux fautes et Sûreté de Fonctionnement informatique