Première partie I. Principe des tests. Tests. Notre problème. Notre problème. Comment s assurer qu un programme «marche»?

Dimension: px
Commencer à balayer dès la page:

Download "Première partie I. Principe des tests. Tests. Notre problème. Notre problème. Comment s assurer qu un programme «marche»?"

Transcription

1 Tests Première partie I Guillaume Wisniewski Principe des tests LIMSI Université Paris Sud Septembre 2014 Notre problème Notre problème Comment s assurer qu un programme «marche»? Comment s assurer qu un programme «marche»? Comment définir «marche»? Est-ce si facile? (1) Est-ce si facile? (2) Pfizer a prétendu, à tord, que l atorvastatin était «meilleur» que la simvastatin à cause «d une erreur de programmation» dans l étude expérimentale (Juin 2007, WebMD) À cause d une erreur de programmation dans le logiciel de contrôle du Therac-25, 3 patients ont reçu une dose mortelle de radiations (Boston Globe, Novembre 1987) I bug le plus cher de l histoire de l informatique I vol 501 d Ariane 5 : destruction de la fusée 40s après le décolage I mauvais test : un composant de contrôle qui marchait pour Ariane 4, n était pas adapté à Ariane 5

2 Les solutions Les différents types de tests test unitaire : 1. les preuves formelles : prouvent que le code respecte un ensemble de spécifications formelles. ex. : système B application : système de navigation de la ligne les tests heuristiques : tester le programme sur certaines entrées comment choisir ces entrées? test les modules (= unité de code) indépendamment test d intégration intégration des différents modules test fonctionnel s assurer que le programme fait bien ce qui est demandé orienté utilisateur test de régression : s assurer qu une modification n a pas «cassé» le code Problématique (1) Cycle de développement habituel (p.ex. en TP) Deuxième partie II Les tests unitaires on écrit un petit morceau de code, puis, à l aide d un debugger ou de println on regarde si le morceau de code fait ce que l on espère Exemple... // dans le main res = a.add(3, 4) System.out.println("res = " + res);... on regarde à la main si le résultat obtenu correspond au résultat attendu Problématique (2) Loi du defect cost increase Aspects positifs le code ajouté est testé au fur et à mesure Aspects négatifs peut-on facilement ré-exécuter les tests? que se passe-t-il lorsque l on doit tester un «gros» programme (c.-à-d. > 10 classes/fonctions)? comment s assurer que les résultats affichés sont bien ceux que l on attendait? problème de la visualisation c'est une usine à gaz pourtant ça marchait hier

3 Qu est-ce qu un test unitaire? Caractéristiques Objectifs Fail early, fail often détecter les erreurs le plus tôt possible dans le cycle de développement tester une nouvelle méthode dès que l on écrit celle-ci répéter l ensemble des tests à chaque modification du code Questions à se poser? la méthode fait-elle bien ce que l on veut qu elle fasse? le fait-elle encore après la modification qui vient d être effectuée? (test de régression) unitaire : au niveau de l «unité logicielle» (plus petit composant compilable) ; test de l interface automatique : on doit pouvoir exécuter l ensemble des tests automatiquement à n importe quel moment du cycle de développement la détection d éventuel problème doit également être automatisée ; répétable : un test doit être indépendant de l environnement dans lequel il est exécuté répétable aussi souvent que nécessaire sur n importe quelle machine ; disponible : si on peut accéder au code source, on doit pouvoir accéder aux tests unitaires correspondants ; Principe d un test unitaire Exemple : test de startswith (1) Ce que l on test au moins un test par méthode Contenu d un test fixture = code permettant d initialiser un test (exécuté pour chaque test) compare la valeur attendue et la valeur obtenue La méthode assert* : assertequal(a, b), ne fait rien si a.equals(b), lève une exception sinon asserttrue(a) assertfalse(a) reporting (mail, graphique,...) les tests sont indépendants (l exécution d un test ne doit pas modifier le résultat d un autre test) Exemple : test de startswith (1) Exemple : tester l intersection de deux rectangles public static void test() { asserttrue("a".startswith("a")); assertfalse("a".startswith("b")); asserttrue("abc".startswith("a")); asserttrue("abc".startswith("ab")); asserttrue("abc".startswith("abc")); assertfalse("abc".startswith("abcd")); } Combien de tests à écrire? compare la valeur obtenue avec la valeur attendue l utilisation d exceptions favorisent l intégration des tests (dans une interface, un site web,...)

4 Exemple : tester l intersection de deux rectangles Exemple : tester l intersection de deux rectangles Combien de tests à écrire? Combien de tests à écrire? Difficultés problème de la couverture conditions «aux bords» les tests à faire et leur résultats dépendent des spécifications Quels tests écrire en premier? Quels tests écrire en test? tests qui devraient réussir : cas limites : trier une liste vide ou une liste avec un élément cas intéressant le plus simple : trier une liste de deux valeurs cas général : trier une liste de neuf valeurs tests qui devraient rater : entrée invalide remarque : la gestion des erreurs fait partie de l interface test «sanitaires» vérifier que les données restent consistentes Penser à ajouter les tests au fur et à mesure dès qu une anomalie est détectée : écrire le test correspondant permet de s assurer que l erreur est bien corrigée (dans la version courante et dans les versions futures) permet de déterminer les erreurs courantes et de les documenter permet d améliorer la couverture des tests Quand exécuter les tests unitaires? Écriture / exécution des tests tests à écrire en même temps que le programme les exécuter le plus souvent possible Troisième partie III Test Driven Development outils pour automatiser l exécution des tests

5 Culture... Question préalable Kent Beck et Werd Cunningham (fin 90) méthode de développement / pour aborder les problèmes 4 questions pour évaluer la qualité d un code très à la mode aujourd hui : extreme programming (XP) Le code marche-t-il? Remarque aspect le plus essentiel De manière presque aussi importante Le Test Driven Development (TDD) Principe (caricatural) Écrire un ensemble de test unitaire pour chaque classe/fonction avant d écrire le code 1. Le code est-il compréhensible? 2. Le code est-il modifiable facilement? 3. Le code est-il modifiable sûrement? Intérêt meilleur ciblage : «The point of TDD is to drive out the functionality the software actually needs, rather than what the programmer thinks it probably ought to have», Dan North. clarifie les spécifications mesure du progrès de développement test = bonne documentation du code...

6 Exemple : deux spécifications 1. «écrire la fonction somme cumulative» 2. tests unitaires : Tests = [ [[], [], "empty list"], [[1], [1], "single value"], [[1, 3], [1, 4], "two values"], [[1, 3, 7], [1, 4, 11], "three values"], [[-1, 1], [-1, 0], "negative values"], [[1, 3.0], [1, 4.0], "mixed types"], ["string", ValueError, "non-list input"], [["a"], ValueError, "non-numeric value"] ] Exemple : deux spécifications 1. «écrire la fonction somme cumulative» créer une nouvelle liste ou écraser la liste courante? comment gérer les erreurs 2. tests unitaires : Tests = [ [[], [], "empty list"], [[1], [1], "single value"], [[1, 3], [1, 4], "two values"], [[1, 3, 7], [1, 4, 11], "three values"], [[-1, 1], [-1, 0], "negative values"], [[1, 3.0], [1, 4.0], "mixed types"], ["string", ValueError, "non-list input"], [["a"], ValueError, "non-numeric value"] ] Plus qu à compléter le code pour que les tests passent Le cycle TDD 1. Test TEST CODE REFACTORING cf. tout ce qui précède le test ne doit pas passer! 1. Test 2. Code cf. tout ce qui précède le test ne doit pas passer! mais le code doit compiler vous savez faire! uniquement le code qui permet de passer le test pour une bonne raison

7 3. Refactoring Conclusion (TDD) Résumé Chaque ligne de code est justifiée par un test qui ne passait pas Intérêt fiabilité du code simplicité et expressivité du design «nettoyage» du code (essentiellement pour la lisibilité) sans ajout de fonctionnalités meilleure visibilité sur l état du projet confiance Comment exécuter les tests unitaires? Quatrième partie IV En pratique : le framework JUnit à la main : fonction main utiliser des assertions outils pour automatiser l exécution JUnit Sortie en mode graphique Historique JUnit framework de tests (1997) simplifie le développement de tests : exécution des tests, visualisation des résultats,... intégré dans quasiment tous les IDE Dans les autres langages largement imité : interfaces similaires en C++, Perl,.NET, Python,... plugin / amélioration : mesurer la durée d exécution des tests, tester les applications web,...

8 Syntaxe (1) Syntaxe (2) Définition d un test public static void mamethodedetest() { // utiliser l instruction assert } il suffit de faire précéder la méthode (annotation) 1. télécharger la bibliothèque junit (www.junit.org) 2. compiler : javac -cp.:junit-4.9.jar TestHarryPotter.java 3. executer : java -cp.:junit-4.9.jar org.junit.runner.junitcore \ TestHarryPotter L importance des tests Cinquième partie V Conclusion Resolver (www.resolversystems.com) L importance des tests L importance des tests Quelques chiffres 57K lignes de code (LOC) 2 millions de dollars 1,5 année de développement pour 10 développeurs 31K lignes correspondant aux tests unitaires Quelques chiffres 57K lignes de code (LOC) 2 millions de dollars 1,5 année de développement pour 10 développeurs 10 lignes par jour 31K lignes correspondant aux tests unitaires (55%)

9 Attention Exemple de logiciel de code review Trying to improve the quality of software by doing more testing is like trying to lose weight by weighting yourself more often Steve McConnel software quality!= testing méthode de management/organisation tout au long de la vie d un logiciel exemple : pair-programming, code review,... Références junit.org : le site principal de JUnit (avec le.jar) junit.sourceforge.net/doc/testinfected/testing. htm : tutorial JUnit 3.8 et motivation des tests unitaires : intégration de JUnit avec eclipse : tutorial JUnit 4.

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?

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étail

Tests unitaires Développement dirigé par les tests

Tests unitaires Développement dirigé par les tests Tests unitaires Développement dirigé par les tests Utilisation de JUnit Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthierpicard@emsefr Tests unitairesdéveloppement dirigé par

Plus en détail

JUnit 3.8 / JUnit 4. P. Graffion

JUnit 3.8 / JUnit 4. P. Graffion JUnit 3.8 / JUnit 4 P. Graffion février 2015 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

Tests unitaires avec JUnit

Tests unitaires avec JUnit Tests unitaires avec JUnit Olivier Mangez Cross Systems o.mangez@cross-systems.com Les tests unitaires : menés par les développeurs au niveau de la classe, de la méthode ils répondent à la question : «est-ce

Plus en détail

Les Bonnes PRATIQUES DU TEST LOGICIEL

Les 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étail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011 1 / 29 Développement Web - Unit Testing - JUnit Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique 2010-2011 2 / 29 Plan Plan 1 Introduction

Plus en détail

Qualité logicielle, tests, débogage

Qualité logicielle, tests, débogage Qualité logicielle, tests, débogage A. Accro aux tests? Une introduction au test logiciel................ 4 Pourquoi le test logiciel? Des tests, pour gagner du temps! Pour aller plus loin Les objectifs

Plus en détail

Tests et intégration continue avec Eclipse

Tests et intégration continue avec Eclipse Tests et intégration continue avec Eclipse Julien Nauroy Ingénieur Confirmé CDD INRIA équipe TAO Laboratoire de Recherche en Informatique Université Paris Sud 23/05/2013 Quelques mots sur cette présentation

Plus en détail

6. Des objets bien conçus

6. Des objets bien conçus Conception objet en Java avec BlueJ une approche interactive 6. Des objets bien conçus David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec

Plus en détail

Gestion des tests avec JUnit

Gestion des tests avec JUnit Gestion des tests avec JUnit JUnit Outil de gestion des tests unitaires pour les programmes Java, JUnit fait partie d un cadre plus général pour le test unitaire des programmes, le modèle de conception

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) JDT (débogage), outils d analyse statique Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Informatique TP1 : Découverte de Python CPP 1A

Informatique TP1 : Découverte de Python CPP 1A Informatique TP1 : Découverte de Python CPP 1A Romain Casati, Wafa Johal, Frederic Devernay, Matthieu Moy Avril - juin 2014 1 Découverte de l IDE : IDLE IDLE est un environnement de développement (Integrated

Plus en détail

TD n 4 - Développement dirigé par les tests

TD n 4 - Développement dirigé par les tests ENSEIRB Année 2013-2014 3ème année IT306 TD n 4 - Développement dirigé par les tests Résumé : Cette séance décrit une méthode de développment nommée développement dirigé par les tests, qui s appuie sur

Plus en détail

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles Laurent PY CEO, Smartesting Laurent.py@smartesting.com @py_laurent www.smartesting.com Guillaume Coquelle Testeur,

Plus en détail

Cours de Test Logiciel

Cours de Test Logiciel S.Bardin Test Logiciel 1/ 31 Cours de Test Logiciel Leçon 4 : Tests de régression Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle sebastien.bardin@cea.fr http://sebastien.bardin.free.fr Tests

Plus en détail

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Plan. 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étail

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015 INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015 Question #1 Quelle technique de mise sous test devons-nous utiliser si nous voulons simuler le comportement d'une

Plus en détail

Conduite de projets et architecture logicielle

Conduite de projets et architecture logicielle s et architecture logicielle ABCHIR Mohammed-Amine Université Paris 8 15 février 2011 1/36 ABCHIR Mohammed-Amine (Université Paris 8) Conduite de projets et architecture logicielle 15 février 2011 1 /

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1 JUnit 3.8 / JUnit 4 P. Grafion / Junit v1.4 1 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

Familiarisation avec Eclipse / Netbeans

Familiarisation avec Eclipse / Netbeans Institut Galilée LEE Année 011-01 Master T.P. 0 Familiarisation avec Eclipse / Netbeans Lien important contenant le pdf du cours et du TP, et ensuite des sources : http://www-lipn.univ-paris13.fr/~fouquere/mpls

Plus en détail

TP JUnit 4.12. Première partie Le premier test d'une classe

TP JUnit 4.12. Première partie Le premier test d'une classe TP JUnit 4.12 Récupérez les deux fichiers junit.jar et hamcrest-core.jar à partir de l'url https://github.com/junit-team/junit/wiki/download-and-install (plus précisément à partir de l'url http://junit.org).

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java 1 / 24 1 Vue générale La technologie Java Le langage Java La machine virtuelle Java Résumé Plan 2 Hello World Prérequis Premier programme : 3 étapes Résumé 3 HelloWorld en

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup

Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup Serveur d intégration continue Jenkins et d analyse de code Sonar couplés à la forge logiciel SourceSup Sébastien MEDARD GIP RENATER 263 avenue du Général Leclerc CS 74205 35042 Rennes Cedex Résumé L intégration

Plus en détail

Eléments pratiques de test des Hiérarchies et Frameworks

Eléments pratiques de test des Hiérarchies et Frameworks Eléments pratiques de test des Hiérarchies et Frameworks Notes de cours Christophe Dony Master Info Pro - Université Montpellier-II 1 Introduction 1.1 Définitions Génie Logiciel No 18, Mars 1990. EC2.

Plus en détail

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java HLIN406 - Janvier 2015 Le Java Development Kit offre un ensemble d outils de développement d applications Java. Pour utiliser ces outils, JDK ne propose pas d interface utilisateur, on doit donc écrire

Plus en détail

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

TP3 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étail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

TDD, agilité et Kanban

TDD, agilité et Kanban TDD, agilité et Kanban Philippe Collet Licence 3 MIAGE S6 2014-2015 http://miageprojet2.unice.fr/user:philippecollet/projet_de_d%c3%a9veloppement_2014-2015 Plan r Agilité r TDD r Kanban r Planning Poker

Plus en détail

Vérifier la qualité de vos applications logicielle de manière continue

Vé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étail

Environnements de développement (intégrés)

Environnements 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étail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel 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étail

Agilitéet qualité logicielle: une mutation enmarche

Agilité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étail

Agile 360 Product Owner Scrum Master

Agile 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étail

Ioannis Parissis UFR IMA Laboratoire LIG. Test logiciel

Ioannis Parissis UFR IMA Laboratoire LIG. Test logiciel Test logiciel Objectif et plan du du cours Présenter les concepts de base sur le test logiciel Introduire des techniques simples pour construire des tests A partir de la spécification informelle du programme

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Périmètre de la solution

Périmètre de la solution Périmètre de la solution Tests unitaires : Pouvoir créer rapidement un nouveau cas de test à la suite de l ajout ou de l évolution d une règle de gestion. Ne pas avoir à coder chaque nouveau cas de test.

Plus en détail

Techniques de Développement

Techniques de Développement Techniques de Développement Quelques définitions relatives au développement de logiciel Sébastien Faucou Université de Nantes (IUT de Nantes, département Informatique) Licence Professionnelle Systèmes

Plus en détail

nulles dans un langage à objets

nulles dans un langage à objets Prévention de déréférencement de références nulles dans un langage à objets Jean-Sébastien Gélinas, Étienne M. Gagnon, Jean Privat Université du Québec à Montréal Langages et Modèles à Objets Nancy 27

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

Plus en détail

Introduction au débogage avec Eclipse

Introduction au débogage avec Eclipse Introduction au débogage avec Eclipse C. Pain-Barre et H. Garreta IUT INFO Année 2006-2007 1 Notion de debogage Tout développeur est confronté un jour à un programme qui plante pour une raison apparemment

Plus en détail

L'apprentissage du TDD en coding-dojo. Xavier Nopre. 18/10/2013 Salle : Courage 10h30 12h30

L'apprentissage du TDD en coding-dojo. Xavier Nopre. 18/10/2013 Salle : Courage 10h30 12h30 L'apprentissage du TDD en coding-dojo Xavier Nopre 18/10/2013 Salle : Courage 10h30 12h30 Merci à nos sponsors Platinium Gold Parrainage Silver Institutionnel Qui suis-je? Xavier Nopre Développeur Agiliste

Plus en détail

6761 Validation de la conformité 21.03.2007

6761 Validation de la conformité 21.03.2007 6761 Validation de la conformité 21.03.2007 Peter DAEHNE 1 Tests de stress Les tests de stress permettent d étudier le comportement du logiciel lorsque celui-ci est mis dans des situations extrêmes, aux

Plus en détail

Groovy & Grails. Langage de script basé sur Java appliqué dans un environnement JEE

Groovy & Grails. Langage de script basé sur Java appliqué dans un environnement JEE Groovy & Grails Langage de script basé sur Java appliqué dans un environnement JEE Martin Le Bas 1 Xposé 2010 Plan Introduction Groovy Grails Conclusion Références Plan de la présentation Introduction

Plus en détail

Processus d Informatisation

Processus 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étail

Tests unitaires et fonctionnels avec Symfony 1.2

Tests unitaires et fonctionnels avec Symfony 1.2 Tests unitaires et fonctionnels avec Symfony 1.2 Geoffrey Bachelet - Hugo Hamon Titre présentation Conférencier Qui sommes-nous? Geoffrey Bachelet Hugo Hamon Au sommaire... Introduction aux tests automatisés

Plus en détail

Introduction. Chapitre 1. 1.1 Pourquoi Java?

Introduction. Chapitre 1. 1.1 Pourquoi Java? Chapitre 1 Introduction Nos objectifs pédagogiques sont : 1. Étudier les concepts de base de la programmation dans les langages de haut-niveau, de manière à : les appliquer en Java, comprendre des concepts

Plus en détail

PLAN. I. Pourquoi : les besoins, les types d applications

PLAN. I. Pourquoi : les besoins, les types d applications PLAN I. Pourquoi : les besoins, les types d applications II. Comment : les technos et pratiques dont on dispose pour mettre en œuvre les applications III. Avec quels outils III.1 Introduction aux IDE III.2

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

2- Téléchargement et installation version actuelle 6.1

2- Téléchargement et installation version actuelle 6.1 1- EDI NetBeans (Environnement : Microsoft Windows Linux Ubuntu) EDI, Environnement de Développement Intégré Anglais : IDE, Integrated Development Environment Programme regroupant : Un éditeur de texte

Plus en détail

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed. Année 2008-2009 Les exceptions Java Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Introduction Supposez que vous écrivez un programme qui accède

Plus en détail

Tests orientés objets JUnit

Tests orientés objets JUnit Plan Tests orientés objets JUnit Philippe Collet Retour sur V&V JUnit 4 Rapide tour de JUnit 3 Alternatives à JUnit Master 1 Informatique 2009-2010 http://deptinfo.unice.fr/twiki/bin/view/minfo/gl P. Collet

Plus en détail

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Projet Informatique Philippe Collet Licence 3 Informatique S5 2014-2015 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Réalisation d'un développement de taille conséquente? r Firefox? Ph.

Plus en détail

Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs

Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs Offre FlowUnit by CGI Tests automatisés de flux de données inter-applicatifs CGI Group Inc. 2013 Agenda 1 2 3 4 5 6 7 Problématiques et enjeux Solutions et fonctionnalités Concepts Exécution et rapport

Plus en détail

Scub Foundation. Socle technique Java Open Source http://www.scub-foundation.org

Scub Foundation. Socle technique Java Open Source http://www.scub-foundation.org Scub Foundation Socle technique Java Open Source http://www.scub-foundation.org Présentation de Scub Présentation de Scub Scub est une société de service en informatique qui a pour but de fournir du conseil

Plus en détail

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/ Institut Galilée Année 2015-2016 TP SPRING Programmation et Logiciels sûrs Master 2 PLS Résumé L objectif de ce TP est d être capable de réaliser une application Java de gestion de location de véhicules,voiture

Plus en détail

Cours 4 Programmation web, orientée serveur

Cours 4 Programmation web, orientée serveur DUT MMI IUT de Marne-la-Vallée 17/03/2015 M2202 - Algorithmique Cours 4 Programmation web, orientée serveur Philippe Gambette Sources phpdebutant.net www.php.net (documentation du langage PHP) Plan du

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence 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étail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Le mécanisme d exception du langage Java

Le mécanisme d exception du langage Java Le mécanisme d exception du langage Java 1 / 39 Plan 1 Introduction aux exceptions en Java 2 Exemples de code avec gestion des exceptions 3 Créer ses propres exceptions 4 Instruction try/catch/finally

Plus en détail

Découverte de l EDI Visual Studio 2005 mai 2008

Découverte de l EDI Visual Studio 2005 mai 2008 (Environnement : Microsoft Windows) 1- EDI Visual Studio 2005 VB.net EDI, Environnement de Développement Intégré Anglais : IDE, Integrated Development Environment Programme regroupant : Un éditeur de texte

Plus en détail

La gestion des exceptions

La gestion des exceptions La gestion des exceptions Même lorsqu un programme est au point, certaines circonstances exceptionnelles peuvent compromettre la poursuite de son exécution ; il peut s agir par exemple de données incorrectes

Plus en détail

Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW

Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW Mathilde VINCENT - Olivier JOURDAN Paris - le 7/2/2012 france.ni.com Qui sommes-nous? Une PME du Grésivaudan Créée en 1989!

Plus en détail

Développement d une application java de bureau pour la gestion des rapports de visite GSB

Développement d une application java de bureau pour la gestion des rapports de visite GSB Développement d une application java de bureau pour la gestion des rapports de visite GSB CAHIER DES CHARGES Définition du besoin Définition de l'objet Les rapports de visite sont actuellement gérés à

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 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étail

INF2015 Développement de logiciels dans un environnement Agile. Examen final 24 avril 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen final 24 avril 2014 17:30 à 20:30 Examen final 24 avril 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Qu'est-ce qu'un test de régression? Question #2 5% Selon extreme Programming,

Plus en détail

COURS MGL 804 SUJET : ÉVALUATION DE LA MAINTENABILITÉ DES PRODUITS LOGICIELS DU CCI RAPPORT FINAL. Franklin Kamsong

COURS MGL 804 SUJET : ÉVALUATION DE LA MAINTENABILITÉ DES PRODUITS LOGICIELS DU CCI RAPPORT FINAL. Franklin Kamsong COURS MGL 804 SUJET : ÉVALUATION DE LA MAINTENABILITÉ DES PRODUITS LOGICIELS DU CCI RAPPORT FINAL Franklin Kamsong ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC MONTRÉAL HIVER 2012 TABLE DES MATIÈRES

Plus en détail

Outils de gestion de projet informatique

Outils de gestion de projet informatique Outils de gestion de projet informatique Plan Introduction Méthodes agiles (extreme Programing) Dépôt de source (Subversion) Gestionnaire de tâches (Trac) Environnement de Développement Intégré (Eclipse)

Plus en détail

GÉNIE LOGICIEL (SOFTWARE ENGINEERING)

GÉNIE LOGICIEL (SOFTWARE ENGINEERING) GÉNIE LOGICIEL (SOFTWARE ENGINEERING) 6ÈME PARTIE TEST DU LOGICIEL (SOFTWARE TESTING) Faculté des Sciences et Techniques http://perso.univ-st-etienne.fr/jacquene/gl/ Francois.Jacquenet@univ-st-etienne.fr

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE Retour d expérience Benjamin Boutin QA Manager S2E www.s2e-services-epargne-entreprise.com Marc Rambert Director Dynamic Testing Solution Coverity/Synopsys

Plus en détail

Cours 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 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étail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 +Cours 2 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction

Plus en détail

Testing : A Roadmap. Mary Jean Harrold. Présentation de Olivier Tissot

Testing : A Roadmap. Mary Jean Harrold. Présentation de Olivier Tissot Testing : A Roadmap Mary Jean Harrold Présentation de Olivier Tissot Testing : A Roadmap I. L auteur II. Introduction sur les test : les enjeux, la problématique III. Les tests : roadmap IV. Conclusion

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel 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étail

TP 5 Serveur REST, tests et premier client REST

TP 5 Serveur REST, tests et premier client REST TP 5 Serveur REST, tests et premier client REST Xavier de Rochefort xderoche@labri.fr - labri.fr/~xderoche 13 mai 2014 Résumé Les derniers TP vous ont guidé dans ➊ la mise en place d un serveur REST avec

Plus en détail

Plan. 1. Introduction au test. 2. Le test statique. 1. Revue de code 2. Règles de codage 3. Vérifications automatiques - 2 -

Plan. 1. Introduction au test. 2. Le test statique. 1. Revue de code 2. Règles de codage 3. Vérifications automatiques - 2 - Software testing Plan. Introduction au test 2. Le test statique. Revue de code 2. Règles de codage 3. Vérifications automatiques 2 Tester pour prévenir une erreur du développeur introduit Une erreur est

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 MIAGE S6 2013-2014

Projet de développement. Introduction à Eclipse. Philippe Collet. Licence 3 MIAGE S6 2013-2014 Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2013-2014 http://miageprojet2.unice.fr/user:philippecollet/projet_de_d%c3%a9veloppement_2013-2014 Plan r Eclipse : Introduction

Plus en détail

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de règles à appliquer dans un ordre déterminé à un nombre

Plus en détail

Refactoring. des applications Java/J2EE. Jean-Philippe Retaillé. Olivier Salvatori Thierry Templier Michel Hue. avec la contribution de

Refactoring. des applications Java/J2EE. Jean-Philippe Retaillé. Olivier Salvatori Thierry Templier Michel Hue. avec la contribution de Refactoring des applications Java/J2EE Jean-Philippe Retaillé avec la contribution de Olivier Salvatori Thierry Templier Michel Hue Groupe Eyrolles, 2005 ISBN : 2-212-11577-6 Table des matières Remerciements..............................................

Plus en détail

ULCO-L3Info-Projets-CM2

ULCO-L3Info-Projets-CM2 ULCO-L3Info-Projets-CM2 Arnaud Lewandowski, Eric Ramat, Julien Dehos Université du Littoral Côte d Opale 18 juin 2015 A Lewandowski, E Ramat, J Dehos ULCO-L3Info-Projets-CM2 1/44 Sommaire 1 Conception

Plus en détail

Environnements et Outils de Développement Cours 1 Introduction

Environnements et Outils de Développement Cours 1 Introduction Environnements et Outils de Développement Cours 1 Introduction Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/~zack/teaching/1112/ed6/

Plus en détail

Mé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. 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étail

Sujet de veille technologique : Les langages de développement et leurs évolutions

Sujet de veille technologique : Les langages de développement et leurs évolutions 2014 Sujet de veille technologique : Les langages de développement et leurs évolutions Charly Rivière IIA SOMMAIRE : SOMMAIRE :... 0 1. Pourquoi ce sujet?... 2 2. Qu est-ce qu un langage de développement...

Plus en détail

Introduction pratique au Développement orienté Modèle Pierre Parrend, Mars 2005

Introduction pratique au Développement orienté Modèle Pierre Parrend, Mars 2005 MDA : Un Tutoriel Introduction pratique au Développement orienté Modèle Pierre Parrend, Mars 2005 1 Sommaire Table des matières 1 Sommaire 1 2 Introduction 2 2.1 A qui s adresse ce tutoriel......................

Plus en détail

JAVA Première approche

JAVA Première approche Année 2008-2009 JAVA Première approche Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Qu'est ce que Java? C'est le nom d'une technologie mise au point

Plus en détail

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende Que faire en algorithmique en classe de seconde? BEGIN Que dit le programme? Algorithmique (objectifs pour le lycée) La démarche algorithmique est, depuis les origines, une composante essentielle de l

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée Master 1 T.P. 1 Bases Java - Eclipse / Netbeans PDJ Environnements Java Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement d exécution

Plus en détail

Mise en œuvre des tests logiciels

Mise en œuvre des tests logiciels Mise en œuvre des tests logiciels support du cours de «Techniques de Développement» Sébastien Faucou Université de Nantes 2007-2008 Plan 1 Introduction 2 Concepts de base Les cibles Les objectifs Les techniques

Plus en détail

Expérience de la qualité dans nos développements. Rhénatic :Thema-technique 04/12/09 La qualité dans les développements logiciels

Expérience de la qualité dans nos développements. Rhénatic :Thema-technique 04/12/09 La qualité dans les développements logiciels Expérience de la qualité dans nos développements. Qui sommes nous? Sébastien HEITZMANN - Gérant. Développement de logiciels sur mesure. 10 ans d'expérience. 5 personnes. Typologie des projets. Création

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

Tests unitaires avec Visual Studio

Tests unitaires avec Visual Studio Tests unitaires avec Visual Studio (source MSDN) Rappels (initiation aux tests unitaires SI6 Tp6) Les tests unitaires offrent aux développeurs une méthode rapide pour rechercher des erreurs de logique

Plus en détail

Modélisation: outillage et intégration

Modélisation: outillage et intégration Modélisation: outillage et intégration Emmanuel Gaudin emmanuel.gaudin@pragmadev.com Un réel besoin Le logiciel double tous les deux ans. Le volume final rend extrêmement difficile de garantir le niveau

Plus en détail