contribution à la validation des systèmes réflexifs tolérants aux fautes : stratégie de test de...
TRANSCRIPT
Contribution à la validation des Contribution à la validation des
systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :
stratégie de test de stratégie de test de
protocoles à métaobjetsprotocoles à métaobjets
Contribution à la validation des Contribution à la validation des
systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :
stratégie de test de stratégie de test de
protocoles à métaobjetsprotocoles à métaobjets
Juan Carlos Ruiz GarcíaJuan Carlos Ruiz García
Tolérance aux fautes et Tolérance aux fautes et Sûreté de Fonctionnement informatiqueSûreté de Fonctionnement informatique
22
ContexteContexteContexteContexte
Technologie Technologie à objetsà objets
Technologie Technologie réflexiveréflexive
Solutions àSolutions à
protocole à métaobjets (MOP)protocole à métaobjets (MOP)
Sûreté de Sûreté de fonctionnementfonctionnement
Tolérance Tolérance
aux Fautes (TaF)aux Fautes (TaF)
Systèmes TaF à base de MOPsSystèmes TaF à base de MOPs
33
ContexteContexteContexteContexte
Technologie Technologie à objetsà objets
Technologie Technologie réflexiveréflexive
Solutions àSolutions à
protocole à métaobjets (MOP)protocole à métaobjets (MOP)
Sûreté de Sûreté de fonctionnementfonctionnement
Tolérance Tolérance
aux Fautes (TaF)aux Fautes (TaF)
VérificationVérification
TestTest
Systèmes TaF à base de MOPsSystèmes TaF à base de MOPs
44
Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs
« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »
55
Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs
MétaniveauMétaniveau
observation, interprétation, contrôleobservation, interprétation, contrôle
Niveau de baseNiveau de base
Comportement, structure et état du systèmeComportement, structure et état du système
« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »
66
Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs
MétaniveauMétaniveau
observation, interprétation, contrôleobservation, interprétation, contrôle
Niveau de baseNiveau de base
Comportement, structure et état du systèmeComportement, structure et état du système
MétamodèleMétamodèle(modèle du niveau de base)(modèle du niveau de base)
comportementcomportement état/structureétat/structure
« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »
77
Systèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPs
Objets (entités du niveau de base)Objets (entités du niveau de base)
Mécanismes fonctionnelsMécanismes fonctionnels
Métaobjets (entités du métaniveau)Métaobjets (entités du métaniveau)Mécanismes non-fonctionnelsMécanismes non-fonctionnels
(Tolérance aux Fautes)(Tolérance aux Fautes)
Protocole Protocole à métaobjetsà métaobjets
(MOP)(MOP)
RéificationRéification(observation comportement)(observation comportement)IntrospectionIntrospection(observation structure/état)(observation structure/état)
IntercessionIntercession(contrôle comportement)(contrôle comportement)
(contrôle structure/état)(contrôle structure/état)
« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »
88
Systèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPs
Objets (entités du niveau de base)Objets (entités du niveau de base)
Mécanismes fonctionnelsMécanismes fonctionnels
Métaobjets (entités du métaniveau)Métaobjets (entités du métaniveau)Mécanismes non-fonctionnelsMécanismes non-fonctionnels
(Tolérance aux Fautes)(Tolérance aux Fautes)
Protocole Protocole à métaobjetsà métaobjets
(MOP)(MOP)
RéificationRéification(observation comportement)(observation comportement)IntrospectionIntrospection(observation structure/état)(observation structure/état)
IntercessionIntercession(contrôle comportement)(contrôle comportement)
(contrôle structure/état)(contrôle structure/état)
- - Notre cible de test Notre cible de test --
99
Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs
métaobjetmétaobjet
Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive
SiteSite 1 1
métaobjetmétaobjet
répliquerépliquede secoursde secours
répliquerépliqueprimaireprimaire
servic
es
ervice
11. . InvocationInvocation méthodeméthode
clientclient
SiteSite 22 SiteSite 33
1010
Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs
métaobjetmétaobjet
Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive
métaobjetmétaobjet
répliquerépliquede secoursde secours
répliquerépliqueprimaireprimaire
servic
es
ervice
22.. RRééificationification
11. . InvocationInvocation méthodeméthode
clientclient
SiteSite 1 1 SiteSite 22 SiteSite 33
1111
Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs
44.. IntrospectionIntrospection
métaobjetmétaobjet
Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive
métaobjetmétaobjet
répliquerépliquede secoursde secours
répliquerépliqueprimaireprimaire
servic
es
ervice
22.. RRééificationification
11. . InvocationInvocation méthodeméthode
33.. IntercessionIntercessioncomportementalecomportementale
clientclient
SiteSite 1 1 SiteSite 22 SiteSite 33
1212
Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs
44.. IntrospectionIntrospection
mémétaobjettaobjet
Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive
55.. État observéÉtat observé
métaobjetmétaobjet
répliquerépliquede secoursde secours
répliquerépliqueprimaireprimaire
servic
es
ervice
22.. RRééificationification
11. . InvocationInvocation méthodeméthode
33.. IntercessionIntercessioncomportementalecomportementale
clientclient
méta
co
ntro
lm
étac
on
trol 6.6. IntercessionIntercession
structurellestructurelle
SiteSite 1 1 SiteSite 22 SiteSite 33
1313
PlanPlanPlanPlan
• État de l’art et problématiqueÉtat de l’art et problématique
• Stratégie de test Stratégie de test
• Case study : the FCase study : the FRIENDS MOPRIENDS MOP
• Expériences et résultatsExpériences et résultats
• Bilan, conclusions et perspectivesBilan, conclusions et perspectives
1414
PlanPlanPlanPlan
• État de l’art et problématiqueÉtat de l’art et problématique
• Stratégie de test Stratégie de test
• Case study : the FCase study : the FRIENDS MOPRIENDS MOP
• Expériences et résultatsExpériences et résultats
• Bilan, conclusions et perspectivesBilan, conclusions et perspectives
1515
Test de conformitéTest de conformitéTest de conformitéTest de conformité
moniteur de test
entréesde test
MOPMOP(cible du test)(cible du test)
spécificationdu MOPMOP
oraclevérifications
de conformité
sortiesattendues
sortiessortiesobservéesobservées
OKOK!
1616
Test de conformitéTest de conformitéTest de conformitéTest de conformité
moniteur de test
entréesde test
MOPMOP(cible du test)(cible du test)
objetobjet
métaobjetmétaobjet
spécificationdu MOPMOP
oraclevérifications
de conformité
sortiesattendues
sortiessortiesobservéesobservées
OKOK!
1717
État de l’artÉtat de l’artÉtat de l’artÉtat de l’art
• Vérification de MOPs :Vérification de MOPs :– Modèle WRIGTH Modèle WRIGTH
MOP MOP connecteur entre objets connecteur entre objets
Le MOP inclut le métaniveauLe MOP inclut le métaniveau
– Modèle Modèle -calcul-calcul MOP MOP connecteur entre objets et métaobjets connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et Le MOP doit respecter des propriétés qui peuvent (et
doivent) être vérifiées indépendamment du niveau de doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés.base et du métaniveau considérés.
• Pas de travaux sur le test des MOPs !Pas de travaux sur le test des MOPs !
MOPMOP
1818
État de l’artÉtat de l’artÉtat de l’artÉtat de l’art
• Vérification de MOPs :Vérification de MOPs :– Modèle WRIGTH Modèle WRIGTH
MOP MOP connecteur entre objets connecteur entre objets
Le MOP inclut le métaniveauLe MOP inclut le métaniveau
– Modèle Modèle -calcul-calcul MOP MOP connecteur entre objets et métaobjets connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et Le MOP doit respecter des propriétés qui peuvent (et
doivent) être vérifiées indépendamment du niveau de doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés.base et du métaniveau considérés.
• Pas de travaux sur le test des MOPs !Pas de travaux sur le test des MOPs !
MOPMOP
1919
ProblématiqueProblématiqueProblématiqueProblématique
Test de protocoles à métaobjets :Test de protocoles à métaobjets :
- MéthodesMéthodes
- OutilsOutils
1.1. Quelles étapes de test à envisager ?Quelles étapes de test à envisager ?
2.2. Quels objectifs à couvrir dans chaque étape ?Quels objectifs à couvrir dans chaque étape ?
3.3. Quels environnements de test ?Quels environnements de test ?
Test OOTest OO
Test de ProtocolesTest de Protocoles
Test Syst. réflexifsTest Syst. réflexifs
2020
PlanPlanPlanPlan
• État de l’art et problématiqueÉtat de l’art et problématique
• Stratégie de test Stratégie de test
• Case study : the FCase study : the FRIENDS MOPRIENDS MOP
• Expériences et résultatsExpériences et résultats
• Bilan, conclusions et perspectivesBilan, conclusions et perspectives
2121
PlanPlanPlanPlan
• État de l’art et problématique
• Stratégie de test Stratégie de test
– Modèle de MOPModèle de MOP
– Ordre de testOrdre de test
– Objectifs et Environnements de testObjectifs et Environnements de test
2222
MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]
MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]
MétaMétaoobjetbjet
ObjetObjet
ObservationObservation ContContrôlerô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 dulien objet/métaobjet
2323
MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]
MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]
MétaMétaoobjetbjet
ObjetObjet
ObservationObservation ContContrôlerôle
– Interception Interception ((ReificationReification))• création création • destruction destruction • interactions entre objetsinteractions entre objets
(entrantes et sortantes)(entrantes et sortantes)– Obtention de l’étatObtention de l’état
(Introspection)(Introspection)
– Consultation du Consultation du lien objet/métaobjetlien objet/métaobjet
– Activation Activation (Intercession comportementale)(Intercession comportementale) • créationcréation• destructiondestruction• interactions entre objetsinteractions entre objets
– Mise à jour de l’étatMise à jour de l’état(Intercession structurelle)(Intercession structurelle)
– Modification duModification dulien objet/métaobjetlien objet/métaobjet
2424
Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs
44.. IntrospectionIntrospection
mémétaobjettaobjet
Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive
SiteSite 1 1
55.. État observéÉtat observé
métaobjetmétaobjet
répliquerépliquede secoursde secours
répliquerépliqueprimaireprimaire
servic
es
ervice
22.. RRééificationification
11. . InvocationInvocation méthodeméthode
33.. IntercessionIntercessioncomportementalecomportementale
clientclient
méta
co
ntro
lm
étac
on
trol 6.6. IntercessionIntercession
structurellestructurelle
SiteSite 22 SiteSite 33
2525
mémétaobjettaobjet
clientclient
mémétaobjettaobjet
Modèle de MOPModèle de MOPModèle de MOPModèle de MOP
servic
es
ervice
objet serveurobjet serveur
comportementcomportement état/structureétat/structure
mét
aco
ntr
ol
mét
aco
ntr
ol
intercessionintercessionstructurellestructurelleintrospectionintrospection
conteneurconteneurd’étatd’état
réification
réification
intercessionintercessioncomportementalecomportementale
conteneurconteneurd’invocationd’invocation
2626
mémétaobjettaobjet
servic
es
ervice
Modèle de MOPModèle de MOPModèle de MOPModèle de MOP
réification
réification
intercessionintercessioncomportementalecomportementale
intercessionintercessionstructurellestructurelleintrospectionintrospection
comportementcomportement état/structureétat/structure
objet serveurobjet serveurm
étac
on
tro
lm
étac
on
tro
l
clientclient
mémétaobjettaobjet
conteneurconteneurd’étatd’état
conteneurconteneurd’invocationd’invocation
2727
mémétaobjettaobjet
servic
es
ervice
Modèle de MOPModèle de MOPModèle de MOPModèle de MOP
réification
réification
intercessionintercessioncomportementalecomportementale
intercessionintercessionstructurellestructurelleintrospectionintrospection
comportementcomportement état/structureétat/structure
objet serveurobjet serveurm
étac
on
tro
lm
étac
on
tro
l
clientclient
mémétaobjettaobjet
Quel ordre de te
st ?
Quel ordre de te
st ?
conteneurconteneurd’étatd’état
conteneurconteneurd’invocationd’invocation
2828
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
But : «But : « Réduction de l’effort global de test Réduction de l’effort global de test »»
– Ordre de test systématique et incrémentalOrdre de test systématique et incrémental
– Réutilisation de mécanismes réflexifsRéutilisation de mécanismes réflexifs
2929
mémétaobjettaobjet
servic
es
ervice
Ordre de testOrdre de test- - Étape 1 Étape 1 --
Ordre de testOrdre de test- - Étape 1 Étape 1 --
réification
réification
conteneurconteneurd’invocationd’invocation
objet serveurobjet serveur
clientclient
3030
mémétaobjettaobjet
servic
es
ervice
Ordre de testOrdre de test- - Étape 2 Étape 2 --
Ordre de testOrdre de test- - Étape 2 Étape 2 --
réification
réification
intercessionintercessioncomportementalecomportementale
comportementcomportement
conteneurconteneur
d’invocationd’invocation
objet serveurobjet serveur
clientclient
3131
Ordre de testOrdre de test- - Étape 3 Étape 3 --
Ordre de testOrdre de test- - Étape 3 Étape 3 --
mémétaobjettaobjet
servic
es
ervice
réification
réification
intercessionintercessioncomportementalecomportementale introspectionintrospection
comportementcomportement état/structureétat/structure
conteneurconteneur
d’invocationd’invocation
conteneurconteneurd’étatd’état
objet serveurobjet serveurm
étac
on
tro
lm
étac
on
tro
l
clientclient
mémétaobjettaobjet
3232
mémétaobjettaobjet
servic
es
ervice
Ordre de testOrdre de test- - Étape 4 Étape 4 --
Ordre de testOrdre de test- - Étape 4 Étape 4 --
réification
réification
intercessionintercessioncomportementalecomportementale
intercessionintercessionstructurellestructurelleintrospectionintrospection
comportementcomportement état/structureétat/structure
conteneurconteneur
d’invocationd’invocation
conteneurconteneurd’étatd’état
objet serveurobjet serveurm
étac
on
tro
lm
étac
on
tro
l
clientclient
mémétaobjettaobjet
3333
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
0. Création du lien d’interaction
1.1. RéificationRéification
2.2. Intercession comportementaleIntercession comportementale
3.3. IntrospectionIntrospection
4.4. Intercession structurelleIntercession structurelle
5. Destruction du lien d’interaction
3434
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
Création du lien d’interaction Création du lien d’interaction
1.1. RéificationRéification
2.2. Intercession comportementaleIntercession comportementale
3.3. IntrospectionIntrospection
4.4. Intercession structurelleIntercession structurelle
Destruction du lien d’interactionDestruction du lien d’interaction
3535
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
Création du lien d’interaction Création du lien d’interaction
1.1. RéificationRéification
2.2. Intercession comportementaleIntercession comportementale
3.3. IntrospectionIntrospection
4.4. Intercession structurelle Intercession structurelle
Destruction du lien d’interactionDestruction du lien d’interaction
Étapes Étapes GénéralesGénérales
Étape Étape SpécifiqueSpécifique
Étape Étape SpécifiqueSpécifique
3636
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
Création du lien d’interaction Création du lien d’interaction
1.1. RéificationRéification
2.2. Intercession comportementaleIntercession comportementale
3.3. IntrospectionIntrospection
4.4. Intercession structurelle Intercession structurelle
Destruction du lien d’interactionDestruction du lien d’interaction
Étapes Étapes GénéralesGénérales
Étape Étape SpécifiqueSpécifique
Étape Étape SpécifiqueSpécifique
3737
Étape 1Étape 1
RéificationRéificationÉtape 1Étape 1
RéificationRéification
Objectifs de testObjectifs de test
• Complétude Complétude – – Toute interaction entre objets Toute interaction entre objets doit être systématiquement réifiée au métaniveau.doit être systématiquement réifiée au métaniveau.
• Cohérence Cohérence – – Les informations réifiées doivent Les informations réifiées doivent représenter correctement l’interaction réifiée.représenter correctement l’interaction réifiée.
serveurserveurclientclient
métaobjetmétaobjet
3838
Étape 1Étape 1
RéificationRéificationÉtape 1Étape 1
RéificationRéification
objet objet serveurserveur
réific
atio
nré
ifica
tion
métaobjetmétaobjet
réificationréification
oracleoracle
moniteurmoniteur
Génération Génération aléatoire des valeurs aléatoire des valeurs de sortiede sortie
33
44< méthode réifiée, paramètres d’entrée réifiés, paramètres de sortie générées >< méthode réifiée, paramètres d’entrée réifiés, paramètres de sortie générées >
55
66
77
ComparaisonComparaison 88
< méthode invoquée, < méthode invoquée, paramètres d’entrée, paramètres d’entrée, paramètres de sortie >paramètres de sortie >
retourretour
retourretour
serveurserveurclientclient
métaobjetmétaobjet
exécutionexécutionde méthodede méthode
1122
méthodeméthode
InvocationExecutéeNonRéifiéeInvocationExecutéeNonRéifiée
méthodeméthode
servic
es
ervice
3939
Étape 2Étape 2Intercession comp.Intercession comp.
Étape 2Étape 2Intercession comp.Intercession comp.
mémétaobjettaobjet
serveurserveurclientclient
Objectifs de testObjectifs de test
• Complétude Complétude – – Toute méthode réifiée doit être Toute méthode réifiée doit être activable à l’aide des mécanismes d’intercession activable à l’aide des mécanismes d’intercession comportementale.comportementale.
• Cohérence Cohérence – – Les mécanismes d’intercession Les mécanismes d’intercession doivent déclencher l’exécution de la méthode doivent déclencher l’exécution de la méthode demandée.demandée.
• EncapsulationEncapsulation – – L’activité interne de l’objet ne L’activité interne de l’objet ne doit pas être réifiée. doit pas être réifiée.
4040
Étape 2Étape 2
Intercession comp.Intercession comp.Étape 2Étape 2
Intercession comp.Intercession comp.
métaobjetmétaobjet
oracleoracle
moniteurmoniteur
servic
es
ervice
intercessionintercession
comportementcomportement
44méthodeméthode
55
66 < Trace d’exécution >< Trace d’exécution >
a.a. Les méthodes réifiées sontLes méthodes réifiées sont appliquées sur l’objet appliquées sur l’objet
b. Les paramètres de sortie sont retournés au moniteur
11 méthodeméthode
33méthodeméthode
22
serveurserveur
mémétaobjettaobjet
serveurserveurclientclient
ComparaisonComparaison
< méthode invoquée, < méthode invoquée, paramètres d’entrée, paramètres d’entrée, paramètres de sortie >paramètres de sortie >
retourretour
77retourretour
1010
1111
1212
99retourretour
88
a.a. Les méthodes réifiées sontLes méthodes réifiées sont appliquées sur l’objet appliquées sur l’objet
b.b. Les paramètres de sortie sont Les paramètres de sortie sont retournés au moniteur retournés au moniteur
réific
atio
nré
ifica
tion
4141
Étape 3Étape 3
IntrospectionIntrospectionÉtape 3Étape 3
IntrospectionIntrospection
mémétaobjettaobjet
serveurserveurclientclient
Objectifs de testObjectifs de test
• ComplétudeComplétude – – L’ensemble de l’état de l’objet L’ensemble de l’état de l’objet doit être observé.doit être observé.
• CohérenceCohérence – – Les valeurs observées doivent être Les valeurs observées doivent être les valeurs courantes des attributs de l’objet.les valeurs courantes des attributs de l’objet.
4242
Étape 3Étape 3
IntrospectionIntrospectionÉtape 3Étape 3
IntrospectionIntrospection
MétaobjetMétaobjet
réific
atio
nré
ifica
tion
servic
es
ervice
intercessionintercessioncomportementalecomportementale introspectionintrospection
mét
aco
ntr
ôle
mét
aco
ntr
ôle
objet serveurobjet serveur
moniteurmoniteur
comportementcomportement état/structureétat/structure
oracleoracle
L’état «introspecté», L’état «introspecté», est-il cohérent avec est-il cohérent avec celui d’initialisation?celui d’initialisation?
66 7788
9
état d’introspectionétat d’introspection
22 33
11
4455
état d’initialisationétat d’initialisation
mémétaobjettaobjet
serveurserveurclientclient
4343
Étape 4Étape 4
Intercession struct.Intercession struct.Étape 4Étape 4
Intercession struct.Intercession struct.
mémétaobjettaobjet
serveurserveurclientclient
Objectifs de testObjectifs de test
• Complétude Complétude – – L’ensemble de l’état de l’objet L’ensemble de l’état de l’objet doit pouvoir être mis à jour depuis le métaobjet.doit pouvoir être mis à jour depuis le métaobjet.
• Cohérence Cohérence – – Les valeurs de mise à jour Les valeurs de mise à jour utilisées doivent être celles fournies par le utilisées doivent être celles fournies par le métaobjet.métaobjet.
4444
Étape 4Étape 4
Intercession struct.Intercession struct.Étape 4Étape 4
Intercession struct.Intercession struct.
moniteurmoniteur
intercessionintercessioncomportementalecomportementale introspectionintrospection
comportementcomportement état/structureétat/structure
intercessionintercessionstructurellestructurelle
MétaobjetMétaobjet
réific
atio
nré
ifica
tion
servic
es
ervice
objet serveurobjet serveur
oracleoracle
22
11 Initialisation de l’état de l’objetInitialisation de l’état de l’objet
33
44état initialisationétat initialisation
mét
aco
ntr
ôle
mét
aco
ntr
ôle
mémétaobjettaobjet
serveurserveurclientclient
4545
Étape 4Étape 4
Intercession struct.Intercession struct.Étape 4Étape 4
Intercession struct.Intercession struct.
moniteurmoniteur
intercessionintercessioncomportementalecomportementale introspectionintrospection
comportementcomportement état/structureétat/structure
intercessionintercessionstructurellestructurelle
MétaobjetMétaobjet
réific
atio
nré
ifica
tion
servic
es
ervice
objet serveurobjet serveur
oracleoracle
2,62,6
1,51,5 Modification de l’état de l’objetModification de l’état de l’objet
3,73,7
88état initialisationétat initialisation
L’état résultant de L’état résultant de l’intercession, est-il l’intercession, est-il cohérent avec celui cohérent avec celui d’initialisation?d’initialisation?
1010
état intercessionétat intercession
1111
99
mét
aco
ntr
ôle
mét
aco
ntr
ôle
mémétaobjettaobjet
serveurserveurclientclient
4646
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
Création du lien d’interaction Création du lien d’interaction
1.1. RéificationRéification
2.2. Intercession comportementaleIntercession comportementale
3.3. IntrospectionIntrospection
4.4. Intercession structurelle Intercession structurelle
Destruction du lien d’interactionDestruction du lien d’interaction
Étapes Étapes GénéralesGénérales
Étape Étape SpécifiqueSpécifique
Étape Étape SpécifiqueSpécifique
4747
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
Création du lien d’interactionCréation du lien d’interaction
1.1. RéificationRéification
2.2. Intercession comportementaleIntercession comportementale
3.3. IntrospectionIntrospection
4.4. Intercession structurelleIntercession structurelle
Destruction du lien d’interactionDestruction du lien d’interaction
Étapes Étapes GénéralesGénérales
Étape Étape SpécifiqueSpécifique
Étape Étape SpécifiqueSpécifique
4848
PlanPlanPlanPlan
• État de l’art et problématiqueÉtat de l’art et problématique
• Stratégie de test Stratégie de test
• Case study : the FCase study : the FRIENDS MOPRIENDS MOP
• Expériences et résultatsExpériences et résultats
• Bilan, conclusions et perspectivesBilan, conclusions et perspectives
4949
• État de l’art et problématiqueÉtat de l’art et problématique
• Stratégie de test Stratégie de test
• Case study : the FCase study : the FRIENDS MOPRIENDS MOP
• Expériences et résultats
• Bilan, conclusions et prospectives
PlanPlanPlanPlan
– MOP implementation and architectureMOP implementation and architecture
– Testing the MOP generation / instantiation /Testing the MOP generation / instantiation /
destruction destruction
5050
The The FFRIENDSRIENDS MOPMOPThe The FFRIENDSRIENDS MOPMOP
• A MOP for the development of fault-tolerant CORBA A MOP for the development of fault-tolerant CORBA applicationsapplications
CORBA serviceCORBA serviceimplementationimplementation
ApplicationApplicationprogrammerprogrammer
CORBA-orientedCORBA-orientedFT-mechanismFT-mechanism
Fault toleranceFault toleranceprogrammerprogrammer
source code analysis and transformationsource code analysis and transformation
Metaprogram (Metaprogram (MOP implementationMOP implementation))
MOPMOP instanceinstance
CORBACORBAserviceservice
implementationimplementation
MOPMOPprogrammerprogrammer
Open CompilerOpen Compiler(compile-time reflection)(compile-time reflection)
CORBA metaobjectCORBA metaobject
CORBA objectCORBA object
MOPMOP instance instance
instantiationinstantiationTesting th
e metaprogram
Testing th
e metaprogram
5151
A CORBA applicationA CORBA applicationA CORBA applicationA CORBA application
CORBA serviceCORBA serviceimplementationimplementation
serverserverstubstubclientclient
Service
Service
Service
Service
interobjectinterobjectcommunicationscommunications
site 1 site 1 site 2 site 2
5252
A FA FRIENDSRIENDS CORBA application CORBA applicationA FA FRIENDSRIENDS CORBA application CORBA application
MOPMOP instanceinstance
CORBACORBAserviceservice
implementationimplementation
CORBA-orientedCORBA-orientedFT-mechanismFT-mechanism
serverserverstubstubclientclient
Service
Service
MetaStubMetaStub MetaServerMetaServer
ReifiedStubReifiedStub
Service
Service
metastubmetastub metaservermetaserver
MOFactoryMOFactory
ReifiedServerReifiedServer
intermetaobjectintermetaobjectcommunicationscommunications
ORBORB
OFactoryOFactory
site 1 site 1 site 2 site 2
Testing the creation and destruction
Testing the creation and destruction
of the O-MO interaction lin
k
of the O-MO interaction lin
k
5353
Test OrderTest OrderTest OrderTest Order
Specific Specific StepStep
Specific Specific StepStep
MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)
MOP instantiationMOP instantiation (O-MO link creation)(O-MO link creation)
1.1. ReificationReification
2.2. Behavioral intercessionBehavioral intercession
3.3. IntrospectionIntrospection
4.4. Structural intercessionStructural intercession
MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)
5454
Test OrderTest OrderTest OrderTest Order
Specific Specific StepStep
Specific Specific StepStep
MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)
MOP instantiation MOP instantiation (O-MO link creation)(O-MO link creation)
1.1. ReificationReification
2.2. Behavioral intercessionBehavioral intercession
3.3. IntrospectionIntrospection
4.4. Structural intercessionStructural intercession
MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)
MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)
5555
Testing the metaprogramTesting the metaprogramTesting the metaprogramTesting the metaprogram
serverservercodecode
Open CompilerOpen Compiler(OpenC++)(OpenC++)non-reflectivenon-reflective
codecode
1.1. Code filtering rulesCode filtering rules
Metaprogram : set of code analysis and transformation Metaprogram : set of code analysis and transformation rules rules
ErrorError messagesmessages
stubstubcodecode
5656
Testing the metaprogramTesting the metaprogramTesting the metaprogramTesting the metaprogram
serverservercodecode
Open CompilerOpen Compiler(OpenC++)(OpenC++)non-reflectivenon-reflective
codecode
1.1. Code filtering rulesCode filtering rules
2.2. Data container generation rulesData container generation rules
Metaprogram : set of code analysis and transformation Metaprogram : set of code analysis and transformation rules rules
ErrorError messagesmessages
stubstubcodecode
CORBACORBAInterfaceInterface
RepositoryRepository
5757
Testing the metaprogramTesting the metaprogramTesting the metaprogramTesting the metaprogram
serverservercodecode
Open CompilerOpen Compiler(OpenC++)(OpenC++)non-reflectivenon-reflective
codecode
reflective codereflective code
MOPMOP
1.1. Code filtering rulesCode filtering rules
2.2. Data container generation rulesData container generation rules
3.3. Reflective code generation rulesReflective code generation rules
serverserverccodeode
Metaprogram : set of code analysis and transformation Metaprogram : set of code analysis and transformation rules rules
ErrorError messagesmessages
stubstubcodecode
CORBACORBAInterfaceInterface
RepositoryRepository
MOPMOPstubstubccodeode
5858
Reflective code generation rulesReflective code generation rulesReflective code generation rulesReflective code generation rules
55OracleOracle
DoesDoes the generated code conform to the the generated code conform to the codecode
specified for the MOP?specified for the MOP?
Open compilerOpen compiler
22 3311
MOPMOPccodeode
44
metaprogrammetaprogram behavioral reflectionbehavioral reflection Code for reification & behavioral intercessionCode for reification & behavioral intercession structural reflection structural reflection Code for saving & restoring object states Code for saving & restoring object states objet-metaobjet link objet-metaobjet link Code for handling the objet-metaobjet linkCode for handling the objet-metaobjet link
classesclasses with withdifferent different method signaturesmethod signatures
classesclasses with withdifferent types ofdifferent types ofattributesattributes
classesclasses with withmethods & attributes methods & attributes
5959
Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -
Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -
class a{class a{ public:public:
int int foofoo()(){{
// foo’s body// foo’s body
}}
privateprivate::
int foo2() {int foo2() {
//foo2’s body//foo2’s body }}
};};
clclass a{ass a{ public:public: int int foofoo()(){{ //reification code//reification code }}
int Wrapped_foo(){int Wrapped_foo(){ // foo’s body// foo’s body }}
int Execute_fooBody(){int Execute_fooBody(){ return Wrapped_foo()return Wrapped_foo() }}
private:private: int foo2() {int foo2() { //foo2’s body//foo2’s body }}};};
behavioral reflectionbehavioral reflection
Implemented using method wrappingImplemented using method wrapping
metaprogrammetaprogram
OracleOracle
DoesDoes the generated code conform to the generated code conform to
the the codecode specified for the MOP? specified for the MOP?
6060
Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -
Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -
class a{class a{ public:public:
int int foofoo()(){{
// foo’s body// foo’s body
}}
privateprivate::
int foo2() {int foo2() {
//foo2’s body//foo2’s body }}
};};
clclass a{ass a{ public:public: int int foofoo()(){{ //reification code//reification code }}
int Wrapped_foo(){int Wrapped_foo(){ // foo’s body// foo’s body }}
int Execute_fooBody(){int Execute_fooBody(){ return Wrapped_foo()return Wrapped_foo() }}
private:private: int foo2() {int foo2() { //foo2’s body//foo2’s body }}};};
behavioral reflectionbehavioral reflection
Implemented using method wrappingImplemented using method wrapping
metaprogrammetaprogram
OracleOracle
DoesDoes the generated code conform to the generated code conform to
the the codecode specified for the MOP? specified for the MOP?
6161
Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -
Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -
OracleOracle
DoesDoes the generated code conform to the generated code conform to
the the codecode specified for the MOP? specified for the MOP?
class a{class a{ public:public:
int int foofoo()(){{
// foo’s body// foo’s body
}}
privateprivate::
int foo2() {int foo2() {
//foo2’s body//foo2’s body }}
};};
clclass a{ass a{ public:public: int int foofoo()(){{ //reification code//reification code }}
int Wrapped_foo(){int Wrapped_foo(){ // foo’s body// foo’s body }}
int Execute_fooBody(){int Execute_fooBody(){ return Wrapped_foo()return Wrapped_foo() }}
private:private: int foo2() {int foo2() { //foo2’s body//foo2’s body }}};};
behavioral reflectionbehavioral reflection
Implemented using method wrappingImplemented using method wrapping
metaprogrammetaprogram
6262
Test OrderTest OrderTest OrderTest Order
Specific Specific StepStep
Specific Specific StepStep
MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)
MOP instantiationMOP instantiation (O-MO link creation)(O-MO link creation)
1.1. ReificationReification
2.2. Behavioral intercessionBehavioral intercession
3.3. IntrospectionIntrospection
4.4. Structural intercessionStructural intercession
MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)
6363
Test OrderTest OrderTest OrderTest Order
Specific Specific StepStep
Specific Specific StepStep
MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)
MOP instantiationMOP instantiation (O-MO link creation)(O-MO link creation)
1.1. ReificationReification
2.2. Behavioral intercessionBehavioral intercession
3.3. IntrospectionIntrospection
4.4. Structural intercessionStructural intercession
MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)
MOP instantiation MOP instantiation (O-MO link creation)(O-MO link creation)
6464
MOP instantiationMOP instantiationMOP instantiationMOP instantiation
Test goalsTest goals
• Unicity Unicity – – Each object must be linked to one and Each object must be linked to one and only one metaobject.only one metaobject.
• Interaction Interaction – – Objects and metaobjects can only Objects and metaobjects can only interact if their respective identifiers are correctly interact if their respective identifiers are correctly exchanged during the instantiation process.exchanged during the instantiation process.
6565
MOP instantiationMOP instantiationMOP instantiationMOP instantiation
OF
acto
ryO
Fa
ctory
MOFactoryMOFactory
testtestdriverdriver
ooracle racle
66
77
88
<object, metaobject><object, metaobject>
<object’, metaobject’><object’, metaobject’>
33
44
55
metaobjectmetaobject
11
Se
rviceS
ervice
2 2
objectobject
6666
PlanPlanPlanPlan
• État de l’art et problématiqueÉtat de l’art et problématique
• Stratégie de test Stratégie de test
• Case study : the FCase study : the FRIENDS MOPRIENDS MOP
• Expériences et résultatsExpériences et résultats
• Bilan, conclusions et perspectivesBilan, conclusions et perspectives
6767
Vue fonctionnelle du banc de testVue fonctionnelle du banc de testVue fonctionnelle du banc de testVue fonctionnelle du banc de test
classes d’entréeclasses d’entrée
Test du métaprogrammeTest du métaprogramme
• Règles de filtrage de codeRègles de filtrage de code• Règles de génération des conteneursRègles de génération des conteneurs• Règles de génération des mécanismes réflexifsRègles de génération des mécanismes réflexifs
outillageoutillaged’analysed’analyse
de codede code
outillage de outillage de génération de codegénération de code
Création du lienCréation du liend’interaction d’interaction
du MOPdu MOP
Test des mécanismes du MOPTest des mécanismes du MOPmise en œuvre des environnements de testmise en œuvre des environnements de test
Destruction du lienDestruction du liend’interaction d’interaction
du MOPdu MOP
• RéificationRéification• Intercession comportementaleIntercession comportementale• Introspection Introspection • Intercession structurelleIntercession structurelle
6868
Banc de TestBanc de TestBanc de TestBanc de Test
testeurtesteur
MétaprogrammeMétaprogramme FRIENDS FRIENDS
référentielréférentield’interfacesd’interfaces
CORBACORBA
implémentation réflexiveimplémentation réflexived’un objet CORBAd’un objet CORBA
conteneursconteneursd’invocation d’invocation
et d’étatet d’état
compilateur standardcompilateur standard (C++)
serveurserveurréflexifréflexif
mandatairemandataireréflexifréflexif
stubstub squelettesquelette
interfaceinterfaceIDLIDL
implémentationimplémentationdu serveurdu serveur
compilateur IDLcompilateur IDL
6969
Banc de TestBanc de TestBanc de TestBanc de Test
testeurtesteur
Paramètres pour Paramètres pour la génération la génération
d’implémentations d’implémentations d’objets CORBAd’objets CORBA
stubstub squelettesquelette
interfaceinterfaceIDLIDL
implémentationimplémentationdu serveurdu serveur
compilateur IDLcompilateur IDL
MétaprogrammeMétaprogramme FRIENDS FRIENDS
référentielréférentield’interfacesd’interfaces
CORBACORBA
implémentation réflexiveimplémentation réflexived’un objet CORBAd’un objet CORBA
conteneursconteneursd’invocation d’invocation
et d’étatet d’état
compilateur standardcompilateur standard (C++)
serveurserveurréflexifréflexif
mandatairemandataireréflexifréflexif
générateurgénérateurd’objets CORBAd’objets CORBA
outillage pour le test du
métaprogramme
métaobjetmétaobjet
moniteurmoniteurde testde test
oracleoracle
objetobjet
environnements de test
7070
interface Universal_Driver{interface Universal_Driver{ RetValue Invoke(RetValue Invoke( in string serviceName,in string serviceName,
in string operationName,in string operationName,inout ListOfArguments arguments)inout ListOfArguments arguments)
raises (DriverException);raises (DriverException);};};
Moniteur de test génériqueMoniteur de test génériqueMoniteur de test génériqueMoniteur de test générique
Interface IDL du MoniteurInterface IDL du Moniteur référentiel référentiel d’interfacesd’interfaces
CORBACORBA
description de l’interface du serveurdescription de l’interface du serveurdescription de l’opération à invoquerdescription de l’opération à invoquer
serviceservicede nomsde noms
nom du nom du serviceservice
référence référence CORBACORBA
argument 1argument 2
argument n
référence de l’objet
description de l’opération
valeur de retour
générateur générateur de valeurs de valeurs aléatoiresaléatoires
valeurvaleur
typetype
• Création dynamique de requêtes Création dynamique de requêtes
CORBA (interface DII) CORBA (interface DII)• Interopérabilité langage-plate-formeInteropérabilité langage-plate-forme• Composant réutilisable dans d’autresComposant réutilisable dans d’autres
contextes contextes
Un
iversal_Driver
Un
iversal_Driver
7171
Cas de test (1)Cas de test (1)Cas de test (1)Cas de test (1)
Réification etRéification etIntercession comportementaleIntercession comportementale
• 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
Types Simples: long, short, …
chaînes de caractères, références CORBAclasses
Type complexes:structures, tableaux séquences
Cas de Cas de TestTest
7272
Types Simples: long, short, …
chaînes de caractères, références CORBAclasses
Type complexes:structures, tableaux séquences
Cas de test (1)Cas de test (1)Cas de test (1)Cas de test (1)
Réification etRéification etIntercession comportementaleIntercession comportementale
• 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
interface shortParameters{interface shortParameters{ short shortReturn();short shortReturn();
void shortIn(in short arg);void shortIn(in short arg);void shortOut(out short arg);void shortOut(out short arg);void shortInOut(inout short arg);void shortInOut(inout short arg);
};};
Cas de Cas de TestTest
– Variation du mode de passage Variation du mode de passage
7373
Cas de test (2)Cas de test (2)Cas de test (2)Cas de test (2)
Cas de Cas de TestTest
• 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
Introspection etIntrospection etIntercession structurelleIntercession structurelle
Types Simples: long, short, …
chaînes de caractères, références CORBAclasses
Type complexes:structures, tableaux séquences
7474
Cas de test (2)Cas de test (2)Cas de test (2)Cas de test (2)
interface shortAtt{interface shortAtt{attribute short shortAtt1;attribute short shortAtt1;
};};interface longAtt : shortAtt{interface longAtt : shortAtt{
attribute long longAtt1;attribute long longAtt1;};};
• 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
Introspection etIntrospection etIntercession structurelleIntercession structurelle
– HéritageHéritage
Cas de Cas de TestTest
Types Simples: long, short, …
chaînes de caractères, références CORBAclasses
Type complexes:structures, tableaux séquences
7575
Génération des cas de testGénération des cas de testGénération des cas de testGénération des cas de test
• Méthode de génération aléatoire probabiliste : test Méthode de génération aléatoire probabiliste : test statistiquestatistique
• 532 serveurs différents532 serveurs différents• 189 interfaces pour le test des mécanismes de réification et 189 interfaces pour le test des mécanismes de réification et
d’intercession comportementaled’intercession comportementale
• 197 interfaces pour le test des mécanismes d’introspection et 197 interfaces pour le test des mécanismes d’introspection et d’intercession structurelled’intercession structurelle
• 156 interfaces contenant à la fois des méthodes et des attributs156 interfaces contenant à la fois des méthodes et des attributs
• 24 méthodes en moyenne par interface24 méthodes en moyenne par interface
• Plus d’un million d’invocations de méthode Plus d’un million d’invocations de méthode effectuées par le moniteur de test lors des effectuées par le moniteur de test lors des expériencesexpériences
7676
Exemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiées
Absence d’initialisation des attributsAbsence d’initialisation des attributsIntrospectionIntrospection
Confusion entre méthode publique C++ et méthode IDLConfusion entre méthode publique C++ et méthode IDLMétaprogrammeMétaprogramme
Plusieurs métaobjets par objetPlusieurs métaobjets par objetCréation du lienCréation du lien
Réification identique de méthodes différentesRéification identique de méthodes différentesRéificationRéification
Violation du besoin d’encapsulationViolation du besoin d’encapsulationIntercession comp.Intercession comp.
Formatage incorrect du conteneur d’étatFormatage incorrect du conteneur d’étatIntercession struct.Intercession struct.
Le métaobjet survit à l’objetLe métaobjet survit à l’objetDestruction du lienDestruction du lien
ProblèmeProblèmeÉtapeÉtape
test
inc
rém
en
tal
test
inc
rém
en
tal
spécificationspécification conceptionconception implémentationimplémentation
7777
Exemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiées
Absence d’initialisation des attributsAbsence d’initialisation des attributsIntrospectionIntrospection
Confusion entre méthode publique C++ et méthode IDLConfusion entre méthode publique C++ et méthode IDLMétaprogrammeMétaprogramme
Plusieurs métaobjets par objetPlusieurs métaobjets par objetCréation du lienCréation du lien
Réification identique de méthodes différentesRéification identique de méthodes différentesRéificationRéification
Violation du besoin d’encapsulationViolation du besoin d’encapsulationIntercession comp.Intercession comp.
Formatage incorrect du conteneur d’étatFormatage incorrect du conteneur d’étatIntercession struct.Intercession struct.
Le métaobjet survit à l’objetLe métaobjet survit à l’objetDestruction du lienDestruction du lien
ProblèmeProblèmeÉtapeÉtape
test
inc
rém
en
tal
test
inc
rém
en
tal
Problèmes facilement résolus car identifiés pendant le Problèmes facilement résolus car identifiés pendant le développement du MOPdéveloppement du MOP
7878
PlanPlanPlanPlan
• Stratégie de test Stratégie de test
• Case study : the FCase study : the FRIENDS MOPRIENDS MOP
• Expériences et résultatsExpériences et résultats
• Bilan, conclusions et perspectivesBilan, conclusions et perspectives
7979
BilanBilanBilanBilan
• Analyse des mécanismes réflexifs des MOPs en Analyse des mécanismes réflexifs des MOPs en
vue du testvue du test
• Stratégie de test générale et incrémentaleStratégie de test générale et incrémentale
(Ordre, objectifs et environnements de test)(Ordre, objectifs et environnements de test)
• Faisabilité et efficacité de l’approcheFaisabilité et efficacité de l’approche
(Le MOP de F(Le MOP de FRIENDSRIENDS comme cas d’étude) comme cas d’étude)
• Développement d’un banc de test réutilisable Développement d’un banc de test réutilisable
8080
ConclusionsConclusionsConclusionsConclusions
• Intégration du test dans le développement des MOPsIntégration du test dans le développement des MOPs
– Complémentarité de points de vue durant la phase Complémentarité de points de vue durant la phase
d’analyse (travail préparatoire au test)d’analyse (travail préparatoire au test)
– Conception en vue de la testabilitéConception en vue de la testabilité
• Intérêt de la séparation de mécanismes vis-à-vis du Intérêt de la séparation de mécanismes vis-à-vis du
test : test :
– Les MOPs peuvent (et doivent) être testés en Les MOPs peuvent (et doivent) être testés en isolation isolation
– Test d’intégration de mécanismes plus simpleTest d’intégration de mécanismes plus simple
8181
Autres cibles potentiellesAutres cibles potentiellesAutres cibles potentiellesAutres cibles potentielles
• RéificationRéification
• Intercession comportementaleIntercession comportementale
• IntrospectionIntrospection
• Intercession structurelleIntercession structurelle
- Intercepteurs de CORBAIntercepteurs de CORBA- Supervision et gestion de Supervision et gestion de systèmes à objet : systèmes à objet : ( (Systèmes multimédia, QoS))
- Sérialisation d’objetsSérialisation d’objets ( (Java, FT-CORBA))- Perception des Perception des environnements d’exécution environnements d’exécution ( (Systèmes conscients de leur
contexte))
8282
PerspectivesPerspectivesPerspectivesPerspectives
• Définition de critères de test fonctionnels et structurels Définition de critères de test fonctionnels et structurels pour le choix des entrées de testpour le choix des entrées de test
• Application de la stratégie de test à d’autres systèmes Application de la stratégie de test à d’autres systèmes
proposant des mécanismes réflexifs similairesproposant des mécanismes réflexifs similairesMécanismes d’interception de CORBA et de sérialisationdes applications suivant la norme FT-CORBA
• Prise en compte d’autres types de mécanismes Prise en compte d’autres types de mécanismes
réflexifsréflexifs ( ( propres aux systèmes mobiles, multimédia … ) )
• Test de métaprogramme Test de métaprogramme Vers le test de systèmes Vers le test de systèmes
programmés par aspects ?programmés par aspects ?
Contribution à la validation des Contribution à la validation des
systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :
stratégie de test de stratégie de test de
protocoles à métaobjetsprotocoles à métaobjets
Contribution à la validation des Contribution à la validation des
systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :
stratégie de test de stratégie de test de
protocoles à métaobjetsprotocoles à métaobjets
Juan Carlos Ruiz GarcíaJuan Carlos Ruiz García
Tolérance aux fautes et Tolérance aux fautes et Sûreté de Fonctionnement informatiqueSûreté de Fonctionnement informatique