NFP121, Cnam/Paris JUnit tests pour Android Cnam Paris jean-michel Douin, douin au cnam point fr version en cours

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

Download "NFP121, Cnam/Paris JUnit tests pour Android Cnam Paris jean-michel Douin, douin au cnam point fr version en cours"

Transcription

1 , Cnam/Paris JUnit tests pour Android Cnam Paris jean-michel Douin, douin au cnam point fr version en cours Notes sur l usage de JUnit3 sous Android Le lecteur intéressé par un cours sur les tests pourra se référer à celui de l université de Trente «Software Analysis and Testing» 1

2 Avertissement Ce support a comme pré-requis : La connaissance de junit3 Ou la lecture de ce support 2

3 Sommaire du «triptyque» 1. Présentation de JUnit, les bases 2. Android et les tests unitaires 3. Assertions et programmation par contrats 3

4 Sommaire : Les 3 fichiers Junit3 Android Java et la programmation par contrats 4

5 Tests et tests unitaires Outil : junit Présentation Sommaire 1) Tests d une application Architecture MVC : une pile et son IHM Tests unitaires de la pile Tests de plusieurs piles Tests de l IHM JApplet, JFrame Tests en boîte noire Tests en boîte blanche Doublures d objets Pertinence des tests Outil Emma emma.sourceforge.org 5

6 Sommaire 2) Test unitaires et Android Nouvelles Assertions, Nouvelles classes Test implicite en boite noire de l IHM Tests d une activity Mock Objects Tests d un service Tests de la persistance, (d un «Content Provider») 6

7 Sommaire 3) Assertions en Java Assert, AssertionError Invariant de représentation, fonction d abstraction Programmation par contrats Pré-post assertions, invariant de classe Invariant et variant de boucle, invariant de classe, boucles Assertions et héritage Héritage et pré et post assertions usage de Jass : source java instrumenté JML, (JMLUnit), cofoja : usage des annotations Initiation à la preuve, Ce programme respecte les assertions à l aide d un démonstrateur ESC2Java 7

8 Bibliographie utilisée [1] Le cours Software Analysis and Testing de Paolo Tonella, Mariano Ceccato Alessandro Marchetto, Cu Duy Nguyen University of Trento Plusieurs figures de ce support sont extraites de cette référence Lecture préalable indispensable Test Driven Development and Android : Emma et Android Le livre utilisé Android Application Testing Guide Diego Torres Milano 8

9 Rappel : Tests et tests unitaires Tests et tests unitaires Outils : junit3 et junit4 Objets métiers Junit (Low level) junit3, junit4 Le patron Composite Une feuille est une classe de test Lecture associée : 9

10 Test et Android Junit3 Classes «ordinaires», tests unitaires identiques assertequals. Android spécifique: IHM, Les services, La persistance, Les doublures, Le «stress» d une activité. Exemple d une classe proposée par Android : ActivityInstrumentationTestCase2 extends junit.framework.testcase 10

11 Android L architecture retenue 11

12 IHM : un sommaire Une Activity, une IHM Accès aux composants graphiques? Accès aux variables d instance? Comment? 12

13 Applette /Activity, même principe A la place d un utilisateur Clic, entrée de texte Test avec Android : deux activités PileActivity PileActivityTest 13

14 Test de l action empiler Un scénario de test de l IHM 1. Écriture d un nombre 2. Cliquer sur le bouton empiler 3. Lecture de la zone d affichage 4. Assertions sur le contenu de cette zone 14

15 Comment accéder à l activité à tester? Une classe toute prête: ActivityInstrumentationTestCase2<T> extends junit.framework.testcase Méthodes utiles getactvity() getinstrumentation() setactivityinitialtouchmode 15

16 Le pattern Composite TestCase s est enrichi Extrait de Android Application Testing Guide, Cf. biblio 16

17 IntrumentationTestCase Extrait de Android Application Testing Guide, Cf. biblio 17

18 Test des Activity ActivityInstrumentationTestCase2<T> Prise du contrôle d une activité Marche, arrêt Accès aux vues et composants graphiques Button b =... Génération d évènements utilisateurs b.perfomclick(); Hérite de TestCase Accès à toute les assertions et bien public void testdel_ihm() { 18

19 Test d une IHM, des questions se posent Accès aux composants graphiques? Au sein de l activité de tests Le fichier de ressources de l activité est accessible Accès aux variables d instances? Par introspection Sommes nous toujours en boîte noire 19

20 Rappel : PileActivity, les déclarations private TextView contenu; private EditText private Button private Button private EditText donnee; boutonempiler; boutondepiler; sommet; Ce sont les attributs de L IHM 20

21 Adéquation Activity/TestActivity private PileActivity pileactivity; private TextView contenu; private EditText private Button private Button private EditText donnee; boutonempiler; boutondepiler; sommet; Les attributs de L IHM deviennent des attributs de la classe de tests 21

22 PileTest les déclarations package tp.pile.test; import tp.pile.pileactivity; import tp.pile.r; // accès aux ressources public class PileTest extends ActivityInstrumentationTestCase2<PileActivity> { public PileTest() { super("pile.tp", PileActivity.class); } private PileActivity pileactivity; // L activité à tester private EditText donnee; // les composants graphiques private EditText sommet; private TextView contenu; private Button boutonempiler; private Button boutondepiler; private PileModele<String> pile; // L instance pile 22

23 Affectation des données de l instance de tests protected void setup() throws Exception { super.setup(); this.pileactivity = this.getactivity(); // par le fichier de ressources this.donnee = (EditText)pileActivity.findViewById(tp.pile.R.id.donnee); this.sommet = (EditText)pileActivity.findViewById(tp.pile.R.id.sommet); this.contenu = (TextView)pileActivity.findViewById(tp.pile.R.id.contenu); this.boutonempiler = (Button)pileActivity.findViewById(tp.pile.R.id.empiler); this.boutondepiler = (Button)pileActivity.findViewById(tp.pile.R.id.depiler); } // par introspection this.pile = getmember("pilemodele", pile, pileactivity); 23

24 Avant le premier test, des pré conditions Exécution de la méthode setup puis public void testpreconditions() { assertnotnull(donnee); assertnotnull(sommet); assertnotnull(contenu); assertnotnull(boutonempiler); assertnotnull(boutondepiler); assertnotnull(pile); } 24

25 Test action empiler se précise contenu donnee boutonempiler Écriture d un nombre Cliquer sur le bouton empiler Lecture de la zone d affichage Assertions sur cette zone donnee.settext( ); boutonempiler.performclick(); contenu.gettext() assertequals( ) 25

26 Ma première méthode de public void testempiler() { donnee.settext("12"); boutonempiler.performclick(); donnee.settext("1"); boutonempiler.performclick(); String label = contenu.gettext().tostring(); assertequals(" Contenu incorrect???", "[1, 12]",label); } 26

27 Accès aux attributs mêmes privés? Pourquoi faire? Sont-ce encore des tests en boites noires? Par introspection Field f = obj.getclass().getdeclaredfield(name); T object = (T)field.get(obj); 27

28 Accès aux variables d instances? // par introspection, discussion this.pile = getmember("pilemodele", pile, pileactivity); public <T> T getmember(string name, T type, Object sourceobj) { java.lang.reflect.field field = null; try { field = sourceobj.getclass().getdeclaredfield(name); }catch(nosuchfieldexception e) { fail("l'attribut \"" + membername + "\" n'existe pas."); } field.setaccessible(true); T returnval = null; try { returnval = (T)field.get(sourceObj); } catch (ClassCastException exc) { fail( name + " n est pas du bon type."); } catch (IllegalArgumentException e) { e.printstacktrace(); } catch (IllegalAccessException e) { e.printstacktrace(); } return returnval; } 28

29 Tests de la variable d public void testempiler() { donnee.settext("12"); boutonempiler.performclick(); try{ // accès au modèle assertequals("le sommet???", "12", pile.sommet()); donnee.settext("1"); boutonempiler.performclick(); assertequals( "1", pile.sommet()); }catch(pilevideexception e){ fail(" La pile est vide, diantre! "); } } 29

30 30

31 Architecture des classes possible PileActivity ce qui est à tester Tests de l IHM Tests du modèle Plusieurs paquetages 31

32 Architecture : Plusieurs classes Plusieurs classes de tests de plusieurs packages Une seule classe, Cf. TestSuiteBuilder 32

33 Résultats junit : 33

34 En ligne de commande set path=d:\android-sdk-windows\platform-tools;%path% adb shell am instrument -w cnam.hello.test/android.test.instrumentationtestrunner cnam.hello.test.helloandroidtest:. Failure in testtext: junit.framework.comparisonfailure: expected:<... World, HelloActivity!> but was:<..., Android> at cnam.hello.test.helloandroidtest.testtext(helloandroidtest.java:29) at java.lang.reflect.method.invokenative(native Method) at android.test.instrumentationtestcase.runmethod(instrumentationtestcase.java:204) at android.test.instrumentationtestcase.runtest(instrumentationtestcase.java:194) at android.test.activityinstrumentationtestcase2.runtest(activityinstrumentationtestcase2.java:186) at android.test.androidtestrunner.runtest(androidtestrunner.java:169) at android.test.androidtestrunner.runtest(androidtestrunner.java:154) at android.test.instrumentationtestrunner.onstart(instrumentationtestrunner.java:520) at android.app.instrumentation$instrumentationthread.run(instrumentation.java:1447) Test results for InstrumentationTestRunner=..F Time: FAILURES!!! Tests run: 2, Failures: 1, Errors: 0 34

35 En ligne de commande : la pile F:\workspace_android_junit_tests\PileTest>adb shell am instrument -w all.tests/android.test.instrumentationtestrunner tp.pile.test.ihm.piletestihm:... tp.pile.test.persistance.testpersistance:... tp.pile.tests.modele.pile2test:... tp.pile.tests.modele.pile2_repok_afftest:.. tp.pile.tests.modele.pile4test:... tp.pile.tests.modele.pilemodeletest:... Test results for InstrumentationTestRunner= Time: OK (47 tests) 35

36 Ligne de commande Android et Emma F:\workspace_android_junit_tests\PileTest>adb shell $ su su # export CLASSPATH=/sdcard/emma.jar export CLASSPATH=/sdcard/emma.jar Pas concluant: génération d un fichier coverage.ec avec 37 octets 36

37 Stress Random stress testing From When the Monkey runs, it generates events and sends them to the system. It also watches the system under test and looks for three conditions, which it treats specially: If you have constrained the Monkey to run in one or more specific packages, it watches for attempts to navigate to any other packages, and blocks them. If your application crashes or receives any sort of unhandled exception, the Monkey will stop and report the error. If your application generates an application not responding error, the Monkey will stop and report the error. adb shell monkey -p cnam.hello -v

38 Stress d une Activity 38

39 Emma et Android Emma et Android 39

40 40

41 A voir de près robotium It's like Selenium, but for Android 41

42 À terminer public class FunctionalTest extends ActivityInstrumentationTestCase2<AdvancedJokeList> { public FunctionalTest() { super("edu.calpoly.android.lab2", AdvancedJokeList.class);} protected void setup() throws Exception { super.setup(); } public void testaddjoke() { ArrayList<Joke> m_arrjokelist = null; m_arrjokelist = this.retrievehiddenmember("m_arrjokelist", m_arrjokelist,getactivity()); assertequals("should be 3 default jokes",m_arrjokelist.size(),3); getactivity().runonuithread(new Runnable() { public void run() { AdvancedJokeList theactivity = (AdvancedJokeList)getActivity(); EditText et = (EditText)theActivity. findviewbyid(edu.calpoly.android.lab2.r.id.newjokeedittext); Button bt = (Button)theActivity. findviewbyid(edu.calpoly.android.lab2.r.id.addjokebutton); et.settext("this is a test joke"); bt.performclick(); }}); getinstrumentation().waitforidlesync(); // wait for the request to go through assertequals("should be 4 jokes now",m_arrjokelist.size(),4); assertequals("ensure the joke we added is really there", m_arrjokelist.get(3).getjoke(),"this is a test joke"); } 42

43 43

44 AndroidTestCase extends junit.framework.testcase Extrait de Android Application Testing Guide, Cf. biblio 44

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

NFP121, Cnam/Paris JUnit tests. Cnam Paris jean-michel Douin, douin au cnam point fr version du xx xxxx 201x

NFP121, Cnam/Paris JUnit tests. Cnam Paris jean-michel Douin, douin au cnam point fr version du xx xxxx 201x , Cnam/Paris JUnit tests Cnam Paris jean-michel Douin, douin au cnam point fr version du xx xxxx 201x Notes sur l usage de junit3 et un peu plus Le lecteur intéressé par un cours sur les tests pourra se

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

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

Lecture de variable automate en utilisant le service web de l ETZ (application J2SE)

Lecture de variable automate en utilisant le service web de l ETZ (application J2SE) Lecture de variable automate en utilisant le service web de l ETZ (application J2SE) Sommaire 1. Objectifs...2 2. Création d un nouveau projet J2SE...2 3. Intégration du client Web Service...5 3.1. Description

Plus en détail

Bibliographie utilisée

Bibliographie utilisée Android View, onclick, Activity, Modèle Vue Contrôleur jean-michel Douin, douin au cnam point fr version : 26 Septembre 2012 Notes de cours 1 Bibliographie utilisée http://developer.android.com/resources/index.html

Plus en détail

Cours 3 : Encapsulation et tests

Cours 3 : Encapsulation et tests DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.fr Cours 3 : Encapsulation et tests Plan Divers Paquetages : intérêt, utilisation des packages existants, créer un package Encapsulation

Plus en détail

Création d un service web avec NetBeans 5.5 et SJAS 9

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

Plus en détail

Composite, Interpréteur et Visiteur

Composite, Interpréteur et Visiteur Composite, Interpréteur et Visiteur Cnam Paris jean-michel Douin Version du 10 Octobre 2003 Notes de cours java : les patterns Composite, Interpréteur et Visiteur Les notes et les Travaux Pratiques sont

Plus en détail

Projet de programmation orientée objet

Projet de programmation orientée objet Projet de programmation orientée objet Florent Avellaneda Département Informatique et Interactions Aix-Marseille Université 12 janvier 2014 Description de l option Déroulement : Nombre d heures : 60 Rendu

Plus en détail

Composite & décorateur

Composite & décorateur Composite & décorateur Cnam Paris jean-michel Douin Version du 1er Octobre 2005 Notes de cours java : les patterns Les notes et les Travaux Pratiques sont disponibles en http://jfod.cnam.fr/tp_cdi/{douin/

Plus en détail

1 Le Parking revisité

1 Le Parking revisité Module I6 - Manipulation de threads II 13 décembre 2012 1 Le Parking revisité Une société de gestion de parkings de voitures souhaite mettre en place un système automatique d affichage en temps réel de

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

Cours Java : deuxième saison

Cours Java : deuxième saison Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 1 Cours Java : deuxième saison Cours 7 : Exceptions, tests unitaires et assertions Cours 8 : Design Patterns 1 Cours 9 : Design

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

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

Pierre Chauvet. pierre.chauvet@uco.fr

Pierre Chauvet. pierre.chauvet@uco.fr WindowBuilder Pro Pierre Chauvet pierre.chauvet@uco.fr 1 Plan de la présentation Introduction - Outils de développement Java - Google Java Developer Tools - Installation plug-in - Documentation en ligne

Plus en détail

file:///d:/wd/ens/in413/0708/les_tp/tp6_reseau/index.html TP6 Thèmes du TP : Serveurs de type "sessions"

file:///d:/wd/ens/in413/0708/les_tp/tp6_reseau/index.html TP6 Thèmes du TP : Serveurs de type sessions 1 sur 8 12/10/2007 15:50 TP6 Thèmes du TP : Serveurs de type "sessions" Architecture web et déploiement : une introduction httpunit : première utilisation Préambule : Les classes de tests unitaires présentes

Plus en détail

SPRING WEBFLOW Cours JEE - Master 2 Université de Marne-la-Vallée 1 dimanche 14 novembre 2010

SPRING WEBFLOW Cours JEE - Master 2 Université de Marne-la-Vallée 1 dimanche 14 novembre 2010 SPRING WEBFLOW 1 RAPPEL D ARCHITECTURE Persistance des données 2 PROBLÉMATIQUE Comment faire le lien entre mes vues graphiques et ma logique métier en respectant les contraintes (maintenance, coût & temps

Plus en détail

Application Android par défaut

Application Android par défaut Projet Android À la création d un projet Android (IDE netbeans) tout un ensemble de répertoires et de fichiers sont engendrés. Source Packages : là où seront les sources de votre application. Generated

Plus en détail

Programmation Orientée Objet. Exceptions et assertions

Programmation Orientée Objet. Exceptions et assertions Programmation Orientée Objet Exceptions et assertions Julien Provillard http://www.i3s.unice.fr/~provilla/poo/ julien.provillard@unice.fr Robustesse et Exceptions Error, RuntimeException Exceptions (non)

Plus en détail

Android ListeView, ListeActivity une Introduction

Android ListeView, ListeActivity une Introduction Android ListeView, ListeActivity une Introduction jean-michel Douin, douin au cnam point fr version : 16 Octobre 2012 Notes de cours 1 Sommaire Vue ListView Présentation Adapter la Vue d une liste d items

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

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

2. lancer (throw) une exception consiste à la signaler

2. lancer (throw) une exception consiste à la signaler Cours 7 Exceptions 1 1. Une exception est un signal qui indique que quelque chose d'exceptionnel (par exemple une erreur) s est produite qui interrompt le flot d exécution normal du programme 2. lancer

Plus en détail

Test de Personnalité. Groupe Entreprenant et Innovateur. France. Tutoriel. teaching@atipaxinti.com. Programmation Mobile. Cours. Arón HERRERA PONTE

Test de Personnalité. Groupe Entreprenant et Innovateur. France. Tutoriel. teaching@atipaxinti.com. Programmation Mobile. Cours. Arón HERRERA PONTE Groupe Entreprenant et Innovateur France Tutoriel 4 Test de Personnalité Cours Programmation Mobile Coach Arón HERRERA PONTE E-mail teaching@atipaxinti.com - 2011 - SOMMAIRE 1. Introduction... 3 2. Objectifs...

Plus en détail

Cours JAVA : La fiabilité en Java

Cours JAVA : La fiabilité en Java Cours JAVA : La fiabilité en Java Version 1.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle DANT - 2015/2016

Plus en détail

Une introduction à la technologie EJB (2/3)

Une introduction à la technologie EJB (2/3) Une introduction à la technologie EJB (2/3) 1 Les singletons des EJB 3.1 1.1 Synchronisation gérée manuellement Depuis la version 3.1, des EJB Statless à instance unique sont maintenant disponibles : ce

Plus en détail

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions Arbres binaires Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions FMIN220 Structures de données Université de Montpellier 2015 FMIN220 (UM)

Plus en détail

Tp1 Ema EMACS Développement Web

Tp1 Ema EMACS Développement Web Tp1 Ema EMACS Développement Web 1/ Description de l application : Notre première application Web a pour objectif de gérer une liste de todo (truc à faire) : Diagramme de classe simplifié : Application

Plus en détail

Module B9-1 : sensibilisation à l UML

Module B9-1 : sensibilisation à l UML Module B9-1 : sensibilisation à l UML Olivier Habart : habart.olivier@gmail.com ENSTA B9-1 UML (Olivier Habart) Septembre 14 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de classes Diagrammes

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

Connexion EV3 wifi/bluetooth sans wifi sur votre ADSL

Connexion EV3 wifi/bluetooth sans wifi sur votre ADSL Sommaire 1. Pré-requis... 2 1.1 Dans le cas d une connexion wifi/wifi... 2 1.2 Dans le cas d une connexion bluetooth... 2 2. Télécharger et installer... 2 3. Configuration OpenDhcpServer... 2 3.1 Gérer

Plus en détail

Tp1 Ema EMACS Développement Web

Tp1 Ema EMACS Développement Web Tp1 Ema EMACS Développement Web 1/ Description de l application : Notre première application Web a pour objectif de gérer une liste de todo (truc à faire) : Diagramme de classe simplifié : Application

Plus en détail

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions Java Java Modeling Language (JML) Arnaud LANOIX Université Nancy 2 Master1 GL Langage de Programmation Orientée Objet développé par Sun Projet OAK (1991), Java (1995),...Java 1.5 (2004) http://java.sun.com/

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

Chapitre 4. Le modèle de composants

Chapitre 4. Le modèle de composants Chapitre 4 Le modèle de composants 1 Plan du chapitre 4 Les composants fondamentaux : Activity, Service, BroadcastReceiver, ContentProvider Les activités (cycle de vie, navigation entre les activités,

Plus en détail

Android How To : Prise en Main

Android How To : Prise en Main Android How To : Prise en Main 1 Prise en main avec Eclipse... 2 1.1 Le projet... 2 1.2 Projet propriétés... 2 1.3 Le programme... 3 2 XML Base Layout... 4 2.1 Création du layout... 4 2.2 Lier le Layout

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

ONLINE TIAMA CATALOGS USER GUIDE

ONLINE TIAMA CATALOGS USER GUIDE ONLINE TIAMA CATALOGS USER GUIDE Home page / Accueil 3 4 5 Ref. Description Description Home page Accueil Catalog access Accès catalogue Advanced search Recherche avancée Shopping basket Panier Log off

Plus en détail

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites Université Paris Diderot JAVA ISIFAR Année 2008-2009 TP n 7 - Correction Exceptions et Classes Abstraites Exercice 1 [Utilisation des Exceptions] La méthode parseint est spécifiée ainsi : public static

Plus en détail

Programmation évènementielle et GUIs en java

Programmation évènementielle et GUIs en java Adapté de Géry Casiez et Eric Lecolinet Programmation évènementielle et GUIs en java Sylvain Malacria - www.malacria.fr Programmation «classique» Programme principal initialise et appelle des fonctions

Plus en détail

Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2

Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2 Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2 Date : 27 Mars 2014 Durée : 1H30 Coordonnateurs : Christian Bac et Denis Conan Les

Plus en détail

MVC Modèle-Vue-Contrôleur Exemple d application

MVC Modèle-Vue-Contrôleur Exemple d application MVC Modèle-Vue-Contrôleur Exemple d application 0.1 Rappels La plateforme Spring MVC repose sur un DispatcherServlet qui gère toutes les requêtes. En rappel, nous avons vu lors du cours JSP et servlet

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

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

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

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 II. Programmation par objet 1. Motivation 2. Encapsulation 3. Héritage 4. Initiation à la modélisation

Plus en détail

Bibliographie utilisée

Bibliographie utilisée Android View, onclick,activity, Modèle Vue Contrôleur jean-michel Douin, douin au cnam point fr version : 24 Octobre 2011 Notes de cours 1 Bibliographie utilisée http://developer.android.com/resources/index.html

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

Utilisation de NetBeans pour les applications J2ME

Utilisation de NetBeans pour les applications J2ME Utilisation de NetBeans pour les applications J2ME Sommaire 1. Introduction...2 2. Présentation de l EDI NetBeans...2 3. Création d une application en utilisant l éditeur graphique...3 3.1. Création d

Plus en détail

Installation et compilation de gnurbs sous Windows

Installation et compilation de gnurbs sous Windows Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version

Plus en détail

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException...

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... Cours 12 Les exceptions vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... F.Gayral 1 Les exceptions, vous connaissez... public class

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

Plus en détail

Plan. JUnit. 2. Classe de tests. 1. Introduction. 1. Introduction 2. Classes de test 3. Asserts 4. Suite de tests 5. Initialisations 6.

Plan. JUnit. 2. Classe de tests. 1. Introduction. 1. Introduction 2. Classes de test 3. Asserts 4. Suite de tests 5. Initialisations 6. Plan JUnit Lionel Seinturier Université des Sciences et Technologies de Lille Lionel.Seinturier@lifl.fr 1. Introduction 2. Classes de test 28/11/06 JUnit 1 Lionel Seinturier JUnit 2 Lionel Seinturier JUnit

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 4 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions.

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions. Fiabilité d un logiciel Exceptions Université Française d Egypte Version O 5.7 5/10/15 Richard Grin Robustesse : fonctionne correctement, même en présence d événements exceptionnels Correction : donne

Plus en détail

CORBA. Cycle de développement

CORBA. Cycle de développement CORBA Cycle de développement Projet MIAGe Toulouse Groupe 2 1 Le cycle de développement (1/3) On s intéresse au développement selon le mode statique, c est à dire en utilisant les talons (stub, skeleton,

Plus en détail

Création d une Application Web / JSF

Création d une Application Web / JSF Création d une Application Web / JSF Rédacteurs : Alexandre Baillif, Philippe Lacomme et Raksmey Phan Date : juillet 2010 Avertissement : ce document est une reprise d une partie d un document écrit par

Plus en détail

Eclipse Modeling Tools

Eclipse Modeling Tools Laboratoire d'analyse et d'architecture des Systèmes Eclipse Modeling Tools Génération d'un éditeur graphique évolué Résumé: Un éditeur graphique est généré à partir d'un méta modèle «Ecore». Cet éditeur

Plus en détail

Gestion de la configuration et contrôle du code source

Gestion de la configuration et contrôle du code source MGL7460 Automne 2015 Gestion de la configuration et contrôle du code source Guy Tremblay Professeur Département d informatique UQAM http://www.labunix.uqam.ca/~tremblay 10 septembre 2015 Parmi les premières

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Accès au support technique produits et licences par le portail client MGL de M2Msoft.com. Version 2010. Manuel Utilisateur

Accès au support technique produits et licences par le portail client MGL de M2Msoft.com. Version 2010. Manuel Utilisateur Accès au support technique produits et licences par le portail client MGL de M2Msoft.com Version 2010 Manuel Utilisateur Access to M2Msoft customer support portal, mgl.m2msoft.com, 2010 release. User manual

Plus en détail

cours 4 : programmes fiables

cours 4 : programmes fiables cours 4 : programmes fiables généricité assertions généricité généricité généricité généricité possibilité d écrire des classes paramétrées par d autres classes permet de : écrire un code dépendant d un/de

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

Android INTRODUCTION

Android INTRODUCTION Android INTRODUCTION Présentation Système d exploitation open source Développé en 2007 par une startup rachetée par Google. Caractéristique du Système d exploitation Android: Multi utilisateur, chaque

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

Android 4 Les fondamentaux du développement d'applications Java

Android 4 Les fondamentaux du développement d'applications Java La plateforme Android 1. Présentation 13 2. Historique 14 3. Google Play 15 3.1 Création d'un compte développeur 16 3.2 Publication d'une application 16 3.3 Suivi et mise à jour d'une application 18 Environnement

Plus en détail

Votre première application Android - Introduction aux Interfac. utilisateur

Votre première application Android - Introduction aux Interfac. utilisateur Votre première application Android - Introduction aux Interfaces graphiques utilisateur frederic.guinand@univ-lehavre.fr 2014-2015 Plan Analyse d une app Android : visite guidée Introduction aux interfaces

Plus en détail

ENSEIRB. Rapport du Projet POO. Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric

ENSEIRB. Rapport du Projet POO. Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric ENSEIRB Rapport du Projet POO Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric Enseignant : M. Eyrolles RSI7 Année scolaire : 2009/2010 Sommaire 1. Lever

Plus en détail

TP n 4 - Quiz. 1) Création du projet. 2) Construction de la page d accueil. Pratique d Android

TP n 4 - Quiz. 1) Création du projet. 2) Construction de la page d accueil. Pratique d Android TP n 4 - Quiz 1) Création du projet L objectif ici est de construire une application Android proposant un Quiz sur des noms de films et d'acteurs à retrouver en fonction du nom du rôle du personnage. Créer

Plus en détail

Stress and Difficulties at School / College

Stress and Difficulties at School / College Stress and Difficulties at School / College This article will deal with the pressures and problems that students face at school and college. It will also discuss the opposite - the positive aspects of

Plus en détail

INTRODUCTION AUX TESTS ANDROID AVEC ESPRESSO

INTRODUCTION AUX TESTS ANDROID AVEC ESPRESSO INTRODUCTION AUX TESTS ANDROID AVEC ESPRESSO Andr0 29 octobre 2015 Table des matières 1 Introduction 5 2 Présentation d Espresso 7 3 Fonctionnement général 9 4 Prérequis avant le développement des tests

Plus en détail

Patron: Iterator (Itérateur)

Patron: Iterator (Itérateur) Patron: Iterator (Itérateur) http://www-public.telecom-sudparis.eu/~gibson/teaching/designpatterns/designpatterns-iterator.pdf Un itérateur est un objet qui permet de parcourir tous les éléments contenus

Plus en détail

2002 Maritime Mathematics Competition Concours de Mathématiques des Maritimes 2002

2002 Maritime Mathematics Competition Concours de Mathématiques des Maritimes 2002 2002 Maritime Mathematics Competition Concours de Mathématiques des Maritimes 2002 Instructions: Directives : 1 Provide the information requested below Veuillez fournir les renseignements demandés ci-dessous

Plus en détail

Série 3.1- Morane Gruenpeter. Method Summary

Série 3.1- Morane Gruenpeter. Method Summary NFA019 : Série 3.1- Morane Gruenpeter a. La série 3.1 consiste à créer une classe ES qui gère les entrées et les sorties en utilisant les exceptions. La zone de capture qui peut soulever une exception--

Plus en détail

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011 1 / 56 Développement Web Le modèle MVC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer 24 janvier 2011 2 / 56 Objectif Objectif du cours Se familiariser avec

Plus en détail

Chapitre 4. Le modèle de composants : les services

Chapitre 4. Le modèle de composants : les services Chapitre 4 Le modèle de composants : les services 1 Les services "A Service is an application component that can perform long-running operations in the background and does not provide a user interface."

Plus en détail

TP2 : Client d une BDD SqlServer

TP2 : Client d une BDD SqlServer TP2 : Client d une BDD SqlServer Objectifs : utiliser la barre de menu, utiliser les préférences d application (settings) ou (options), gérer la persistance des données, utiliser la bibliothèque jtds:jdbc

Plus en détail

Programmation de composant mobiles aka Android

Programmation de composant mobiles aka Android Programmation de composant mobiles aka Android responsable : Wies law Zielonka zielonka@liafa.univ-paris-diderot.fr http://liafa.univ-paris-diderot.fr/ zielonka September 19, 2015 Environnement de travail

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 29 octobre

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

http://www.bysoft.fr

http://www.bysoft.fr http://www.bysoft.fr Flash Slideshow Module for MagentoCommerce Demo on http://magento.bysoft.fr/ - Module Slideshow Flash pour MagentoCommerce Démonstration sur http://magento.bysoft.fr/ V3.0 ENGLISH

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

HARMONY 950. Setup Guide Guide d installation

HARMONY 950. Setup Guide Guide d installation HARMONY 950 Setup Guide Guide d installation Languages English.................... 3 Français................... 9 3 Package contents 1 3 2 4 1. Remote 2. Charging cradle 3. USB cable 4. AC Adapter 4

Plus en détail

Contents Windows 8.1... 2

Contents Windows 8.1... 2 Workaround: Installation of IRIS Devices on Windows 8 Contents Windows 8.1... 2 English Français Windows 8... 13 English Français Windows 8.1 1. English Before installing an I.R.I.S. Device, we need to

Plus en détail

Cours de Programmation Orientée Objet

Cours de Programmation Orientée Objet Contrat et application à la librairie standard JAVA mailto:marc.champesme@lipn.univ-paris13.fr 6 février 2011 1 Qu est ce qu une classe? Un exemple en JAVA Résumé Expression du contrat Par des commentaires

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Les fichiers. Programmation Mobile Android Master CCI. Créer un fichier dans le stockage interne. Écrire et lire des données dans un fichier

Les fichiers. Programmation Mobile Android Master CCI. Créer un fichier dans le stockage interne. Écrire et lire des données dans un fichier Programmation Mobile Android Master CCI Bertrand Estellon Aix-Marseille Université March 23, 2015 Bertrand Estellon (AMU) Android Master CCI March 23, 2015 1 / 266 Les fichiers Deux espaces de stockage

Plus en détail

Tel. : Fax : e-mail : Je participerai au banquet le jeudi (participation 60 ) 1 I will joint the banquet on Thursday night (participation 60 )

Tel. : Fax : e-mail : Je participerai au banquet le jeudi (participation 60 ) 1 I will joint the banquet on Thursday night (participation 60 ) FORMULAIRE D INSCRIPTION REGISTRATION FORM A renvoyer avant le 27 février à mcda81@univ-savoie.fr To be sent back before 27th February to mcda81@univ-savoie.fr Nous nous permettons de vous rappeler que

Plus en détail

Patrons Observateur/MVC

Patrons Observateur/MVC Patrons Observateur/MVC programmation évènementielle jean-michel Douin, douin au cnam point fr version : 12 Septembre 2008 Notes de cours 1 Sommaire Patron Observateur Programmation évènementielle Patron

Plus en détail

Votre premier projet Android

Votre premier projet Android 3 Votre premier projet Android Maintenant que le SDK Android est installé, il est temps de créer votre premier projet. La bonne nouvelle est qu il n exige aucune ligne de code les outils Android créent

Plus en détail

Les Flux : principes de base

Les Flux : principes de base Les Flux : principes de base Introduction Les flux permettent de travailler avec des données des fichiers provenant de l extérieur. Toutes les commandes de type Ouvrir, Enregistrer, Enregistrer sous des

Plus en détail

Threads. Threads. USTL http://www.lifl.fr/ routier 1

Threads. Threads. USTL http://www.lifl.fr/ routier 1 Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un

Plus en détail

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule.

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule. TP Mock Pour faire ce TP il faut récupérer la "bibliothèque" mockito-all-x.x.x.jar. Vous pouvez la trouver à partir de https://code.google.com/p/mockito/downloads/list (pour mockito- 1.9.5.zip). Anciennement

Plus en détail

Remote Control Library Librairie Remote Control

Remote Control Library Librairie Remote Control Remote Control Library Librairie Remote Control Installation File, Fichier : REMOTEVPU.EXE After installation Après installation In the toolbox : Dans la boite à outils : Files Added, Files Ajoutés : C:\API32\Modules\

Plus en détail

Contrôle de connaissances 2014/2015 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2. Date : 25 Mars 2015 Durée : 1H30

Contrôle de connaissances 2014/2015 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2. Date : 25 Mars 2015 Durée : 1H30 Contrôle de connaissances 2014/2015 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2 Date : 25 Mars 2015 Durée : 1H30 Coordonnateurs : Christian Bac et Denis Conan Les seuls documents

Plus en détail