Test logiciel Xavier Baril.

Slides:



Advertisements
Présentations similaires
Mustapha EL FEDDI Tests Mustapha EL FEDDI
Advertisements

Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Programmation Orienté Objet en C++
Eléments de Génie Logiciel
Processus d'expression du besoin
La Recette La recette.
La Gestion de la Configuration
Les Evolutions et la Maintenance
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
L’intégration continue
Les tests et les logiciels de gestion de tests
CONTINUOUS TESTING Hakima Zidouri Informatique Réseau 3
Organiser des Tests dans un projet
Les démarches de développement
Les démarches de développement
Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007.
Tests et Validation du logiciel
Tests et Validation du logiciel
Les Ateliers de Génie Logiciel
La revue de projet.
Validation de logiciel
Référentiel ISO 9001 DI Réalisé par: Awatif EL BANANI Réda BOUKALLAL
1 Exercice : longueur d’un mot est-elle paire ?  Test fonctionnel  Quel ensemble de valeur choisir / spécification  Test structurel  Soit le code d’un.
Techniques de test Boulanger Jean-Louis.
Structures de données IFT-2000
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
TDD : avec ou sans Mocks ? Par Anthony Dahanne, Yannick Ameur,
Coding Dojo - Randori sur le TDD Anthony Hurot Octobre 2010.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
Introduction au paradigme orienté-objet (suite)
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Présentation du mémoire
Les tests Démo 10 : IFT3912.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Outils de test fonctionnel et non fonctionnel
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Introduction Un test sur les tests Ce que n’est pas le test
Les assertions en Java.
Tour d’horizon des outils d’aide au développement Java
De CVS à SVN Xavier Baril. (C) Xavier Baril2 Plan Origine Apports de SVN Reprise des concepts CVS Quelques différences Conclusion.
Introduction à la gestion de configuration avec CVS
Jean-Baptiste savansongkham
Annexe 1 Tests unitaires d'applications Java avec JUNIT
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Supports de formation au SQ Unifié
Développement logiciel en méthode agile
GESTION ET TRAITEMENT DES ERREURS
Android Kévin Giroux.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
11/04/ L'héritage Cours 7 Cours 7.
La Qualité dans les Systèmes d’Information
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
Introduction au Génie Logiciel
BEWITCHED 12/10/2006 Soutenance GLAO #5 slide 1 Soutenance GLAO #5 AGL & SYGIME Bewitched Team 12 Octobre 2006.
VALIDATION VÉRIFICATION & TESTS
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
MOCK.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
L’enseignement de spécialité SLAM
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Les démarches de développement
Complément JAVA JUnit.
Test et assurance qualité : Focus Projet Outiz
Document de spécification d’exigences Normes IEEE et 29148:2011
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Transcription de la présentation:

Test logiciel Xavier Baril

Plan Introduction Principes de base / classification Les tests dans le cycle en V Tests unitaires (avec JUnit) Tests d’intégration Conclusion (C) Xavier Baril

Introduction (1/2) Tester un logiciel... selon quels critères ? Alternatives ? Méthodes formelles Relectures de code Quel coût ? 30/40/50… % du coût de développement Dépend du niveau de criticité (C) Xavier Baril

Introduction (2/2) Le test un métier à part entière Activité créatrice Imaginer des scénarios plausibles Imaginer et construire des outils (simulateurs, …) Partie importante du plan de qualité logiciel (C) Xavier Baril

Définition (Wikipedia) « Le test est un processus manuel ou automatique, qui vise à établir qu’un système vérifie les propriétés exigées par sa spécification, ou à détecter des différences entre les résultats engendrés par le système et ceux qui sont attendus par la spécification. » Ainsi le test vise à mettre en évidence les erreurs d’un logiciel. Cependant il n'a pas pour objectif de : diagnostiquer la cause des erreurs, corriger les erreurs, prouver la correction d’un programme. (C) Xavier Baril

Quelques principes de base Un développeur ne doit pas tester ses propres programmes La définition des sorties ou résultats attendus doit être effectuée avant l’exécution d’un test Tester que le logiciel fait ce qu’il doit faire et qu’il ne fait pas ce qu’il ne doit pas faire… (C) Xavier Baril

Classification des tests Par niveau de détail : Tests unitaires Tests d’intégration Par caractéristique : Tests fonctionnels Tests de robustesse Tests de performance … (C) Xavier Baril

Tests et cycle en V (C) Xavier Baril

Tests unitaires «En programmation, le test unitaire est un procédé permettant de s'assurer du fonctionnement correct d'une partie déterminée d'un logiciel ou d'une portion d'un programme. » définition Wikipedia JUnit Couverture de code Permet de tester la non-régression via l’intégration continue (C) Xavier Baril

JUnit Framework de test pour le langage Java Permet de vérifier des assertions Exemple « Hello World » public class HelloWorld extends TestCase { public void testMultiplication() { // Testing if 3*2=6: assertEquals ("Multiplication", 6, 3*2); } (C) Xavier Baril

Ecrire un test JUnit Etendre de la classe TestCase Implémenter des méthodes publiques testXXX() Surcharger les méthodes setUp() tearDown() Stratégie ? une méthode = un test une méthode publique = un test … Bouchons de test… (C) Xavier Baril

Test d’intégration L'intégration a pour but de valider le fait que toutes les parties développées indépendamment fonctionnent bien ensemble. Dans le cadre d'une livraison, pour établir une nouvelle version (gestion de configuration…) … intégration continue : fusion des tests unitaires et des tests d’intégration. (C) Xavier Baril

Développement dirigé par les tests « Test-driven developement » Ajout d’une fonctionnalité = Ajout d’un test Jouer les tests : constater l’erreur Ecrire du code Jouer les tests : constater la correction « Refactoring » du code … Méthode Agile, XP (Extreme Programing) (C) Xavier Baril

Conclusion Le test est une activité importante dans la production d’un logiciel Nécessite des compétences Mise en place d’une stratégie Mise en place / développement d’outils (C) Xavier Baril

Bibliographie Wikipedia (mots clés : « test informatique ») http://www.junit.org/ (JUnit) http://www.google.fr ;-) (C) Xavier Baril

Exercice : écrire les tests JUnit public class ExpressionResolver { public int compute(IExpression expression) { String operator = expression.getOperator(); if ("+".equals(operator)) { return computeAddition(expression.getOperand1(), expression.getOperand2()); } if ("-".equals(operator)) { return computeSubstraction(expression.getOperand1(), expression.getOperand2()); throw new RuntimeException("Bad operator: " + operator); int computeAddition(int x, int y) { return x + y; int computeSubstraction(int x, int y) { return x - y; public interface IExpression { String getOperator(); int getOperand1(); int getOperand2(); } (C) Xavier Baril