validation des services web à l’aide de la génération automatique de tests

39
1/33 Validation des services web à l’aide de la génération automatique de tests Vincent Pretre 18 mars 2009 Jury : Philippe Balbiani Rapporteur IRIT, Toulouse Fabrice Bouquet Encadrant LIFC, Besançon Christophe Lang Encadrant LIFC, Besançon Jean-Christophe Lapayre Examinateur LIFC, Besançon Pierre-Alain Muller Examinateur UHA, Mulhouse Ioannis Parissis Rapporteur INP/Esisar, Grenoble

Upload: vincentpsarga

Post on 22-Jun-2015

407 views

Category:

Education


0 download

DESCRIPTION

Slides from my Ph.D defensis (in french)

TRANSCRIPT

Page 1: Validation des services web à l’aide de la génération automatique de tests

1/33

Validation des services web à l’aide de la génération automatique de tests

Vincent Pretre18 mars 2009

Jury :

Philippe Balbiani Rapporteur IRIT, Toulouse

Fabrice Bouquet Encadrant LIFC, Besançon

Christophe Lang Encadrant LIFC, Besançon

Jean-Christophe Lapayre Examinateur LIFC, Besançon

Pierre-Alain Muller Examinateur UHA, Mulhouse

Ioannis Parissis Rapporteur INP/Esisar, Grenoble

Page 2: Validation des services web à l’aide de la génération automatique de tests

2/33

Sommaire

La qualité pour les services web (WS)

Assurer la qualité des WS

iTaC-QoS – une plateforme de validation des WS

Conclusion et travaux futurs

Page 3: Validation des services web à l’aide de la génération automatique de tests

3/33

SommaireLa qualité pour les services web

La qualité pour les services web (WS)

introduction aux WS

critères de qualité

facteurs de qualité

Assurer la qualité des WS

iTaC-QoS – une plateforme de validation des WS

Conclusion et travaux futurs

Page 4: Validation des services web à l’aide de la génération automatique de tests

4/33

La qualité pour les services webIntroduction aux services web

Fournisseur

ClientService web

XML1 – Conception2 – Développement3 – Déploiement

6 –

4 - Déclaration

Web Service Description Language

Simple Object Access Protocol

Universal Description,Discovery and Integration

Composition

5 – Recherche

InternetUtilisation

recherche

4 –

Page 5: Validation des services web à l’aide de la génération automatique de tests

5/33

Justesse des résultatscorrects

complets

Accessibilitéfonctionnelle

comportementale

Sécurité des donnéesvie privée des utilisateurs

données privées

La qualité pour les services webSix critères de qualité

Temps de réponsedépend de l’utilisateur et du type de service

Robustessecapacité à résister aux attaques

capacité à résister aux erreurs

tenue à la charge

Consommationbande-passante

temps machine

movieDatabase.byActor(‘Michel Audiard’) → [‘Faut pas prendre les enfant du bon Dieu pour des canards sauvages’, ‘Elle boit pas, elle fume pas, elle drague pas … mais elle cause’, ‘Comment réussir … quand on est con et pleurnichard’, ‘C’est jeune et ça sait tout!’, ‘Tendre poulet’] Nom, prénom, adresse, numéro

sécurité sociale, téléphone …

Brouillon de messages, recherche effectuée, image …

Assemblage pano

Attente bus

10 sec

2 min

10 sec

5 min

FPR (Privacy), FDP (Data privacy)

FTA (Access)

movieDatabase.details(112) → {‘Les tontons flingueurs’, 1963, ‘Lautner’}

FRU (Ressource Utilisation)

FPT (Protection)

Page 6: Validation des services web à l’aide de la génération automatique de tests

6/33

Qualité des services webFacteurs de qualité

Conception et développement

Déploiement

Utilisation

Réseau Relations

Qualité des résultats

Sécurité des données

Accessibilité

Temps de réponse

Robustesse

Consommation

Page 7: Validation des services web à l’aide de la génération automatique de tests

7/33

Qualité des services webProblématique traitée

Problématique : comment être sûr de la qualité des services découverts ?

Solution apportéeajout d’une notion de qualité à UDDI

utilisation du test à partir de modèle

Domaines couvertsjustesse des résultats

sécurité des données

accessibilité comportementale

Page 8: Validation des services web à l’aide de la génération automatique de tests

8/33

Qualité des services webCouverture de la solution

Conception et développement

Déploiement

Utilisation

Réseau Relations

Qualité des résultats

Sécurité des données

Accessibilité

Temps de réponse

Robustesse

Consommation

Page 9: Validation des services web à l’aide de la génération automatique de tests

9/33

SommaireAssurer la qualité des services web

La qualité pour les services web

Assurer la qualité des services web

modélisation

validation

evaluation

iTaC-QoS – une plateforme de validation des services web

Conclusion et travaux futurs

Page 10: Validation des services web à l’aide de la génération automatique de tests

10/33

Assurer la qualité des services webModélisation

Unified Modeling Languagerépandu

expressif

Trois parties du WS à couvririnterface proposée

comportements des opérations

compositions effectuées

Interface

Comportement

Composition

WSDL

WSDL-S

OWL-S

BPEL

A comparative study of meta-model integration and interoperability in UML and Web Services (A. Staikopoulos et B. Bordard, 2005)

A comparative study of meta-model integration and interoperability in UML and Web Services (A. Staikopoulos et B. Bordard, 2005)

Modeling semantic Web Services: a case study (C.J. Acuna et E. Marcos, 2006)génération WSDL et OWL-S grâce à UML

Modeling semantic Web Services: a case study (C.J. Acuna et E. Marcos, 2006)génération WSDL et OWL-S grâce à UML

Modeling crosscutting services with UML sequence diagrams (M. Deubler, 2005)MDA applied: from sequence diagrams to Web Services choreography (B. Bauer et J.P. Müller, 2004)Towards using UML 2 form modelling Web Service collaboration (G. Kramler et al. 2005)

génération BPEL depuis UML

Modeling crosscutting services with UML sequence diagrams (M. Deubler, 2005)MDA applied: from sequence diagrams to Web Services choreography (B. Bauer et J.P. Müller, 2004)Towards using UML 2 form modelling Web Service collaboration (G. Kramler et al. 2005)

génération BPEL depuis UML

UML-based service discovery framework (A. Zisman et G. Spanoudakis, 2006)remplacement WSDL par UML dans UDDI

Representing Web Services with UML (E. Marcos et al. 2003)génération WSDL grâce à UML

UML-based service discovery framework (A. Zisman et G. Spanoudakis, 2006)remplacement WSDL par UML dans UDDI

Representing Web Services with UML (E. Marcos et al. 2003)génération WSDL grâce à UML

Automatic generation of service ontology from UML diagrams for semantic Web Services (J.H. Yang et I.J. Chung, 2006)

génération OWL-S depuis UMLModel-driven design and development of semantic Web Service applications (M. Brambilla et al. 2007)

génération WSMO depuis BPMN & WebML

Automatic generation of service ontology from UML diagrams for semantic Web Services (J.H. Yang et I.J. Chung, 2006)

génération OWL-S depuis UMLModel-driven design and development of semantic Web Service applications (M. Brambilla et al. 2007)

génération WSMO depuis BPMN & WebML

Page 11: Validation des services web à l’aide de la génération automatique de tests

11/33

Assurer la qualité des services webValidation

Divers domaines traitésvérification de propriétés (des services ou des compositions)substitutivitéintégration d’un service dans une composition ou un site webqualité de servicequalité fonctionnellerobustessenon régression

Trois types d’approchesvérification (model-checking, preuve …)validation (test par mutations, test de charge, test fonctionnel …)approche conjointe

Page 12: Validation des services web à l’aide de la génération automatique de tests

12/33

Assurer la qualité des services webEvaluation

Automatic conformance testing of web services (R. Heckel et L. Mariani, 2005)The audition framework for testing web services interoperability (A. Bertolino et A. Polini,

2005)Verification of web services using an enhanced UDDI server (W-T. Tsai et al. 2003)

Automatic conformance testing of web services (R. Heckel et L. Mariani, 2005)The audition framework for testing web services interoperability (A. Bertolino et A. Polini,

2005)Verification of web services using an enhanced UDDI server (W-T. Tsai et al. 2003)

Fournisseur Client

Service web

1 – Conception, création et déploiement

2 - Enregistrement 3 - Recherche

4 - Utilise

2 - Soumission

3 – Génération des tests

4 – Exécution des tests

5 - Recherche

6 - Utilisation

Page 13: Validation des services web à l’aide de la génération automatique de tests

13/33

Assurer la qualité des services webBilan

Modélisationaucune méthode modélisant l’interface, les comportements et les compositions

modèles de conception

Validationgrand choix de méthodes (preuve, model-checking, test …)

test fonctionnel le plus adapté à nos besoins

Évaluationutiliser UDDI afin d’assurer la qualité aux utilisateurs

méthodes trop binaires

Page 14: Validation des services web à l’aide de la génération automatique de tests

14/33

SommaireiTaC-QoS – une plateforme de validation

des services web

La qualité pour les services web

Assurer la qualité des services web

iTaC-QoS – une plateforme de validation des services web

méthode outillée

conception et traitement du modèle

gestion des tests

validation

Conclusion et travaux futurs

Page 15: Validation des services web à l’aide de la génération automatique de tests

15/33

iTaC-QoSPrésentation de l’exemple

Service web de blogCouplé à une plate-forme de publicationSix opérations

registerloginlogoutwriteDraftreadDraftPublish

Aucune composition, mais dépendances temporellesDeux implémentations

register login

logout

writeDraft

readDraft

publish

Page 16: Validation des services web à l’aide de la génération automatique de tests

16/33

iTaC-QoSPrésentation de la méthode

A Model based Validation Framework for Web Services (V. Pretre, F. Bouquet, C. Lang - STV 2007)

1 – Conception, création, déploiement

2 – Enregistrement

3 – Génération des tests

4 – Exécution destests

5 – Recherche

6 – Utilisation

Fournisseur Client

7 – Envoi des notes

8 – Utilisationet modélisation

6 – Recherche

5 – Calcul des notes

TD

3 – Extraction des relations

4 – Fusion et traitements du modèle

5 – Génération des tests6 – Réification

7 - Exécution

8 – Calcul des notes

10 – Envoi des notes

9 – Recherche

11 – Utilisation

Comment modéliser efficacement un WS ?

Comment extraire les relations du modèle ?

Comment gérer la composition de WS ?

Comment réifier automatiquement les tests ?

Comment évaluer la qualité d’un WS ?

Comment obtenir des notes faciles à comprendre ?

Modélisation Découverte des relations Fusion des modèles Génération des tests Réification Exécution Evaluation

Comment exécuter les tests ?

Comment générer les tests ?

Page 17: Validation des services web à l’aide de la génération automatique de tests

17/33

iTaC-QoSModélisation des services

Modélisation UML (profil UML4ST)

Adaptation du modèle pour iTaC-QoS1. messages SOAP et

l’interface du WS

2. données réelles

3. diagramme d’états-transitions complet

4. modélisation OCL défensive

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Structure données& interface

Evolution temporelle

Données

Comportements

Impossibilité de partager les tests et le modèle

A subset of precise UML for model based testing (F. Bouquet, C. Grandpierre, B. Legeard, F. Peureux, N. Vacelet et M. Utting

A subset of precise UML for model based testing (F. Bouquet, C. Grandpierre, B. Legeard, F. Peureux, N. Vacelet et M. Utting

Page 18: Validation des services web à l’aide de la génération automatique de tests

18/33

iTaC-QoSDécouverte des relations

Nécessaire pour trois raisons

calcul des notes

fusion des modèles

calcul de l’ordre de passage des tests

Compositions : décrites dans les clauses OCL

Dépendances temporelles : modélisées dans un diagramme de séquences

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

User Blogregister

login

User Bloglogin

logout

/* Composition du service « Captcha » */self.captchaMsg.key = 123 andself.captchaRes = self.captcha.generateCaptcha(

self.captchaMsg)

Page 19: Validation des services web à l’aide de la génération automatique de tests

19/33

iTaC-QoSFusion de modèles

Nécessaire en cas de compositionsImpossible de modéliser un service externeQuatre étapes1. transformation des diagramme d’états-transitions en clauses OCL2. fusion des diagrammes de classes3. fusion des clauses OCL (basée sur des méthodes classiques de

compilation)4. fusion des diagrammes d’instances

Méthode innovanteaucune méthode existante de fusion de modèle pour le testautres méthodes dédiées à un type de diagramme

Automating UML Models Merge for Web Services Testing V. Pretre, F. Bouquet, C. Lang - iiWAS, 2008 V. Pretre, A. de Kermadec, F. Bouquet, C. Lang, F. Dadeau – IJWGS, 2009 (extended version)

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Page 20: Validation des services web à l’aide de la génération automatique de tests

20/33

iTaC-QoSCouverture et stratégies de test

1. Découverte des comportements (cibles de test)

dans les clauses OCLdans le diagramme d’états-transitions

2. Génération des testsune séquence d’opérations activant la cible de test

3. Calcul de l’oracleétat du système après l’exécution du test et réponses fournies par les opérations

4. Établissement du verdictcomparaison entre l’oracle et les résultats obtenus

self.user->exists(u|u.login = pPublishMsg.login and u.session.id = pPublishMsg.sessionId)

self.post->exists(p|p.id = pPublishMsg.id and p.user.login = pPublishMsg.login)

self.post->exists(p|p.id = pPublishMsg.id and p.status = draft)

login(‘user1’, ‘pwd1’)

publish(‘user1’, ‘ssId2’, 1)

blogInstance1.currentUser = userInstance1

userInstance1.session = sessionInstance2

loginMsgInstance.res = 0

loginMsgInstance.msg = str::ok

postInstance1.status = str::published

publishMsgInstance.res = 0

publishMsgInstance.msg = str::ok

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Publication réussie d’un message

L’utilisateur numéro 1 est identifié sur le systèmeUn identifiant de session lui est affectéeL’opération login retourne {0, « Ok »}Le message 1 passe à l’état publiéL’opération publish retourne {0, « Ok »}

Page 21: Validation des services web à l’aide de la génération automatique de tests

21/33

iTaC-QoSRéification des tests

Génération d’une bibliothèque de connexion au WS grâce à wsdl2java

Transformation du code XML fourni par TD en code Java

Deux problèmes subsistentordre des opérations au sein d’un test

oracle fourni ne permet de calculer que des résultats binaires

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Servicesous test

Bibliothèque deconnexion

WSDL

Tests javaExport TD

Banc de test

Couche d’adaptation

wsdl2xmi

iTaC-QoS

Page 22: Validation des services web à l’aide de la génération automatique de tests

22/33

iTaC-QoSRéification des tests – réorganisation des

scripts de testOrdre des opérations

Deux raisonséchange entre opérations

données non calculables

Non décelables dans le modèle

Ajout d’informations dans le diagramme de classes

[uncomputable]

[producedBy]operation[attr]

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

readDraft.setLogin(« user2 »)readDraft.setSessionId(« ssId3 »)login.setPassword(« pwd2 »)login.setLogin(« user2 »)loginResponse =

blog.login(login)readDraftResponse =

blog.readDraft(readDraft)

readDraft.setLogin(« user2 »)login.setPassword(« pwd2 »)login.setLogin(« user2 »)loginResponse =

blog.login(login)readDraft.setSessionId(« ssId3 »)readDraftResponse =

blog.readDraft(readDraft)

readDraft.setLogin(« user2 »)login.setPassword(« pwd2 »)login.setLogin(« user2 »)loginResponse =

blog.login(login)readDraft.setSessionId(

loginResponse.getSessionId())readDraftResponse =

blog.readDraft(readDraft)

Exemple de test de l’opération readDraft

loginResponse

resCodemsgsessionId

readDraftMsg

loginsessionIddraftId

[producedBy]login[sessionId]

[uncomputable]

Page 23: Validation des services web à l’aide de la génération automatique de tests

23/33

iTaC-QoSRéification des tests – Calcul du verdict

Problème des résultats de testsLes tests ne peuvent être fournis aux utilisateurs

présence de données « sensibles »risque de dévoiler des failles

Ne prend pas en compte les niveaux de gravité des échecsTest de lecture du message d’un autre utilisateur1. l’opération produit l’erreur « Accès interdit »2. l’opération produit l’erreur « Message inconnu »3. l’opération renvoie le message demandé

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Page 24: Validation des services web à l’aide de la génération automatique de tests

24/33

iTaC-QoSRéification des tests - Verdicts possibles

Résultat attendu Résultat obtenu Classification

Résultat « r » Résultat « r » Réussite

Erreur « e » Erreur « e » Réussite

Résultat « r » Sous-ensemble de « r » Réussite partielle

Erreur « e » Erreur différente de « e » Échec bénin

Résultat Erreur Échec bénin

Résultat « r » Résultat différent de « r » Échec

Erreur Résultat Échec critique

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Page 25: Validation des services web à l’aide de la génération automatique de tests

25/33

iTaC-QoSExécution des tests

Calcul du plan de test

Deux types de testétat final = état initial

état final ≠ état initial

Certains tests ne peuvent être exécutés avant d’autres1. lit le contenu du message «

a »

2. publie le message « a »

Exécution 1 – 2 → OK

Exécution 2 – 1 → Faux-positif

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

État initial

État post-test

État cible

login(…)(préambule)

writeDraft(…)(corps)

writeDraft(…)logout(…)(postambule)

Page 26: Validation des services web à l’aide de la génération automatique de tests

26/33

iTaC-QoS Evaluation des services web

Attribution de notes aux opérations

note unitaire : au niveau de l’opération testée

note de relation : au niveau des relations

note détaillée : synthèse des précédentes

Classification des tests en catégories

FIA : identification et authentification

FPR : vie privée de l’utilisateur

FDP : données privées de l’utilisateur

FCT : fonctionnalités métiers du service

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Critères Communs

Page 27: Validation des services web à l’aide de la génération automatique de tests

27/33

iTaC-QoSEvaluation des WS - Classification des tests

A posterioriclassification des tests après génération

long et fastidieux

A prioriclassification des comportements à la modélisation

méthode plus rapide

risque d’avoir des comportements non classés

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

/* Teste si l’utilisateur est identifié */if (…) then /* Teste si le message existe */ if (…) then /* Teste que l’utilisateur est propriétaire */ if (…) then … self.res.content = self.blogpost.content and self.res.resCode = 0 and self.res.resCode.errorChannel = « ok » /*@REQ: READ_OK_1, READ_FCT_1 @*/ else self.res.resCode = -1 and self.res.errorChannel = « Access denied » /*@REQ: READ_ERR_1, READ_FPR_1, READ_FDP_1 @*/ endif and …

Post-condition de l’opération readDraft

Page 28: Validation des services web à l’aide de la génération automatique de tests

28/33

iTaC-QoSEvaluation des WS - Présentation aux

utilisateurs

Using Common Criteria to Assess Quality of Web Services V. Pretre, F. Bouquet, C. Lang - WebTest, 2009

Modélisation – Découverte des relations – Fusion des modèles – Génération des tests – Réification – Exécution - Evaluation

Note unitaire Note de relation

Page 29: Validation des services web à l’aide de la génération automatique de tests

29/33

SommaireConclusion et travaux futurs

La qualité pour les services web

Assurer la qualité des services web

iTaC-QoS – une plateforme de validation des services web

Conclusion et travaux futurs

Conclusion

Travaux futurs

Page 30: Validation des services web à l’aide de la génération automatique de tests

30/33

Conclusion et travaux futursSynthèse

1 – Conception, création, déploiement et modélisation

2 - EnregistrementClient

TD

3 – Extraction des relations

4 – Fusion et traitements du modèle

5 – Génération des tests6 – Réification

7 - Exécution

8 – Calcul des notes

10 – Envoi des notes

9 – Recherche

11 - Utilisation

Comment modéliser un service web ?

Comment extraire les relations du modèle ?

Comment gérer les compositions ?

Comment réifier automatiquement les tests ?

Comment exécuter les tests ?

Comment évaluer un service web ?

Comment fournir des notes simples à comprendre ?

Page 31: Validation des services web à l’aide de la génération automatique de tests

31/33

Conclusion et travaux futursSynthèse

Points fortsMéthode : générique, basée sur des standards ouverts, évaluation fine des WSiTaC-QoS : automatisé, sources ouvertes (code.google.com/p/itacqos/), facile d’utilisation (itacqos.alwaysdata.net)

Général : classification des tests, résultats des tests

Points faiblesCouverture partielle de la qualitéTestabilité des services web :

prédictibilitéobservabilité

Repose sur la confiance dans le fournisseur

Page 32: Validation des services web à l’aide de la génération automatique de tests

32/33

Conclusion et travaux futursTravaux futurs

Valider la couverture du modèle

Gérer les compositions dynamiques

Intégrer iTaC-QoS aux plateformes de mash-up

manuellement évaluation de la couverture de code WSDL (existe dans iTaC-QoS) WSDL-S / OWL-S

notion sémantique sélection du service à composer conserver la dynamicité et le suivi des notes

simple d’utilisation repose partiellement sur les services web valider l’interface ou le service utilisé

1 – Création et modélisation

UML + WSDLUML + WSDL-SUML + OWL-S

2 - Enregistrement

3 - Recherche

4 - Filtre

5 - Sélection

WSDL-S / OWL-S UML

Tests

1 – Générerdes tests

2 – Animer et évaluer la couverture

1 - Transformation

2 - Bisimulation

Page 33: Validation des services web à l’aide de la génération automatique de tests

33/33

Questions

Merci de votre attention …

Page 34: Validation des services web à l’aide de la génération automatique de tests

34/33

Web services certificationUML models used - OCL code

Code OCL:Représente le comportement des opérations

Modélisation défensivepas de pré-conditions

gestion des erreurs dans les post-conditions

permet de test des cas d’erreurs

Pre-condition:

self.mission.status = waitingValidationand

self.mission.employee <> self.user

Post-condition:

if pAnswer then self.mission.status = validatedelse self.mission.status = refusedendif

if thenif then

result = ok else result = autoValidation endif else result = unvalidableMissionendif

Page 35: Validation des services web à l’aide de la génération automatique de tests

35/33

QuestionsExécution des tests

Tous les tests replacent le service dans son état initialVagues de tests selon les relations

Certains tests ne replacent pas le service dans son état initialDécouverte des relations entre les testsExtraction du graphe de relationCalcul de l’ordre de passage

register login

logout

writeDraft

readDraft

publish

test13

test10

test2

test3

test4

test5

test6

test7

test8

test1

test11 test12

Page 36: Validation des services web à l’aide de la génération automatique de tests

36/33

QuestionsFusion modèles – diagrammes d‘états-

transitionsMise à plat du diagramme

suppression des transitions automatiquessuppression des états composites

Création d’un classe énumérééCréation de 4-uplets

état quittégardedéclencheurétat atteint

Modifications du code OCLSuppression du diagramme

serviceStarted

serviceWaiting statusUpdated

userLoggedIn

login() logout()

updateStatus()

States

serviceStartedserviceWaiting

<serviceStarted, , login, serviceWaiting><serviceWaiting, , updateStatus, serviceWaiting><serviceWaiting, , logout, serviceStarted >

if ((self.state = States::serviceStarted) then

… /* Post-condition originale */

if (self.state = States::serviceStarted) then

self.state = States::serviceWaiting

endif

endif

Page 37: Validation des services web à l’aide de la génération automatique de tests

37/33

QuestionsFusion modèles – diagramme de classes

Découverte des messages SOAP et de l’interface du WS (WSDL)Renommage des autres classesDéplacement dans un diagramme communReconnaissance des classes communesFusion des classes

OnlineStore

register()login()search()logout()

User

idloginpassword

ParcelService

login()getPrice()logout()

ParcelServiceLoginMsg

loginpassword

ParcelService

login()getPrice()logout()

User

idloginpassword ParcelServiceLoginMsg

loginpassword

1

2

Page 38: Validation des services web à l’aide de la génération automatique de tests

38/33

QuestionsFusion modèles – OCL

Mise à jour des références à « self »

Mise à jour des paramètres

Déplacement du code

Création du lien « result » → appel

self.a = param1 andself.b = param2 andif (self.a > self.b) then result = self.aelse result = self.bendif

if (self.ws2.operation(self.y, self.x) > 1) then

self.ws2.a = param1 andself.ws2.b = param2 andif (self.ws2.a > self.ws2.b) then result = self.ws2.aelse result = self.ws2.bendif

self.ws2.a = self.y andself.ws2.b = self.x andif (self.ws2.a > self.ws2.b) then result = self.ws2.aelse result = self.ws2.bendif

self.ws2.a = self.y andself.ws2.b = self.x andif (self.ws2.a > self.ws2.b) then result = self.ws2.aelse result = self.ws2.bendif

self.ws2.a = self.y andself.ws2.b = self.x andif (self.ws2.a > self.ws2.b) then self.tmp = self.ws2.aelse self.tmp = self.ws2.bendif

if (self.tmp > 1) then

Page 39: Validation des services web à l’aide de la génération automatique de tests

39/33

Répercussion des modifications du diagramme de classesDéplacement dans un diagramme communFusion des instances représentant

l’interface des WSLes messages SOAP

Accord avec la cardinalité

ps1::ParcelService

lr1::ParcelServiceLoginResponse

ps1::ParcelService

lr1::ParcelServiceLoginResponse

ol1::OnlineStore

QuestionsFusion modèles – diagramme de classes