Plan. Tests. 1. Introduction. 1. Introduction
|
|
- Bertrand Mercier
- il y a 8 ans
- Total affichages :
Transcription
1 Plan Tests Lionel Seinturier Université des Sciences et Technologies de Lille 28/11/06 Tests 1 Lionel Seinturier Tests 2 Lionel Seinturier Objectifs du test de programmes Détecter des erreurs dans un programme "Testing is the process of executing a program with the intent of finding errors" [Myers: The Art of Software Testing. 1979] Autres techniques pour valider un programme preuve : modélisation formelle + établissement de théorèmes vérification : ex model-checking Tests : + facile à appréhender, + proche du code, - coûteux à mettre en oeuvre Mais ne garantît pas que le programme est exempt d'erreur on ne teste que ce à quoi on a pensé "Program testing can be used to show the presence of bugs, but never to show their absence!" [Edsger Dijkstra] Tests 3 Lionel Seinturier Objectifs du test de programmes Les tests sont importants ( monde d'accord) mais les tests tendent à être répoussés à la fin d'un projet plus une erreur est découverte tard, plus elle coûte cher L'écriture de test n'est une tâche dévolue ni aux utilisateurs, ni aux managers, ni aux chefs de projet c'est vraiment une activité de programmeur Tests 4 Lionel Seinturier
2 Différentes catégories de tests boîte blanche boîte noire Tests boîte blanche on a accès à la structure du code ex. : calcul de tous les chemins d'exécution possibles (branches, instructions, ) tests sur chacun de ces chemins Différentes catégories de tests boîte blanche boîte noire Tests boîte noire les + courants aucune connaissance des détails d'implémentation n'est nécessaire on s'en remet à la spécification on vérifie que l'implémentation fournit bien le résultat attendu par la spéc avantage : on peut détecter des situations extrèmes qui ne se manifestent que dans certaines branches inconvénients calcul des chemins souvent long il faut avoir accès au code source Tests 5 Lionel Seinturier Tests 6 Lionel Seinturier Différentes granularités de tests unitaire, intégration, système, recettes Tests unitaires test d'une "unité logicielle" procédural procédure OO méthode test indépendant des autres unités les + faciles à mettre en oeuvre les + fréquents nombreux frameworks disponibles Java : JUnit, Cactus, TestNG, JTiger, wikipedia : +90 frameworks!! dans 35 langages Différentes granularités de tests Tests d'intégration test du comportement d'un ensemble d'unités principales techniques : bouchon de tests, mock objects frameworks : Easy Mock, jmock, Mocquer s'utilisent en complément/avec les frameworks de tests unitaires Tests système tests de l'intégration d'une application complète avec son env. d'exécution (OS, VM, librairies, serveurs, ) Tests de recettes tests effectués en présence du client afin de valider l'application complète Tests 7 Lionel Seinturier Tests 8 Lionel Seinturier
3 Éventail de tests possibles Différentes techniques d'écriture de tests Écriture manuelle par le programmeur, ou celui qui connaît la spécification cas le plus fréquent Génération automatique "force brute" ex: JCrasher outil d'évaluation de la robustesse d'un prog. génère des séquences aléatoires d'appels de méthodes dans le but de détecter celles qui font planter le programme par mutation de tests existants on fait varier les paramètres des tests existants afin de détecter les conditions non couvertes par les tests à partir de spécifications formelles du programme Tests 9 Lionel Seinturier Tests 10 Lionel Seinturier Écriture de programmes testables Pour qu'un programme soit "facilement" testable il faut (souvent) prévoir l'accès à l'état ajout de setter/getter il faut éviter au maximum les effets de bord ex. : lecture au clavier, écriture à l'écran, dans un fichier séparer en 2 parties une méthode avec la fonctionnalité à tester une méthode avec les effets de bord qui appelle la précédente souvent refactorisation de l'application pour accéder éléments à tester mieux : penser à la testabilité en écrivant le programme Sélection du code à tester tester les conditions aux limites paramètre null, tableau vide, valeurs max, min, tester les "grandes catégories" (classes d'équivalence) de comportements dans tels cas, la méthode lève une exception dans tels cas, la méthode retourne null dans tels cas, la méthode retourne une valeur particulière tester les invariants du programme propriété à conserver après chaque opération de modification catégories structurels : ex. : index d'une liste [0..taille_liste] sémantiques : ex. : une liste (auto)-triée doit rester triée cohérence de données ex.: dépôts + retraits = solde ex. : prix TTC = prix HT * TVA Tests 11 Lionel Seinturier Tests 12 Lionel Seinturier
4 Sélection du code à tester tester les invariants du programme cohérence de données ex. : même donnée stockée à endroits du programme dans la même unité ou des unités (cm, inch) intégrité référentielle ex. : vérifier que la bidirectionalité dans une association est conservée tester que les préconditions des méthodes sont respectées tester que les postconditions des méthodes sont respectées Tests 13 Lionel Seinturier Sélection du code à tester lien avec la notion d'assertion / contrat notion introduite dans le langage Eiffel [Meyer 85] programming / design by contract mises en oeuvre en Java instruction assert (à partir JDK 1.4) frameworks Contract4J, Jass, jcontractor, JML, Contrats vs tests contrats intrusifs (certes débraillables) : vérifier sur une application qui s'exécute utiles si les conditions d'exécution sont difficilement reproductibles tests off-line ne modifient pas l'application prise en compte + facile de nombreux scenarii d'exécution Tests 14 Lionel Seinturier Sélection du code à tester on n'écrit pas forcément 1 test / méthode du programme pas de test pour setter/getter méthode de 2 lignes, ce que l'on cherche à tester les "services" rendus par une classe Mesure de la qualité des tests Notion de couverture de code (coverage) % de code couvert par des tests (unitaires, intégration, ) on cherche à vérifier que chaque ligne d'un programme est couvert par au moins un test ne garantît pas la correction indicateur sur le "sérieux" d'un ensemble de tests formes % de méthodes, branches, lignes, instructions outils Cobertura, EMMA, Patchwork, Quilt, Tests 15 Lionel Seinturier Tests 16 Lionel Seinturier
5 Test unitaire Test unitaire Code qui évalue le comportement d'une fonctionnalité la fonctionnalité testée est souvent de granularité fine accumulation de tests de "petites portions" d'un programme Exemples fonctionnalité : ajouter une valeur à une liste (auto)-triée test : vérifier qu'une "grande" valeur est bien placée à la fin fonctionnalité : supprimer un pattern dans une chaîne de caractères test : vérifier que le pattern n'y est plus comportement test : code : code Code du test plus petit que le code du comportement à tester ne contient pas de complexité algorithmique (source d'erreurs) souvent de la forme appel méthode + paramètres d'entrées vérification résultat attendu est bien le bon "prouve" que la fonctionnalité fait ce qu'elle est censée faire augmente la confiance dans la correction de la fonctionnalité on est plus enclin à la réutiliser facilite l'intégration Tests 17 Lionel Seinturier Tests 18 Lionel Seinturier Questions auxquelles permettent de répondre des tests unitaires est-ce que mon code fait ce que je veux qu'il fasse? est-ce qu'il le fait dans toutes les conditions? pas seulement dans le cas nominal standard mais aussi en présence d'exception, de buffer overflow, aux conditions limites (valeurs, charge, ) avantage collatéral des tests ils traduisent l'intention du programmeur spécification light Plan Tests 19 Lionel Seinturier Tests 20 Lionel Seinturier
6 Que tester? Right "tout ce qui est susceptible de provoquer un plantage" principe Right-BICEP Right : est-ce que les résultats sont corrects? B (Boundary) : est-ce que les conditions aux limites sont correctes? I (Inverse) : est-ce que l'on peut vérifier la relation inverse? C (Cross-check) : est-ce que l'on peut vérifier le résultat autrement? E (Error condition) : est-ce que l'on peut forcer l'occurrence d'erreurs? P (Performance) : est-ce que les performances sont prévisibles? validation des résultats en fonction de ce que définit la spécification on doit pouvoir répondre à la question comment sait-on que le programme s'est exécuté correctemment? si pas de réponse spécifications certainement vagues, incomplètes la notion de correction peut évoluer au cours du temps en fonction de l'évolution des besoins, des spécifications, tests = traduction des spécifications Tests 21 Lionel Seinturier Tests 22 Lionel Seinturier Boundary conditions identifier les conditions aux limites de la spécification que se passe-t-il lorsque les données sont anachroniques ex. :!*W@\/" non correctement formattées ex. : fred@foobar. vides ou nulles ex. : 0, 0.0, "", null extraordinaires ex. : pour l'age d'une personne dupliquées ex. : doublon dans un Set non conformes ex. : listes ordonnées qui ne le sont pas désordonnées ex. : imprimer avant de se connecter principe "CORRECT" conformance, ordering, range, reference, existence, cardinality, time Tests 23 Lionel Seinturier Boundary conditions Conformance données doivent souvent respecter un format bien particulier format de fichier, (voir RFC 822), URL, tester les cas où les données ne respectent pas le format Ordering l'ordre des données dans une structure peut avoir de l'importance tester les cas où l'ordre n'est pas respecté Range situation où une donnée a moins de valeurs légales que son type ex. int angle invariants : le # de données dans un buffer fini tjrs à [0..max] tester les valeurs qui sont en dehors de l'intervalle Tests 24 Lionel Seinturier
7 Boundary conditions Reference les dépendances de la méthode à tester avec le reste de l'application pré et post-conditions ex. : ne pouvoir faire pop() sur une pile vide cf. les diagrammes états/transitions tester ce qui n'est pas dans le diagramme Boundary conditions Time les cas où l'ordre dans le temps à de l'importance ex. : pas de logout() avant login() Existence que se passe-t-il lorsque la valeur attendue n'existe pas? pas de Client associé à une Facture Cardinality que se passe-t-il avec les valeurs "remarquables"? 0, 1, -1, Integer.MAX_VALUE, Integer.MIN_VALUE, Tests 25 Lionel Seinturier Tests 26 Lionel Seinturier Inverse Cross-check Identifier les relations inverses les algorithmes équivalents (cross-check) qui permettent de vérifier le comportement public void testsquarerootusinginverse() { double x = mysquareroot(4.0); assertequals( 4.0, x*x, ); public void testsquarerootusingstd() { double x1 = mysquareroot(4.0); double x2 = Math.sqrt(4.0); assertequals( x2, x1, ); Error condition Performance Que se passe-t-il en cas de disque, mémoire, plein perte de connexion réseau Est-ce que le système réagit de façon non exponentielle à une montée en charge? ex. : vérifier qu'un élément n'est pas dans une liste vérifier que le temps est linéaire avec la taille de la liste application continue de répondre en présence d'une surcharge du système? quasiment un domaine à part entière nombreux frameworks d'injection de charge et d'identification des parties d'application coûteuses (Eclipse TPTP, ObjectWeb, CLIF, ) Tests 27 Lionel Seinturier Tests 28 Lionel Seinturier
8 Plan Anti-pattern le contraire d'un pattern les mauvaises pratiques à éviter assert manquant asserts multiples utilisation du mauvais assert test trop compliqué dépendances externes récupération d'exceptions non prévues Tests 29 Lionel Seinturier Tests 30 Lionel Seinturier Assert manquant un test qui ne teste rien inutile dans 99% des cas 1% : pas de résultat attendu, mais vérification qu'il n'y a pas d'exception utilité : non regression par rapport à un bug précédent Asserts multiples pas une bonne idée les tests doivent rester courts + facile à comprendre + facile d'identifier les causes des erreurs détectées par les tests - de risque d'erreur dans les tests si besoin de partage de code entre parties à tester setup Asserts multiples public void testsomething() { //... asserttrue(condition1); asserttrue(condition2); asserttrue(condition3); public void setup() { //... public void testsomething1() { asserttrue(condition1); public void testsomething2() { asserttrue(condition2); public void testsomething3() { asserttrue(condition3); Tests 31 Lionel Seinturier Tests 32 Lionel Seinturier
9 Utilisation du mauvais assert appel à asserttrue avec un true codé en dur : non asserttrue( "Object must be the same", expected == actual ); asserttrue( "Objects must be equals", expected.equals(actual) ); asserttrue( "Object must be null", actual == null ); asserttrue( "Object must be non null", actual!= null ); utiliser l'assert correspondant assertsame( "Object must be the same", expected, actual ); assertequals( "Objects must be equals", expected, actual ); assertnull( "Object must be null", actual ); assertnotnull( "Object must be non null", actual ); plus clair précise l'intention du testeur Test trop compliqué il ne faut pas avoir à tester le test pour se convaincre qu'il est bon Dépendances externes éviter les dépendances vers l'environnement SGBD, fichiers, librairies, socket, il ne faut qu'il y ait des éléments trop compliqués à mettre en place sinon les tests ne seront pas exécutés utiliser des mocks pour remplacer les librairies faire en sorte d'inclure toutes les données nécessaires avec les tests s'il faut vraiment un SGBD, envisager l'emploi de SGBD en mémoire (par ex. HSQLDB) Tests 33 Lionel Seinturier Tests 34 Lionel Seinturier Récupération d'exceptions code "normal" récupérer les exceptions tests non public void testcalculation() { try { deepthought.calculate(); assertequals("calculation wrong", 42, deepthought.getresult()); catch(calculationexception ex) { Log.error("Calculation caused exception", ex); raté! JUnit ne détectera pas que le test a échoué Récupération d'exceptions 2ème essai public void testcalculation() { try { deepthought.calculate(); assertequals("calculation wrong", 42, deepthought.getresult()); catch(calculationexception ex) { Log.error("Calculation caused exception", ex); fail("calculation caused exception"); encore raté! test échoue effectivement mais on perd la source de l'erreur (StackTrace) Tests 35 Lionel Seinturier Tests 36 Lionel Seinturier
10 Récupération d'exceptions la bonne solution public void testcalculation() throws CalculationException { deepthought.calculate(); assertequals("calculation wrong", 42, deepthought.getresult()); les exceptions sont ce qui est recherché par les tests Plan Tests 37 Lionel Seinturier Tests 38 Lionel Seinturier Concevoir/refactoriser en vue du test Séparer les préoccupations Concevoir/refactoriser en vue du test Séparer les préoccupations Une préoccupation un ensemble de fonctionnalités ayant un lien logique entre elles notion floue : plus un principe, une "idée" qu'une définition formelle variable : en fonction des développeurs, des besoins, de l'évolution Exemple application de gestion de clientèle ajouter/supprimer clients gérer données client affichage graphique GUI sauver/restaurer les données dans un fichier Tests 39 Lionel Seinturier Tests 40 Lionel Seinturier
11 Concevoir/refactoriser en vue du test Séparer les préoccupations pouvoir tester les différentes parties sans avoir à se préoccuper du reste plus le programme est modulaire plus il est facile à appréhender, concevoir, tester plus les erreurs sont facilement identifiables écriture des tests occasion de refactoriser bénéficie aussi en terme de conception S'organiser pour faciliter la testabilité 1 classe de test par classe à tester nom des classes de test le même que la classe à tester préfixé par Test les classes de test dans le même package mais dans des hiérarchies de répertoire // src/org/foo/maclasse.java test/org/foo/testmaclasse.java fréquence d'exécution des tests chaque fois qu'une nouvelle classe / méthode significative est ajoutée à chaque résolution de bug en cas de travail collabortif (CVS/SVN, ) à chaque récupération des mises à jour à partir du référentiel éventuellement périodiquement (gros projets) Tests 41 Lionel Seinturier Tests 42 Lionel Seinturier Tests dits de non régression chaque découverte de bug doit donner lieu à l'écriture d'un test caractérisant le bug objectif : faire en sorte que le bug ne réapparaisse pas ultérieurement (non régression) Tests et logiciels patrimoniaux (legacy) Bibliographie A. Hunt, D. Thomas. Pragmatic Unit Testing G. Myers, C. Sandler, T. Badgett, T. Thoma. The Art of Software Testing. 2nd Edition a priori non conçus pour les tests écrire des tests pour les fonctionnalités critiques pour les fonctionnalités dont on sait qu'elles sont mal écrites (donc les + susceptibles de provoquer des erreurs) en fonction des bugs découverts (non regression) Tests 43 Lionel Seinturier Tests 44 Lionel Seinturier
CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?
Validation par le test Objectifs du cours d'aujourd'hui Donner des réponses aux questions suivantes : Lydie du Bousquet 2 Qu est-ce que tester un programme? Exercice 1 : Inscrivez sur une feuille ce que
Plus en détailVérification et Validation
Vérification et Validation Génie Logiciel Master 1 II Mihaela Sighireanu Objectifs I. Introduire la vérification et la validation (V&V) du logiciel et comprendre leurs différences. II.Définir le plan de
Plus en détailProcessus d Informatisation
Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailChapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailLe génie logiciel. maintenance de logiciels.
Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction
Plus en détailCours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr
Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine
Plus en détailGuichet automatique de banque
Guichet automatique de banque Mastère 2004 1 Guichet automatique de banque : GAB Objectif : Illustrer la vue fonctionnelle et particulièrement la définition des cas d utilisation. 1. Spécification du problème
Plus en détailTest et Validation du Logiciel
Test et Validation du Logiciel McInfo4_ASR Tests Janvier 2009 Patrick FELIX patrick.felix@labri.fr IUT Bordeaux 1 Plan Introduction : Pourquoi de la VVT? 1 Introduction au test de logiciels 2 Le test fonctionnel
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailSITE WEB E-COMMERCE ET VENTE A DISTANCE
Développement d une application JAVA EE SITE WEB E-COMMERCE ET VENTE A DISTANCE PLAN PROJET Binôme ou monôme (B/M): M Nom & Prénom : AIT NASSER Btissam Email : aitnasser.btissam123@gmail.com GSM : Organisme
Plus en détailDéveloppement d'un projet informatique
Développement d'un projet informatique par Emmanuel Delahaye (Espace personnel d'emmanuel Delahaye) Date de publication : 27 janvier 2008 Dernière mise à jour : 25 avril 2009 Cet article présente un certain
Plus en détailbasée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Plus en détailProgrammation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
Plus en détailConduite de projets informatiques Développement, analyse et pilotage (2ième édition)
Avant-propos 1. Objectifs du livre 13 2. Structure du livre 14 Un projet informatique 1. Les enjeux 17 1.1 Les buts d'un projet 17 1.2 Les protagonistes d'un projet 18 1.3 Exemples de projets 19 2. Les
Plus en détailPlan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
Plus en détailQualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
Plus en détailAnnexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Plus en détailInstallation de IBM SPSS Modeler Server Adapter
Installation de IBM SPSS Modeler Server Adapter Table des matières Avis aux lecteurs canadiens...... v IBM SPSS Modeler Server Installation de l'adaptateur............ 1 A propos de l'installation de
Plus en détailVérifier la qualité de vos applications logicielle de manière continue
IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions
Plus en détailProgramme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Plus en détailGESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET 1 Tianxiao LIU Licence Professionnelle Réseaux & Sécurité Université de Cergy-Pontoise http://depinfo.u-cergy.fr/~tliu/lpg.php PLAN Objectif et
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailPolymorphisme, la classe Object, les package et la visibilité en Java... 1
Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....
Plus en détailAnalyse,, Conception des Systèmes Informatiques
Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance
Plus en détailQuatrième partie IV. Test. Test 15 février 2008 1 / 71
Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion
Plus en détailArchitecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
Plus en détailBases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement
Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement distribué Éric Leclercq Département IEM / Laboratoire LE2i Septembre 2014
Plus en détailÉlasticité des applications à base de services dans le Cloud
1/40 Élasticité des applications à base de services dans le Cloud Mourad Amziani 12 Tarek Melliti 1 Samir Tata 2 1 IBISC, EA4526, Université d'évry Val-d'Essonne, Évry, France 2 UMR CNRS Samovar, Institut
Plus en détailSage CRM. 7.2 Guide de Portail Client
Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailGé nié Logiciél Livré Blanc
Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc Xavier.Blanc@labri.fr Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer
Plus en détailCA Desktop Migration Manager
CA Desktop Migration Manager Manuel de configuration du déploiement DMM Service Pack 12.8.01 La présente Documentation, qui inclut des systèmes d'aide et du matériel distribués électroniquement (ci-après
Plus en détailPhone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION
Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Sage CRM NOTICE The information contained in this document is believed to be accurate in all respects but
Plus en détailMéthodes agiles. www.businessinteractif.com CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.
Méthodes agiles www.businessinteractif.com Jean-Louis Bénard jlb@businessinteractif.fr CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS 0 20 mai 2002 Sommaire Méthodes agiles : une réponse à un malaise?
Plus en détailIntroduction à JDBC. Accès aux bases de données en Java
Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity
Plus en détailComptabilité - USR. Logiciel : Comptabilité USR - Version 2,16 Documentation réalisée par JJ Gorge Trésorier Tir à l'arc le 04/04/2010 1 / 15
Logiciel : Comptabilité USR - Version 2,16 Documentation réalisée par JJ Gorge Trésorier Tir à l'arc le 04/04/2010 1 / 15 Table des matières Ecran principal de saisie...3 Ajouter une nouvelle opération
Plus en détailDA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova
DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailCours Composant 2. Qualité logicielle et spécications algébriques
UPMC Paris Universitas Master Informatique STL Cours Composant 2. Qualité logicielle et spécications algébriques c 2005-2008 Frédéric Peschanski UPMC Paris Universitas 24 février 2008 c 2005-2008 Frédéric
Plus en détailTP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts
E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond
Plus en détailPROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
Plus en détailSOMMAIRE. Travailler avec les requêtes... 3
Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de
Plus en détailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Plus en détailPlan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?
Plan nitiation au Génie Logiciel Cours 5 ntroduction au π développement agile T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 1/ 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 2/ 28 Bibliographie Plan L informatique
Plus en détailLa haute disponibilité de la CHAINE DE
Pare-feu, proxy, antivirus, authentification LDAP & Radius, contrôle d'accès des portails applicatifs La haute disponibilité de la CHAINE DE SECURITE APPLICATIVE 1.1 La chaîne de sécurité applicative est
Plus en détailORDINATEUR DOSSIERS FICHIERS
SÉANCE INFORMATIQUE N 1 ORDINATEUR DOSSIERS FICHIERS Geo-phile : il y a un lien vers un site de définition des termes informatiques. 1/ ORDINATEUR - Disque dur : capacité exponentielle : actuellement plus
Plus en détailMéthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.
Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...
Plus en détailApplication web de gestion de comptes en banques
Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailManuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailLes Bonnes PRATIQUES DU TEST LOGICIEL
Les Bonnes PRATIQUES DU TEST LOGICIEL SOMMAIRE Qu est-ce que le test logiciel? Pourquoi le test est-il un maillon crucial de l ingénierie logicielle? Quels sont les différents types de tests? Qu est-ce
Plus en détailBrique BDL Gestion de Projet Logiciel
Brique BDL Gestion de Projet Logiciel Processus de développement pratiqué à l'enst Sylvie.Vignes@enst.fr url:http://www.infres.enst.fr/~vignes/bdl Poly: Computer elective project F.Gasperoni Brique BDL
Plus en détailSpring par la pratique
Spring par la pratique 2 e édition Spring 2.5 et 3.0 Arnaud Cogoluègnes Thierry Templier Julien Dubois Jean-Philippe Retaillé avec la contribution de Séverine Templier Roblou et de Olivier Salvatori Groupe
Plus en détailLANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation
ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier
Plus en détailChristophe CANDILLIER Cours de DataMining mars 2004 Page 1
Christophe CANDILLIER Cours de DataMining mars 2004 age 1 1. Introduction 2. rocessus du DataMining 3. Analyse des données en DataMining 4. Analyse en Ligne OLA 5. Logiciels 6. Bibliographie Christophe
Plus en détailArchitectures web/bases de données
Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est
Plus en détailANNEXES. Evaluation de la formation à Polytech Lille Département GIS. Enseignements les plus utiles. Enseignements à renforcer
ANNEXES Evaluation de la formation à Polytech Lille Département GIS Enseignements les plus utiles Enseignements à renforcer Enseignements à intégrer Commentaires Généraux Accompagnement Professionnel Enseignements
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailJ2EE in practice. Olivier Liechti Patrik Fuhrer. Department of Informatics. Computer Science Master Course - SH 2004/05
J2EE in practice Olivier Liechti Patrik Fuhrer Informatics Computer Science Master Course - SH 2004/05 Introduction Dans le cours ASE, nous avons: étudié une plate-forme de développement distribuée: Java
Plus en détailProjet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...
Plus en détailPrise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack
Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack A propos de ce guide A propos de ce guide Ce guide contient des informations de prise en main du BusinessObjects XI R2 Service Pack
Plus en détailMesure et modélisation de l énergie logicielle
Mesure et modélisation de l énergie logicielle Adel Noureddine, Romain Rouvoy, Lionel Seinturier Green Days @ Lille 29 novembre 2013 Plan Contexte! Problèmes et limitations! Mesure énergétique des logiciels
Plus en détailTP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château
Rappel TP3 Intégration de pratiques agiles En direct-live du château 40 41 Scénario d intégration agile 1. User Stories (1) 1. Rédiger les User Stories (exigences) 2. Planifier les Itérations (quoi / quand)
Plus en détailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailGESTION DES BONS DE COMMANDE
GESTION DES BONS DE COMMANDE P1 P2 Table des Matières LA GESTION DES BONS DE COMMANDE 4 PREMIERE EXECUTION DU LOGICIEL 5 DEFINITION DES PARAMETRES 8 Services 9 Comptes Utilisateurs 10 Adresse de livraison
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailCours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles
Plus en détailChapitre 2 Devine mon nombre!
Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction
Plus en détailModèle de calcul des paramètres économiques
Modèle de calcul des paramètres économiques selon norme SIA 480 Calcul de rentabilité pour les investissements dans le bâtiment Version 3.2 1. Introduction 1.1 Version Excel Le modèle de calcul a été développé
Plus en détailQuick Start Installation de MDweb version 2.3
Quick Start Installation de MDweb version 2.3 Date : 2011.08.26 1. Quickstart Quick Start - Installation de MDweb version 2011 Installation Téléchargement et Installation des logiciels requis Déploiement
Plus en détailProjet Robot Centaure
Projet Robot Centaure Année 2013-2014 IMA4 S8 Étudiants : Clément TACHÉ Liying WANG Enseignants : Robert Litwak Xiavier Redon Table des matières : Remerciements Introduction Présentation et état des lieux
Plus en détailL EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN : 2-212-11199-1
L EAI par la pratique François Rivard Thomas Plantain ISBN : 2-212-11199-1 Table des matières Avant-propos................................................ Quel est l objectif de cet ouvrage...............................
Plus en détailTest de logiciel dans les méthodes agiles
Test de logiciel dans les méthodes agiles Appliqué au contexte objet (Java) 1 Aspects «théoriques» 2 Aspects pratiques le développement dirigé par les tests en partie inspiré d un cours de Laurie Williams
Plus en détailINSTALLATION ET CONFIGURATION DE OPENLDAP
INSTALLATION ET CONFIGURATION DE OPENLDAP Ce document a pour intérêt de décrire les étapes de l installation et de la configuration de l outil OpenLDAP sous l OS FreeBSD 4.8 Installation et Configuration
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailAgilitéet qualité logicielle: une mutation enmarche
Agilitéet qualité logicielle: une mutation enmarche Jean-Paul SUBRA Introduction : le manifeste Agile Manifeste pour le développement Agile de logiciels Nous découvrons comment mieux développer des logiciels
Plus en détailJava 7 Les fondamentaux du langage Java
184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque
Plus en détailInstallation et prise en main
TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailCQP Développeur Nouvelles Technologies (DNT)
ORGANISME REFERENCE STAGE : 26572 20 rue de l Arcade 75 008 PARIS CONTACT Couverture géographique : M. Frédéric DIOLEZ Bordeaux, Rouen, Lyon, Toulouse, Marseille Tél. : 09 88 66 17 40 Nantes, Lille, Strasbourg,
Plus en détailProgrammation par composants (1/3) Programmation par composants (2/3)
Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant
Plus en détailAgile 360 Product Owner Scrum Master
Agile 360 Product Owner Scrum Master Lead Technique Equipe Agile Conception Agile Leadership Agile Software Craftmanship Test Driven Development Catalogue 2013 Liste des formations Formation Agile 360
Plus en détailPatrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailMicrosoft Application Center Test
Microsoft Application Center Test L'outil de Test de performance des Sites Web Avec Visual Studio.NET, il est fourni une petite application qui permet de valider la performance de son site Internet ou
Plus en détailGoogle fait alors son travail et vous propose une liste de plusieurs milliers de sites susceptibles de faire votre bonheur de consommateur.
Quelques resultats de méthode : Entre le 20 Juillet et le 20 Octobre 2011 : Sur une liste de seulement 60 mots clés ou séquences clés 1. 7 sont premiers sur Google soit 12 % 2. 16 sont dans les 3 premiers
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailInstallation Windows 2000 Server
Installation Windows 2000 Server 1. Objectif Ce document donne une démarche pour l installation d un serveur Windows 2000, d un serveur DNS et d un contrôleur de domaine (DC), en regard de certains éléments
Plus en détailLES tests d'acceptation
dans la série : b.d. agile! Idée et dessins par Anis berejeb : www.berejeb.com LES tests d'acceptation reflexions, experimentations... réussites et échecs... apprentissage et amelioration. à Partager avec
Plus en détail