1 modélisation uml pour le test et la découverte des dépendances vincent pretre sous la direction...

36
1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire d’informatique de Franche-Comté COPS - 29-30 mars 2007 Nancy, LORIA

Upload: adrienne-garin

Post on 03-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

1

Modélisation UML pour le test et la découverte des

dépendances

Vincent PretreSous la direction de Fabrice Bouquet

et Christophe Lang

Laboratoire d’informatique de Franche-Comté

COPS - 29-30 mars 2007Nancy, LORIA

Page 2: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

2

Sommaire

Introduction

Modélisation pour le testReprésentation des données utilisées

Représentation des SW

Evolution dans le temps

Etat initial

Modélisation des relationsCompositions

Dépendance temporelles

Utilisation du modèleDécouverte

Notion de groupe

Test des services

Notation des services

Conclusion et travaux futurs

Page 3: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

3

Sommaire

Introduction

Modélisation pour le test

Modélisation des relations

Utilisation du modèle

Conclusion et travaux futurs

Services et services web

Confiance dans les SW• Réseau

• Développement & fournisseur

• Supports d’hébergements

Relations entre services• Compositions

• Dépendances temporelles

Une plateforme de test

Un modèle unique

Page 4: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

4

IntroductionServices et services web

Système client serveur

Echanges XML

Service web: ensemble de services proposés par un même fournisseur ayant une cohérence fonctionnelle

Service: opération proposée par un service web

Comportement: exécution particulière d’un service

Page 5: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

5

IntroductionLa confiance dans les services web

Dépend de deux élémentsLa qualité des résultats

La gestion des données

Reposent sur quatre facteurs :Le réseau utilisé pour l’échange des messages

Le soin apporté au développement du service

L'hébergement du service

Les services liés

Page 6: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

6

IntroductionLa confiance dans les SW - Réseau

Perte ou altération des données :Résultats justes à l’envoi mais erronés à la réception

SW payants: coûts doublés

Attaques des données échangées :Suppression ou corruption

Vol de données confidentielles

Page 7: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

7

IntroductionLa confiance dans les SW - Développement

& fournisseur

Soin apporté dans le développement :Comportements inaccessibles

Résultats incorrects et/ou incomplets

Mauvais comportement vis à vis des autres services

Backdoors / failles de sécurités

Honnêteté du fournisseur :Divulgation des données personnelles

Utilisation de ces données

Page 8: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

8

IntroductionLa confiance dans les SW - Supports

d’hébergement

Hébergement physique :Perte des données

Fonctionnement discontinu

Hébergement logiciel :Fonctionnement discontinu

Vol, perte ou corruption de données

Librairies buggées

Backdoors/failles de sécurité

Incompatibilités entre versions

Couche matérielle

Système d’exploitation

Autres applications

Serveur web

Service web

Page 9: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

9

Introduction Composition - Définition

Composition: utilisation d’un service par un autre

Trois critères :Locale/distribuée

Synchrone/asynchrone

Statique/dynamique

WS Agence

Client

WS Companie

WS banque WS Hôtel

Page 10: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

10

Introduction Composition - Problèmes

Calculs basés sur des données faussesPropagation des erreurs

Quelques cas particuliers

Propagation des temps de calcul (compositions synchrones)

Appels qui ne terminent pas

Utilisation de services inconnus (composition dynamique)

Qualité des résultats

Temps de calcul

Page 11: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

11

Introduction Dépendance temporelle - Définition

Un service ne peut être appelé que si un autre l’a déjà étéDeux causes :

Partage de données coté serveurPartage de données devant être manipulées par le client

Deux types :Le service x doit être appelé au moins une fois pour que le service y fonctionneLe service x doit être appelé chaque fois avant l’appel à y

Base de données

insertion lecture

Client

Envoi du résultat réutilisation

Page 12: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

12

Introduction Dépendance temporelle - Problèmes soulevés

Dysfonctionnements amenant à des appels impossibles

Le service « login » dépend du service « register »

Si « register » ne fonctionne pas, « login » ne fonctionnera pas

Fonctionnement sur des données fausses/incomplètes« createBooking » dépend de « searchFlights »

Si « searchFlights » ne renvoie pas la bonne liste de vol, « bookFlight » devra s’en contenter

Page 13: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

13

IntroductionLa plate-forme de test

Vérifie la qualité apporté dans le développement

Basée sur un serveur UDDI

Notation des services enregistrés

Test générés à partir d’un modèle UML

ServiceServeur UDDI

1 - Déclaration

Testeurs

2 : Exécution des test

3 : envoi du m

odèle

Client

4 : recherche de services

5 : envoi des résultats et des notes

Page 14: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

14

IntroductionUn modèle unique

Trois buts:Représentation du fonctionnement

Description des compositions

Description des dépendances temporelles

Avantages du choix d’UML:Plusieurs vues

Langage répandu

Un seul modèle à mettre à jour

Inconvénient:Peut être moins efficace que des modèles spécialisés

Page 15: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

15

Sommaire

Introduction

Modélisation pour le test

Modélisation des dépendances

Utilisation du modèle

Conclusion et travaux futurs

Représentation des données utilisées

Représentation des SW

Evolution dans le temps

Etat initial

Page 16: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

16

Modélisation pour le testReprésentation des données utilisées

Diagramme de classes

Principalement pour les services accédant à une base de données

Peut être utilisé pour les données complexes

Modélisation « classique » des objets:

Uniquement les données utiles sont modélisées

Pas de méthodes

validationRights

Employee

level

Mission

status

Group

Page 17: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

17

Modélisation pour le testReprésentation des services web

Chaque service web est représenté par une classe

Deux attributs identifient le service web :

Son URL

Son port

Chaque service est représenté par une opération

services

Page 18: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

18

Modélisation pour le testServices réels et services modélisés

Division des services pour arriver à des relations « constantes »

Le service « cancel » permet d’annuler une réservation, avant ou après paiement

Modélisé en deux services

« cancelBeforePaiment »

« cancelAfterPaiment », qui compose un service web bancaire pour le remboursement

Page 19: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

19

Modélisation pour le testFonctionnement des services

Utilisation d’OCLDeux choix de modélisation:

OffensiveDéfensive

Offensive:Pas de gestion d’erreursCas impossibles gérés en pré-condition

Défensive:Pas de pré-conditionErreurs possibles modélisées

Pré-condition:

self.mission.status = waitingValidationand

self.mission.employee != self.user

Post-condition:

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

if thenif then

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

Page 20: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

20

Utilisation d’un diagramme d’états-transitionsUtile uniquement pour les service utilisant des données évoluant dans le tempsChaque appel à un service est représenté par une transitionLes états du modèle ne font pas toujours référence à des états existantsDoit représenter tous les cas d’utilisation

Modélisation pour le testEvolution dans le temps

userLoggedIn

wsDeployed

tmpValidate

validateOk

errorType1 errorType6

errorType2 errorType5

errorType3 errorType4

errorType7

tmpGrant

tmpRemove missionCreated

Page 21: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

21

Modélisation pour le testEtat initial

Diagramme d’instances

Représente l’état du système avant l’exécution des tests

Echantillon représentatif des données utilisées

De bons choix facilitent la génération des tests

Mission::mission1status = waitingValidation

Mission::mission2status = empty

Mission::mission3status = emptyEmployee::fakeEmployee

level=0

Employee::blueLeaderlevel=3

Group::blue

Employee::blueMember1level=4

ValidationRight::blue

Page 22: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

22

Sommaire

Introduction

Modélisation pour le test

Modélisation des relations

Utilisation du modèle

Conclusion et travaux futurs

Compositions• OCL

• Diagrammes de séquencew

• Méthode choisie

Dépendances temporelles• Diagramme d’états-transitions

• Diagramme de séquences

• Méthode choisie

Page 23: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

23

Modélisation des relationsComposition - utilisation d’OCL

Solution la plus « logique »

L’appel à un autre service est modélisé comme un appel de fonction

Placé dans les post-conditions

Les compositions sont toutes considérées comme synchrones

Exemple: confirmation de paiement

self.reservation.status =

confirmed and

self.bankWS.pay() and

self.companyWS.confirm() and

self.log()

Page 24: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

24

Modélisation des relationsComposition - diagramme de séquences

Représentation plus visuelle

Permet de gérer les compositions asynchrones

Un diagramme par service

Nécessite un ajout de services

De nombreuses adaptations sont nécessaires pour un passage sous LTD

Client Agency Company Bank

1:confirm

1.1:confirm

1.1.1:ok

1.2.1:ok

1.2:pay

1.3:log

Page 25: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

25

Modélisation des relationsComposition - solution choisie

Mélange des deux solutions précédentesOCL permet de modéliser les appels aux autres services Le diagramme de séquences indique si la composition est synchrone

Peu de modifications pour un passage dans LTDPermet de découvrir les compositions sans effetNécessite une double modélisation

self.reservation.status = confirmed and

self.bankWS.pay() and

self.companyWS.confirm() and

self.log()

Client Agency Company Bank

1:confirm

1.1:confirm

1.1.1:ok

Page 26: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

26

Modélisation des relationsDépendances temporelles - diagramme

d’état-stransitions

Déjà présent dans le modèle

Découverte des relations:Transformation du diagramme en graphe

• États -> Arcs

• Transition -> Sommets

Suppression des chemins directs redondants

Chaque arc restant est une dépendance temporelle

login

searchFlight

createBooking

confirmBookingcancelBooking1

cancelBooking2

Page 27: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

27

Modélisation des relationsDépendances temporelles - diagramme de

séquences

Un diagramme par service

Permet de séparer les deux types de dépendances temporelles

Nécessite une double modélisation

Client Self

1: register

2: login

3: login

1: searchFlights

2: createBooking

Page 28: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

28

Modélisation des relationsDépendances temporelles - solution choisie

Le diagramme d’états-transitions permet de découvrir les relationsLe diagramme de séquences établi leur typeDouble modélisation pour les dépendances de type « au moins une fois »

Client Self

1: register

2: login

3: login

userLoggedInuserRegistered

Page 29: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

29

Sommaire

Introduction

Modélisation pour le test

Modélisation des relations

Utilisation du modèle

Conclusion et travaux futursDécouverte des relations

Notion de groupe

Test des services

Notation des services

Page 30: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

30

Utilisation du modèleDécouverte des relations

Exportation du modèle en XMI (XML Metadata Interchange)

Outil écrit en Python :Découverte des servicesDécouverte des dépendancesFusion des différents modèles

Page 31: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

31

Utilisation du modèleNotion de groupe

Chaque service possède un groupe principal composé des services dont il dépend

Un service peut appartenir à plusieurs groupes

Calcul des groupes:Création du graphe de dépendances

• Services -> sommets

• Dépendances -> arcs

Calcul de la fermeture transitive

Tous les voisins d’un service sont ajoutés à son groupe principal

Permet de calculer l’ordre de passage des tests

Page 32: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

32

Utilisation du modèleTest des services

Exportation du modèle UML en projet LTD (Leirios Test Designer)

Calcul des cibles de test:Etats du diagramme d’états-transitions

Comportements du service

Génération, puis exécution des tests

Verdict par comparaison avec l’oracle

Page 33: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

33

Utilisation du modèleNotation des services

Pour chaque service, le résultat des tests permet de donner une note

Echelle non linéaire

Dans le cas de services séparés à la modélisation, la note la plus basse compte

Une fois tous les services notés, on ajuste la note en fonction des dépendances

0 - Service non testé

1 - Mauvais typage

2 - Typage partiellement incorrect

3 - Typage correct

4 - Réponses fausses

5 - Réponses partiellement fausses

6 - Réponses correctes

Page 34: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

34

Sommaire

Introduction

Relations entre services

Modélisation pour le test

Modélisation des relations

Utilisation des dépendances

Conclusion et travaux futurs Avantages et inconvénients

Travaux à réaliser

Page 35: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

35

Conclusion et travaux futursAvantages et inconvénients de cette méthode

Points positifs:Modèle unique

Langage connu et répandu

Permet de prendre en compte la plupart des cas

Le client peut évaluer la qualité du service qu’il va utiliser

Point négatifs:Moins efficace que trois modèles différents

Ne couvre qu’une partie des problèmes de confiance

Page 36: 1 Modélisation UML pour le test et la découverte des dépendances Vincent Pretre Sous la direction de Fabrice Bouquet et Christophe Lang Laboratoire dinformatique

36

Conclusion et travaux futursPerspectives

Terminer l’outil de découverte des dépendances

Mettre en place la fusion des modèles

Valider la plate-forme de test

Réfléchir sur des solutions aux autres sources du manque de confiance