Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Test logiciel Xavier Baril
2
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
3
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
4
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
5
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
6
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
7
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
8
Tests et cycle en V (C) Xavier Baril
9
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
10
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
11
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
12
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
13
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
14
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
15
Bibliographie Wikipedia (mots clés : « test informatique »)
(JUnit) ;-) (C) Xavier Baril
16
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.