Tests dirigés par les modèles
Transcription
Tests dirigés par les modèles
Tests dirigés par les modèles De l’utilisation des modèles dynamiques d’UML pour spécifier les tests N. Trèves [email protected] N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 1 Sommaire Rappels : concepts de modélisation La problématique des tests et des modèles Quelques rappels sur UML Les diagrammes UML et les tests • Les scénarios d’interaction • Construction des scénarios, les diagrammes d’états transitions N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 2 1 1ère partie Concepts de modélisation N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 3 Processus métiers vs. processus informatisés Processus métier Flux Cohérence globale du SI Cohérence des processus Processus informatisés Cohérence de l’information DONNÉES Règles de typage • Syntaxe du type • Sémantique du type (règles d’interprétation) Cohérence de l’information DONNÉES Contraintes ergonomiques • Pragmatique • Sémantique Flux Cohérence informatique • Intégrité du modèle de données • Caractéristiques non fonctionnelles (cf. ISO9126 - FURPSE) • Architecture N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 4 2 Du réel à l’ordinateur : genèse des composants logiciels Expression de besoin Problèmes du monde réel Identification de formes « brutes » abstractions « métier » → collecte des cas (fonctions en extension) Identification de formes dérivées identification de méta-abstractions propres au langage informatique → but : faire en sorte que complication ≈ complexité Abstraction de niveau N°1 Conception Importance cruciale du système de représentation des abstractions et de la notation la plus appropriée Abstraction de niveau N°2 Solution informatique Composants logiciels : → Entités architecturales : modules, objets, fichiers, etc. N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 5 Modélisation (1/4) Notion de système englobant Le logiciel fait nécessairement partie d’un ensemble plus vaste qui détermine tout ou partie des comportements attendus (contraintes) Systèmes d’information ; systèmes informatisés ; systèmes hybrides Notion de modèle C'est une représentation abstraite plus ou moins rigoureuse de tout ou partie d'un système en vue d'en étudier la structure et le comportement. L'étude peut être : Qualitative : existence de telle ou telle propriété Le système est-il stable ? Quantitative : on sait associer une mesure à la propriété Quel et le temps de réponse moyen? • Quelques mots clés Représentation abstraite : syntaxe, sémantique, pragmatique Isomorphisme / homomorphisme : règles de correspondance qui relie le modèle à la réalité, d’où : fidélité → vérification, validation, test Observable : état du système qui a un sens par rapport à la réalité (observateur) N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 6 3 Modélisation (2/4) Intérêt des modèles Pouvoir d’anticipation : c'est la capacité à prédire Détection et contrôle Contrôle aérien et spatial, météo… Pouvoir d’accélération : le modèle va plus vite que la réalité Calcul numérique, simulation, recherches sur critères… Aides à la décision ; magasin de données ; données cartographiques ; etc. Pouvoir de substitution : on remplace la réalité par un modèle Un conducteur de train Le modèle prend toutes les décisions à la place du conducteur Les comptables et employés aux écritures dans les banques Système d'information Tout système informatique est, par définition, un modèle N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 7 Modélisation (3/4) En résumé, modéliser : rendre compte d’un ensemble de phénomènes / d’observations dans les termes d’un langage donné • Comment : mettre en place une structure aspects statiques et dynamiques pouvoir y faire de la preuve si la sémantique l’autorise • Pourquoi : taille et complexité nécessitent une représentation abstraite d’un système avant sa réalisation : l’architecture • Dans quel but : organiser le développement en entités prédire les défauts prendre en compte les contraintes techniques maîtriser les évolutions N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 8 4 Modélisation (4/4) On considère une problématique un domaine métier Modéliser un domaine / une problématique • fournir, dans un but donné, une description de ce domaine dont les détails ont été éliminé de façon systématique • simplifier les données d’un problème, sans le dénaturer, pour en faciliter la compréhension • faire ressortir les traits importants ; exhiber les liens conceptuels entre les entités modélisées ; expliciter la dynamique Modèle Abstraction Problème dans le domaine métier Réification Solution logicielle implémentée N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 9 Qualités d’un bon modèle Cohérent : la modélisation n’engendre pas de paradoxe. Clair : le modèle permet de raisonner. Complet : le modèle capture les aspects essentiels du problème. Orthogonal : correspondance bijective entre les relations de dépendance / indépendance dans le modèle et dans le problème considéré. Robuste : le modèle reste pertinent lorsque les données du problème varient « peu ». Entre deux modèles équivalents, le plus simple est le meilleur Ockham : « Entia non sunt multiplicanda sine necessitate. » N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 10 5 2è partie La problématique des tests et des modèles N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 11 Rappel : cycle de vie VVT L'activité de VVT débute dès la phase EB/EC Besoin Besoin Résultats des phases concernant l'activité V&V des phases suivantes Plan et objectifs de tests • Système • Recette Conception Conception Plan de tests • Modules • Intégration Conception des tests • Modules • Intégration • Système • Recette TESTS ET VÉRIFICATIONS POUR LA NON RÉGRESSION Développement Développement Scénarios de tests • Modules • Intégration • Système Cas à tester • Modules • Intégration • Système • Recette Intégration Intégration Scénario de tests • Recette Recette Recette Installation Installation Construction de la courbe de maturité Pour toutes les phases : collecte des Rapports d'Anomalies (RA) et des Actions Correctrices (AC) ; traçabilité Cf. ANSI/IEEE Std 1012 Software verification and validation plans ; Std 1059 Guide VVT N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 12 6 Rappel : méthodes agiles cycle de vie XP Software factory Cas d'emplois Exploration • Planning game Planification Architecture stabilisée à la première itération • Durée moyenne 1 à 4 semaines • Tests fonctionnels de chaque itération, faits par le client (TDD) Itération Durée de 2 à 6 mois maximum Mise en production • The perfect time to tune Maintenance • The normal state of an XP project Terminaison • The time to write a 5 to 10 pages tour of the system Nominale « mort » N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 13 Unified process Macro-processus: • Modélisation des besoins, Analyse, Conception, Codage, Tests Micro-processus. • Construction des modèles : Modèle des besoins, modèle statique, modèle dynamique Cycle de vie : • Itératif / incrémental N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 14 7 Élaboration des scénarios de test De manière générale préalablement à la phase de codage • Expression de besoins, conception • Par incréments • Cas particulier des tests structurels Comment • Au cas par cas, en extension On énumère l’ensemble des scénarios de tests possibles • Par intention Développement d’un programme construisant automatiquement les scénarios de tests N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 15 Tests et modèles Principe • S’appuyer sur la structure / sémantique d’un modèle pour élaborer des scénarios de tests Aspects dynamiques Conformité de la conception avec la construction des scénarios de tests Catégories de tests • Fonctionnels • De pré intégration • Boites blanches, échanges entre objets N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 16 8 3è partie Quelques rappels sur UML Unified Modelling Language N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 17 UML, un langage de modélisation à large spectre Filiation Programmation objet (Smalltalk, Eiffel, etc.) et types abstraits de données (Pascal, Ada) → Conception orientée objet (OMT) → Notation unifiée de l’OMG : UML Standard de l’ISO et de l’OMG, version 2.3 Largement diffusé/utilisé dans l’industrie Méthode et/ou outil ?! UML est un ensemble de langages/notations graphiques permettant de: Spécifier, concevoir, documenter UML peut être utilisé dans tous les domaines nécessitant une modélisation Sans méthode, l’emploi de UML est voué à l’échec N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 18 9 Concepts et notations UML (1/2) Les diagrammes Nomenclature statique (2 diagrammes) Diagrammes de classes (modèle ERA + opérations permettant la navigation) Diagrammes objets (i.e. instance de classes) Interactions avec le monde extérieur scénarios (3 diagrammes) Cas d’utilisation (use case) Diagrammes de collaboration (échanges de « messages » entre objets) Diagrammes de séquence (interactions temporelles entre objets) S’appuient sur les diagrammes de collaboration N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 19 Concepts et notations UML (2/2) Les diagrammes Machines à états finis Enchaînements et contrôle du flot d’exécution (2 diagrammes) Diagrammes d’activités Diagrammes états-transitions Cartographie Localisation spatiale et réalisation (2 diagrammes) Diagrammes de composants Diagrammes de déploiement N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 20 10 Classe, notation UML Le nom de la classe Les attributs Les méthodes UneClasse attribut_privé : boolean = false attribut_public : int = 0 attribut_protégé : byte méthode_publique(entier : int = 0) : int méthode_protégée(réel : double) : double méthode_privée() : UneClasse UneClasse() UneClasse(x : UneClasse) Notations pour le contrôle d’accès : Privé : - (standard) ou (graphique divers outils) Protégé : # (standard) ou (graphique divers outils) Public : + (standard) ou (graphique divers outils) N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 21 Objet, notation UML Le nom de l’objet La valeur des attributs (état à l’instant t) Unobjet : UneClasse attribut_privé : false attribut_public : 0 attribut_protégé : 1 N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 22 11 4è partie Les diagrammes UML et les tests Les scénarios d’interaction N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 23 Le besoin : tester des méthodes Tests structurels « classiques », boites blanches • • • • Graphes de contrôles Couverture / tests minimaux Interprétation sémantique Génération des jeux de tests pertinents Pas spécifiques à la modélisation objet N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 24 12 Le besoin : tester la communication entre objets tests unitaires Tout objet A peut communiquer avec un objet B par envoi d'un message qui symbolise l'activation d'une opération de B par A • Diagrammes de collaboration La réception du message par B est un événement qui change l’état de l’objet B On dit que les objets A et B interagissent entre eux Activation A B Retour N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 25 Le besoin : tester l’interaction entre composants Interfaces entre composants diagrammes de composants • Envoi/réception de messages • Variables partagées • Événements N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 26 13 Le besoin : tester l’interaction système utilisateurs Diagrammes de cas d’utilisation • Liens entre acteurs et systèmes N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 27 Modèles dynamiques Concepts et typologie S’appuient sur les notions: • Action/Activité Une activité est une opération qui prend du temps. N’est pas atomique: interruptible. Une action est une opération instantanée. Non interruptible. • Message Les objets communiquent en envoyant des messages. La réception du message est un événement qui change l’état de l’objet. Typologie • • • • Diagrammes d’activités Diagrammes de séquence Diagrammes de collaboration Diagrammes d’état-transition N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 28 14 Diagrammes d’interaction Expriment des scénarios d’interaction entre objets • Diagrammes de séquence Accent mis sur les séquences de messages échangés par les objets • Diagrammes de collaboration Accent mis sur les liens / flux entre les objets On ne cherche pas à documenter tous les scénarii possibles • On s’intéresse aux scénarii significatifs - nominaux Problème : existence d’un cours normal des actions ? • On veut communiquer sur les fonctions du système Dans les deux types de diagrammes, on fait figurer • Des classes ou des objets (instances de classes) • Des messages et des stimuli (instances de messages) « a Stimulus is a communication between two Instances that conveys information with the expectation that action will ensue. A Stimulus will cause an Operation to be invoked, raise a Signal, or an Instance to be created or destroyed. » • Des associations et des liens (instances d’associations) • Pour chaque catégorie on peut considérer soit des instances soit des ensembles d’instances (multiobject) Une interaction peut impliquer le changement d’état d’un objet N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Diagrammes de séquence Page 29 (1/2) éléments représentés Des instances de classes (objets) • qui peuvent être créées ou détruites « During the execution of an interaction some Instances and Links are created and some are destroyed. The creation and destruction of elements can be marked. » • Qui sont « transient » si elles n’existent que pendant la durée de l’interaction décrite Des instances de messages (stimuli) qui peuvent être • Des appels de type synchrone Typiquement, appel de procédure Transfert du flot de contrôle / attente • Des appels de type asynchrone Avec activation possible de l’objet appelé Exécution concurrente • Des retours opération_xy_de_la_cible() opération_xy_de_la_cible() opération_xy_de_la_cible() pointillés Pouvant être omis pour un appel synchrone N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 30 15 Diagrammes de séquence exemple 1 Instance de la classe Client nommée c Un objet est dit transient si sa durée de vie est réduite à l’interaction Action de type CreateAction c : Client p : ProxyODBC {transient} <<create>> : Transaction insertValues(a,b,c) activation insertValue(a.table,a.value) Appel « procédural », synchrone insertValue(b.table,b.value) Retour d’un appel de procédure insertValue(c.table,c.value) Appel asynchrone commited Marque l’activation (focus of control) <<destroy>> Sauf indication contraire, sens du temps Marque la destruction de l’objet cible du message (e.g. delete) Ligne de vie N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 31 Diagrammes de séquence exemple 2 xyz:Appelant :Cabine :Central :Appelé Téléphonique Décrochage Numéro Numéro Sonnerie Décrochage Décrochage C Unité Téléphonique Unité Téléphonique Raccrochage Raccrochage C N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Raccrochage Page 32 16 Diagrammes de séquence (2/2) éléments représentés, subtilités Des messages d’un objet vers lui même récursion Message réflexif Récursivité Des branchements conditionnels Sur une condition Éventuellement avec choix de chemin Des itérations [x] [not x] [y] Rmq : contrairement aux apparences, pas d’ordre entre ces deux blocs * faire() Itérative while Itérative for Avec exécution parallèle * [i:=1..n] mettreAJour(i) * [i:=1..n] || redessiner(i) Rmq. : pour distinguer l’activation (active) de l’état de l’objet en train de calculer (computing), on peut griser la ligne de l’objet qui calcule (objet au sommet de la pile d’exécution). N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 33 Construction d’un scénario des tests Un diagramme de séquence = un scénario d’une interaction un scénario de test • On représentera plusieurs objets en interaction, un objet pilotera l’interaction • C’est à partir de ce pilote que l’on construit les scénarios de tests Cf. exemple 1: scénario de test de pré-intégration entre les objets client et transaction on vérifie qu’un message pour créer une transaction a été envoyé les valeurs a,b,c ont été transmises dès que l’on a reçu un commit, le message demandant de détruire la transaction a été envoyé N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 34 17 5è partie Les diagrammes UML et les tests Construction des scénarios d’interaction Les diagrammes d’états transitions N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 35 Diagrammes états transition (1/2) introduction Les diagrammes d’activité et les diagrammes états/transitions (DET) présentent des visions duales des phénomènes modélisés • Avec les DET on cherche à capturer les enchaînements d’actions On veut, pour un objet donné • • Les événements Connaître ses états (intervalle de temps stable) {e,f,g,h} Connaître ses réactions à différents événements qui peuvent se produire à tout instant Une approche simpliste est de considérer • un ensemble d’événements est associé à chaque transition {e,f} {h} Évidemment, chaque transition identifie uniquement sa source et sa cible Se déclenche quand l’un des événements se produit • un graphe orienté Le graphe Les nœuds du graphe sont les états Les arcs du graphes sont les transitions • {h} à chaque instant, un « état actif » (c-à-d courant) dans le graphe Modus operandi • • • ⇒ {f,g} l’événement e se produit L’automate est dans un état s il existe une transition T : s → t associée à e le nouvel état de l’automate devient t 1) Soudain e !!! {e,f} t T 3) T qui reconnaît e est déclenchée 2) s est l’état actif 4) nouvel état actif t N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 s s T t Page 36 18 Diagrammes états transition (2/2) introduction Appuyer sur le bouton L’exemple trivial : la lampe électrique • Un événement • Deux états Appuyer sur le bouton Allumée Allumée Éteinte • Deux transition déclenchées par l’événement « appuyer sur un bouton » Éteinte Appuyer sur le bouton Allumée → Éteinte Éteinte → Allumée Avec deux niveaux de luminosité Donc trois états Brillante Appuyer sur le bouton Tamisée Appuyer sur le bouton Éteinte Appuyer sur le bouton N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 37 Labels des transitions UML La forme générale du label d’une transition entre deux états est événement (paramètres) [condition de garde] / actions-associées* Ex: retrait (montant) [solde≥montant] / solde=solde-montant; donner(montant); « événement » est le stimulus qui déclenche la transition et peut être de quatre types ⇒ un signal « The specification of an asynchronous stimulus communicated between instances. » un appel d’opération « represents the reception of a request to synchronously invoke a specific operation. » L’expiration d’un certain délai, atteindre une date « A TimeEvent models the expiration of a specific deadline. » La modification d’un attribut / d’instance liées « A change event models an event that occurs when an explicit boolean expression becomes true as a result of a change in value of one or more attributes or associations. » Notion de thread qui surveillerait en permanence « paramètres » le stimulus peut éventuellement être accompagné d’une liste de paramètres typés (syntaxe OCL - Object Constraint Language) « condition de garde » est une expression booléenne qui doit être évaluée pour que la transition gardée soit activée • L’évaluation de la condition ne doit pas produire d’effet de bord « actions associées » est une action qui doit être exécutée pendant la transition • • • • Dans sa totalité avant qu’une autre action puisse être exécutée « This model of execution is referred to as run-to-completion semantics. » Peut-être une succession d’actions Peut-être exprimée avec un formalisme (langage) ad-hoc Peut générer des événements, envoyer des signaux, invoquer des opérations N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 38 19 Pseudo-états le début et la fin On introduit des pseudo-états • État initial (ou défaut) : l’état dans lequel se trouve l’objet initialement Unique. Existe toujours. En émane une unique transition • État final (ou terminal) : état absorbant Éventuellement plusieurs dans un même automate. Optionnel. Ne peut en émaner aucune transition Comme dans les diagrammes d’activité, ces états sont purement statiques ⇒ Pas d’activités / actions associées État initial ouvrirCompte( dépotInitial ) [dépotInitial >100 ] / solde=dépotInitial débit( somme )[ somme<solde ] / solde-=somme minuit / somme*=1.2 débit( somme )[ somme>=solde ] / solde-=somme Compte approvisionné Compte à découvert dépot( somme )[ somme+solde>0 ] / solde+=somme fermerCompte dépot( somme )[ somme+solde=<0 ] / solde+=somme crédit( somme ) / solde+=somme État final N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 39 Diagrammes états transition un autre exemple État Initial Transition Action : ici envoi d’événement État Décrochage /tend central.ouvertureLigne Raccroché Décroché Raccrochage Destruction Événement Destruction État Final N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 40 20 Diagrammes états transition Actions/Activités Des opérations sont attachées aux événements et aux états. • Actions aux événements • Activités aux états, en général Décrochage Sonnerie Raccroché do: Sonner Décroché Raccrochage / rendreMonnaie Activité Action N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 41 Diagrammes états transition Détail des actions associées à un état Un état représente à la fois • • La satisfaction (généralement implicite) d’un invariant caractérisant cet état ⇒ vision statique de l’état La réalisation, optionnelle, d’une action / activité / tâche associée à cet état ⇒ vision dynamique de l’état (cf. diagramme d’activités) On a la possibilité de spécifier, pour un état donné, une action devant être exécutée à chaque fois qu’on entre dans cet état • Dite « entry » ou pré-condition. Exécutée quelque soit la transition entrante Similairement, on peut spécifier, pour un état donné, une action devant être exécutée à chaque fois qu’on sort dans cet état • Dite « exit » ou post-condition. Exécutée quelque soit la façon dont l’état est quitté L’état peut posséder une tâche de fond - activité • Dite « doactivity » (ou « do ») qui commence dès l’entrée dans l’état et prend fin au plus tard à la sortie de l’état Ex. sorte de disque en marche Transition in (allumer) entry doactivity (placer tête) (tourner) N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Transition out exit (ranger tête) Page 42 21 Élaboration des scénarios de test (1/2) Chaque objet est potentiellement dans plusieurs états différents • Une transition fait passer un objet d’un état vers un autre • Une transition est déclenchée par un événement provenant de l’extérieur de l’objet (message) Peut également effectuer des actions vers l’extérieur (envoi de messages) • On générera donc autant de scénarios de tests qu’il y aura de scénarios d’interaction Ces derniers sont construits en parcourant toutes les possibilités du DET N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 43 Élaboration des scénarios de test (2/2) Un diagramme de séquence sera construit: • A partir d’un état donné Suite d’évènements reçus depuis /actions émises vers d’autres objets permettant de reboucler vers l’état donné Un diagramme de séquence fait figurer les états successifs d’un objets parcourus par le scénario N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 44 22 Quand spécifie-t-on les interactions? On peut générer des scénarios de tests dès lors que l’on sait décrire les interactions entre les composants du système • Dès l’expression de besoin Interaction des acteurs avec le système vu comme une boite noire Tests fonctionnels à partir des cas d’utilisation • Au cours de l’analyse et de la conception Interaction entre les composants/objets Tests de pré-intégration à partir des diagrammes de séquence Tests unitaires : interaction entre objets N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 45 Autres types de modèles Automates étendus, réseaux de Petri • Graphe des états • Techniques de model checking Preuves de programmes, B, COQ • Solvers Chaines de Markov • Pour l’ordonnancement et la prise en compte du temps N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 46 23 Conclusion Attendre la phase de codage pour définir les scénarios de tests est un leurre Définir les scénarios de tests dès que l’on sait décrire les interactions à plusieurs niveaux d’analyse / conception • Granularité du processus de développement itératif / incrémental Ne pas oublier les tests non fonctionnels • Diagrammes de déploiement N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 47 Bibliographie UML et objet Ouvrages élémentaires et/ou introduction à UML Très bonne introduction dans un style simple P-A.Muller : Modélisation objet avec UML, Eyrolles F. Vallée, P. Roque, UML 2 en Action, Eyrolles G. Booch & al. Le guide de l’utilisateur UML, Eyrolles Ouvrages d’approfondissement L’ouvrage le plus approfondi et le plus complet M. Fowler, K. Scott, UML Distilled: Applying the Standard Object Modeling Language, Addison-Wesley, Reading MA, 1997 I.Jacobson : Le Génie Logiciel orienté objet, Addison Wesley Object oriented software engineering (original en anglais) I.Jacobson : The object advantage, Addison Wesley B.Meyer : Conception et programmation objet, Eyrolles M.Smith, Object oriented software in Ada 95, ITP Gamma & al., Design patterns : Elements of Reusable Object Oriented Software, Addison Wesley Ouvrages théoriques M.Abadi, L.Cardelli : A theory of objects, Spinger (1ère tentative sérieuse de définition de la sémantique à l’aide du λ-calcul) N.Trèves / CNAM - SITI / Tests dirigés par les modèles – NFP209/ Vers. 2.0 Page 48 24