26/05/071 Présentation de JUnit Partie 2 NICOLAS BOUSSEKEYT CNAM 2006-2007.

Slides:



Advertisements
Présentations similaires
Cours n° 7 Standard Template Library II.
Advertisements

Cours n° 6 Standard Template Library I.
Noyau de l’atome et radioactivité
Piles, files et listes: notions théoriques
Echanges de Données Informatisées LABOratoires-commanditaires
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Au programme du jour …. Un peu plus de structures de données
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Comparaison des données de ventes : Données internes, GERS, IMS/SDM-XPONENT Mai 2007.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Cours n° 8 Conception et Programmation à Objets
Approfondissement du langage
EMN compétences shéma global 18 sep 07 1 EMN Démarche compétence Schéma global Réunion du 18 septembre 2007 GHL Conseil EMN.
7 juin.-071 Cluster de recherche ISLE Titre du projet Nom des porteurs Présentation du projet et perspectives par rapport aux axes stratégiques du cluster.
JAV - TD 6 Structures de données JAVA
Système d’exploitation : Assembleur
Introduction aux CMS.
Tests Programmation par contrats
Structures collectives en Java
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Structures de données et algorithmes – C5 Maria-Iuliana Dascalu, PhD
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
II. Chaînage, SDD séquentielles
BibTeX++ Suppression de la pile dans les langages à pile
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
01/071 MESSAGERIE INTERNET PRINCIPE Amicale Laïque Poisat.
1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Résumé du cours précédent.
Introduction à la programmation (Java)
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Structures de données IFT Abder Alikacem Gestion des exceptions Département dinformatique et de génie logiciel Édition Septembre 2009.
IFT313 Introduction aux langages formels
Présentation Structures de Données et TDA
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Mise en oeuvre dun outil original daide en ligne à la lecture de textes en langue étrangère. G. Deville - M. Miceli (Ecole des Langues Vivantes - FUNDP)
Chapitre 9 Les sous-programmes.
Partie II Sémantique.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Jean-Marc DEFAYS Département de Français de lInstitut Supérieur des Langues Vivantes UNIVERSITE DE LIEGE IFRES-CDS, activité N°1 la maîtrise du français.
Java, les objets : tout de suite ! Rassembler, grouper les objets
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Structures de données IFT-10541
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
01/071 LE TELECHARGEMENT de LOGICIELS POURQUOI ? Amicale Laïque Poisat.
La librairie assert.h.
Animateur : Med HAIJOUBI
Test logiciel Xavier Baril.
Raffinement de modèles JML Julien Groslambert LIFC Besançon Réunion GECCOO - 25 Octobre 2005 FRE 2661.
Objectifs À la fin de ce cours, vous serez capables de :
LES PILES ET FILES.
Création d’une communauté web scénarisée : le projet Crealys
La technologie en 3ème avec Rob’OK Au collège République Bobigny
Université Lyon 2 - TICE 3 séance 071 TICE 3 – Séance 7 Roland Veillard, Ny Haingo Andrianarisoa Traitement des.
Types Abstraits.
11/04/ L'héritage Cours 7 Cours 7.
Créer des packages.
Templates, Containers et STL Structures de données de base tableau, liste chaînée file, pile, arbres, hashtable collection, ensemble 2 caractéristiques.
Tutorat en bio-informatique
ETNA – 1ème année Guillaume Belmas –
Cours LCS N°4 Présenté par Mr: LALLALI
MOCK.
Entity/Facet/Pattern Une application qui en a…
6ième Classe (Mercredi, 17 novembre) CSI2572
1 Cpt JAVA : Eclipse (bis) Debogage. 2 Code à tester public class siecle { int t; public siecle() { super(); t=1; } static public boolean vrai() { return(false);
Traitement d’images Semaine 09 v.A15.
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
CandidatCédric Favre ProfesseurReymond Clavel AssistantsYves Stauffer Ludovic Righetti.
Transcription de la présentation:

26/05/071 Présentation de JUnit Partie 2 NICOLAS BOUSSEKEYT CNAM

26/05/072 Objectifs de la présentation Présentation de différents plugins (JunitPerf, Dbunit) Mise en place de Test d'adéquation et de couverture (Couverture d'instruction, Couverture de branche, Adéquation de mutation) Test de la méthode JUnit Axioms (JAX)

26/05/073 JUniperf JUnitPerf est une collection d'outils de test permettant de mesurer les performances et l'adaptabilité des fonctionnalités contenues dans les tests unitaires Junit. Pour plus dinformations

26/05/074 Junitperf (suite) Le plugin JUnitPerf permet d'effectuer deux types de test : Les tests de durée (TimedTest), Les tests de charge (LoadTest).

26/05/075 Junitperf : TimedTest(suite) Le type de test TimedTest permet de valider qu'un jeu de test ne va dépasser sa durée effective Maximum.

26/05/076 Junitperf : TimedTest(suite) Exemple : une classe Pile qui permet d'empiler ou de dépiler des entiers dans un tableau d'objet.

26/05/077 Junitperf : TimedTest(suite) Etapes à réaliser pour effectuer un test avec JunitPerf : Créer un test unitaire de la classe en exemple Créer une suite de test pour vérifier que le test unitaire réponds bien au temps imparti ou qu'il fonctionne bien correctement selon un certaine montée en charge.

26/05/078 Junitperf : TimedTest(suite) Présentation du test TimedTest : Le test Junit classique crée une pile de taille de 1000, Le test JunitPerf vérifie que le test ne va dépasser le temps de milli secondes Présentation de l'exemple

26/05/079 Junitperf : LoadTest Présentation du test LoadTest : On utilise le test Junit créé précedemment, Le test JunitPerf vérifie que le test va gérer 10 utilisateurs avec 2 itérations. Présentation de l'exemple

26/05/0710 DBUnit Permet de simplifier les tests unitaires avec des données basés Basé sur XML pour charger des données de test. Pour plus dinformations

26/05/0711 DBUnit Le scénario le plus typique : Supprimer les données dans la base de donnée provenant d'anciens tests, Charger des données provenant d'un fichier dans la base, Démarrer quelques tests en utilisant des méthodes DbUnit.

26/05/0712 DBUnit Voici le modèle merise fournit comme exemple :

26/05/0713 DBUnit Voici le modèle UML comme exemple : Présentation de l'exemple

26/05/0714 Couverture d'instructions public int valeurRetourne(int val, boolean condition1, boolean condition2, boolean condition3) { int val2 = val; if (condition1) { val2++; } if (condition2) { val2--; } if (condition3) { val2=val; } return val2; }

26/05/0715 Couverture d'instructions (suite) Ce test de couverture doit permettre de couvrir toutes les instructions du code précédent. Présentation de l'exemple

26/05/0716 Couverture de branches Ce test de couverture doit permettre de couvrir toutes les branches du code d'exemple précédent. Présentation de l'exemple

26/05/0717 Adéquation de mutation Les tests de mutation (DeMillo et al. 1979) permettent d'évaluer la qualité des test effectués. Ils consistent à vérifier si un jeu de test est capable de détecter les petites modifications syntaxiques du programme originale (mutants).

26/05/0718 Adéquation de mutation (suite) Exemple : Nous allons donc utiliser une classe qui permet de calculer l'énergie kinétique. L'énergie kinétique est défini comme suit

26/05/0719 Adéquation de mutation (suite) Pour mettre en place un mutation, nous avons donc introduit une erreur en remplaçant le 2 par un 3. Présentation de l'exemple

26/05/0720 Méthode JAX Cette méthode est basée sur les spécifications de l'algèbre de Guttag avec les types abstraits (ADT). Cette méthode démontre que les tests basés sur JAX permettent de découvrir des erreurs non détectés avec les tests classiques

26/05/0721 Méthode JAX (suite) Exemple : Utilisation de la classe pile Taille de la pile maximum : 2

26/05/0722 Méthode JAX (suite) Utilisation de la méthode classique : On développe un test par méthode.

26/05/0723 Méthode JAX (suite) Exemple avec une méthode : public void testEmpty() /* Tests the emptying of the stack. */ { int k = 3; numbers.push(k); assertTrue(!numbers.isEmpty() ); numbers.pop(); assertTrue( numbers.isEmpty() ); } On ajoute un élément. On teste que la pile n'est pas vide. On retire un élément. On teste que la pile est vide. Présentation de l'exemple

26/05/0724 Méthode JAX (suite) Utilisation de la méthode JAX : On développe un test par règles de structure. On compare aussi deux objets qui doivent être dans la même situation.

26/05/0725 Méthode JAX (suite) Exemple avec une méthode : public void testEmptyNew() /* Tests the emptying of the stack. */ { //new == true assertTrue(numbers.isEmpty()); } public void testEmptyPush() /* Tests whether a stack is empty after a push. */ { //push == false assuming stack maxsize > 0 int k = 3; numbers.push(k); assertTrue(!numbers.isEmpty()); } Vérifie que la nouvelle pile est vide. Ajoute un élément, vérifie que la pile est non vide. Présentation de l'exemple

26/05/0726 Conclusion Les extensions de Junit permettent de mettre en place des fonctionnalités qui n'existent pas avec Junit ce qui rend le produit beaucoup plus intéressant. On peut pas exemple tester des flux XML, générer des rapports à la volée en PDF dans des s. Les méthodes de couverture qui permettent de vérifier que tout le code a bien été vérifié par les tests unitaires.

26/05/0727 Conclusion (suite) Mise en pratique les tests de mutation qui eux permettent de vérifier que les tests unitaires tombent bien en erreur ce qui permet de valider leurs utilités. Introduction à la méthode JAX. Cette méthode montre comment la méthode des axiomes permet de découvrir des bugs difficilement détectables avec les méthodes classiques.

26/05/0728 La Question Question : A quoi sert Dbunit ?

26/05/0729 Des questions ?