Publicité

Génie Logiciel : les tests

Lecturer at ESI, Senior Software Architect à Ecole Supérieure d'informatique
10 Jan 2012
Publicité

Contenu connexe

Publicité

Génie Logiciel : les tests

  1. COURS IGL Cours 8 : COURS 8 Tests TESTS Mostefai Mohammed Amine – m_mostefai@esi.dz Batata Sofiane – s_batata@esi.dz 1
  2. Cours 8 – Tests OBJECTIFS DU COURS Objectifs du cours  Présenter l’activité de tests  Donner les différents types de tests Cours IGL, Copyright © 2011, ESI  Introduire les tests en boîte noire  Introduire les tests unitaires 2
  3. INTRODUCTION Section 2 : Le AU GÉNIE Section 1 : LOGICIEL Processus de Introduction Cours 8 Tests Tests Section 3 : Section 4 : Tests en Tests boîte noire unitaires 3 Cours IGL, Copyright © 2011, ESI
  4. COURS IGL Cours N° 8 Tests Section 1 : Introduction 4 Cours IGL, Copyright © 2011, ESI
  5. SECTION 1 - Cours 8 – Tests INTRODUCTION Qualité d’un logci  Les tests sont le procédé de validation et de vérification d’un logiciel Cours IGL, Copyright © 2011, ESI  Les tests assurent que le produit est conforme à ses spécifications  Les tests assurent que le produit fait ce qu’on attend de lui  Les tests identifient les bugs, les erreurs ou les défaillances les plus importantes dans le but de les réparer  Une défaillance importante est celle qui affecte l’utilisabilité du produit 5
  6. SECTION 1 - Cours 8 – Tests INTRODUCTION Qualité de logiciels Cours IGL, Copyright © 2011, ESI Qualité Qualité Qualité du fonctionnelle structurelle logiciel 6
  7. SECTION 1 - Cours 8 – Tests INTRODUCTION Qualité d’un logiciel  La qualité fonctionnelle assure que le produit est conforme à ses spécifications fonctionnelle. Cours IGL, Copyright © 2011, ESI  La qualité structurelle concerne la conformité aux spécifications non fonctionnelles (par exemple robustesse, rapidité, performance) et aussi à l’analyse de la structure interne du produit (code source, architecture,…)  L’objectif des tests n’est pas d’améliorer la qualité mais plutôt de la mesurer 7
  8. SECTION 1 - Cours 8 – Tests INTRODUCTION Objectifs des tests Cours IGL, Copyright © 2011, ESI Vérification Validation Recensement des défaillances 8
  9. SECTION 1 - Cours 8 – Tests INTRODUCTION Objectifs des tests  La vérification consiste à vérifier une spécification par rapport aux attentes techniques. Par exemple, après la validation d’une facture, retrouver le champ « valide » à Cours IGL, Copyright © 2011, ESI « true » dans la base de données  La validation consiste à vérifier une spécification par rapport aux attentes métier. Par exemple, après la validation d’une facture, la quantité du produit vendu doit décroître  Une défaillance est une variation entre les résultats actuels et les résultats attendus. L’origine de la défaillance peut être dans l’expression de besoins, la conception, l’analyse ou l’implémentation. 9
  10. SECTION 1 - Cours 8 – Tests INTRODUCTION Objectifs des tests  Les tests répondent aux questions suivantes : Est-ce que ça Est-ce que c’est Est-ce que ça Cours IGL, Copyright © 2011, ESI marche comme conforme aux correspond aux prévu ? spécifications ? attentes du client ? Est-ce que c’est Est-ce que ça Est-ce que le client compatible avec s’adapte à un apprécie ? les autres nombre important systèmes ? d’utilisateurs ? Quels sont les Est-ce que c’est points à améliorer prêt pour le ? déploiement ? 10
  11. SECTION 1 - Cours 8 – Tests INTRODUCTION Objectifs des tests  Les réponses à ces questions vont servir à : Economiser le temps Cours IGL, Copyright © 2011, ESI et l’argent en Rendre le Augmenter la identifiant développement plus satisfaction du client rapidement les efficace défaillances Identifier les Identifier les Correspondre le modifications à composants et les résultats aux attentes inclure dans les modules réutilisables prochaines versions Identifier les lacunes des développeurs 11
  12. SECTION 1 - Cours 8 – Tests INTRODUCTION Principes de tests  Commencer par les cas généraux avant les cas particuliers Cours IGL, Copyright © 2011, ESI  Commencer par les cas prioritaires  Quand une fonction est signalée défaillante, la cause n’est pas forcément le code 12
  13. SECTION 1 - Cours 8 – Tests INTRODUCTION Portée des tests  Les tests doivent concerner les éléments suivants : Cours IGL, Copyright © 2011, ESI Conformité aux Conformité aux Exigences spécifications spécifications juridiques fonctionnelles techniques Les restriction et recommandations Culture et standards Le code source des administrateurs de l’entreprise du système Propriétés La configuration culturelles et matérielle linguistiques 13
  14. COURS IGL Cours N° 8 Section 1 : Introduction, Tests débat 05 mns 14 Cours IGL, Copyright © 2011, ESI
  15. COURS IGL Cours N° 8 Section 2 : Le processus de Tests tests 15 Cours IGL, Copyright © 2011, ESI
  16. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS L’équipe de testeurs  Les tests ne sont pas le travail d’un seul homme mais celui d’une équipe Cours IGL, Copyright © 2011, ESI  La taille de cette équipe dépend de la taille et de la complexité du projet  Les développeurs doivent avoir un rôle dans les tests mais d’une façon réduite  Le testeur doit être minutieux, critique (pas au sens jugement), curieux doté d’une bonne communication 16
  17. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS L’équipe de testeurs  Les testeurs doivent poser des questions que les développeurs peuvent trouver embarrassantes Cours IGL, Copyright © 2011, ESI Comment Que veut dire pouvez-vous dire pour vous « ça que ça marche ? marche » ? Pourquoi ça Qu’est-ce qui a marchait et que causé le mauvais ça ne marche fonctionnement ? plus ? 17
  18. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS L’équipe de testeurs  Le coordinateur de tests crée les plans de tests et les spécifications de tests sur la base des spécifications techniques et fonctionnelles Cours IGL, Copyright © 2011, ESI  Les testeurs exécutent les tests et documentent les résultats 18
  19. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Catégories de tests Cours IGL, Copyright © 2011, ESI Tests en Tests en boîte noire boîte blanche 19
  20. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Catégories de tests  Les test en boîte noire s’exécutent en ignorant les mécanismes internes du produit Cours IGL, Copyright © 2011, ESI  Les tests en boîte blanche sont des tests qui prennent les mécanismes internes en considération  Dans les tests en boîte noire, le testeur n’accède pas au code source 20
  21. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Types de tests Cours IGL, Copyright © 2011, ESI Tests du Tests Tests unitaires système et de d’intégration fonctionnement Tests Tests de Béta-Tests d’acceptation régression 21
  22. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Tests unitaires  Les tests unitaires sont les tests de blocs individuels (par exemple des blocs de code) Cours IGL, Copyright © 2011, ESI  Les tests unitaires sont généralement écrits par les développeurs eux-mêmes pour la validation de leurs classes et leurs méthodes  Les tests unitaires sont exécutés généralement par les machines 22
  23. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Tests d’intégration  Exécuté en boîte noire ou boîte blanche  Les tests d’intégration vérifient que les composants Cours IGL, Copyright © 2011, ESI s’intègrent bien avec d’autres composants ou systèmes  Les tests d’intégration vérifient aussi que le produit est compatible avec l’environnement logiciel et matériel du client 23
  24. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Tests fonctionnels  S’exécute en boîte noire  Vérifie que le produit assure les fonctionnalités Cours IGL, Copyright © 2011, ESI spécifiées dans les spécifications fonctionnelles 24
  25. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Tests système  S’exécute en boîte noire  S’oriente vers les spécifications non fonctionnelles Cours IGL, Copyright © 2011, ESI  Composé de plusieurs tests :  Tests de stress : tester le produit au-delà des attentes non fonctionnelles du client. Par exemple, un système de sauvegarde qui doit tout sauvegarder deux fois par jour, le tester en mode trois fois par jour.  Tests de performance : évaluation par rapport à des exigences de performances données. Par exemple, un moteur de recherche doit renvoyer des résultats en moins de 30 millisecondes. 25
  26. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Tests système  Tests de chargement : vérifie que l’application fonctionne dans des conditions normales (contraire aux tests de stress) Cours IGL, Copyright © 2011, ESI  Tests d’utilisabilité : vérifier les exigences d’apprentissage demandées à un utilisateur normal pour pouvoir utiliser le produit 26
  27. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Tests d’acceptation  S’exécute en boîte noire  Les tests d’acceptation sont des tests formalisés par le Cours IGL, Copyright © 2011, ESI client qui sont exigés par le client pour qu’il accepte le produit 27
  28. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Tests de régression  Les tests de régression sont un sous-ensemble des tests originaux Cours IGL, Copyright © 2011, ESI  Les tests de régression vérifient qu’une modification n’a pas eu d’effets de bord sur le produit  Les tests de régression sont utiles parce que la ré- exécution de tous les tests est très coûteuse 28
  29. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Béta-Tests  Quand un produit est quasiment terminé, il est distribué gratuitement à certains de ses utilisateurs Cours IGL, Copyright © 2011, ESI  Ces utilisateurs sont appelés testeurs béta  Ces utilisateurs vont utiliser le produit et reporter tout éventuel disfonctionnement de celui -ci 29
  30. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Comparaison entre les tests Test Portée Catégorie Exécutant Unitaires Petites portions du code Boîte blanche Développeur Cours IGL, Copyright © 2011, ESI source Machine Intégration Classes / Composants Blanche / noire Développeur Fonctionnel Produit Boîte noire Testeur Système Produit / Environnement Boîte noire Testeur simulé Acceptation Produit / Environnement Boîte noire Client réel Beta Produit / Environnement Boîte noire Client réel Régression N’importe lequel Blanche / noire N’importe 30
  31. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Le plan de tests  La planification des tests doit se faire dans les premières phases du projet Cours IGL, Copyright © 2011, ESI  Le plan de tests est un document obligatoire déterminant le déroulement des tests durant le projet  Le tableau suivant indique le contenu d’un plan de test selon le standard « American National Standards Institute and Institute for Electrical and Electronic Engineers Standard 829/1983 for Software Test Documentation” 31
  32. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Le plan de tests Élément Description Objectif Responsabilités Acteurs et affectation Décrit qui fait quoi dans les tests. Cours IGL, Copyright © 2011, ESI Assure le suivi et les affectations Tests Portée de tests, plannings, Définit le processus et détaille les durées et priorités actions à entreprendre Communication Plan de communication Tout le monde doit savoir ce qu’il doit savoir avant les tests et ce qu’il doit faire savoir après les tests Analyse de Éléments critiques à Identification des domaines qui risques tester sont critiques dans le projet Traçage des Documentation des Documenter les défaillances et les défaillance défaillances détails les concernant 32
  33. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Priorisation des défaillances  Le plan de tests détermine la priorisation des défaillances Cours IGL, Copyright © 2011, ESI  La priorisation facilite la communication entre développeurs et testeurs ainsi que l’affectation et la planification des tâches 33
  34. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Priorisation des défaillances  Par exemple, une priorisation de 1 à 6 est souvent adoptée Cours IGL, Copyright © 2011, ESI Priorité Description 1 – Fatal Impossible de continuer les tests à cause de la sévérité des défaillances 2- Critique Les tests peuvent continuer mais l’application ne peut passer en mode production 3- Majeur L’application peut passer en mode production mais des exigences fonctionnelles importantes ne sont pas satisfaites 4- Medium L’application peut passer en mode production mais des exigences fonctionnelles sans très grand impact ne sont pas satisfaites 34
  35. SECTION 2 – LE Cours 8 – Tests PROCESSUS DE TESTS Priorisation des défaillances  Par exemple, une priorisation de 1 à 6 est souvent adoptée Cours IGL, Copyright © 2011, ESI Priorité Description 5- Mineur L’application peut passer en mode production, la défaillance doit être corrigée mais elle est sans impact sur les exigences métier 6- Cosmétique Défaillances mineures relatives à l’interface (couleurs, police, …) mais n’ayant pas une relation avec les exigences du client 35
  36. COURS IGL Cours N° 8 Section 2 : Le processus de Tests tests, débat 10 mns 36 Cours IGL, Copyright © 2011, ESI
  37. COURS IGL Cours N° 8 Section 3 : Tests en boîte Tests noire 37 Cours IGL, Copyright © 2011, ESI
  38. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Introduction  Les tests en boîte noire détermine si un produit fait ce qu’on attend de lui indépendamment de sa structure interne Cours IGL, Copyright © 2011, ESI  Plusieurs tests sont effectués en boîte noire tels que les tests fonctionnels et les tests d’acceptation  Les tests en boîte noire déterminent les fonctions manquantes ou mal implémentées, les erreurs d’interface, des anomalies de performance ou de comportement, les bugs et les crashs  Quels que soit la consistance ou le volume des tests, aucune garantie n’est donnée sur l’absence d’erreurs 38
  39. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Introduction  Il vaut mieux que les testeurs soient des personnes différentes des programmeurs Cours IGL, Copyright © 2011, ESI  Les testeurs s’intéressent à une fonction en terme d’entrée et de sorties Entrée Test Sortie 39
  40. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Cas de test (Test Case)  Un cas de test est un ensemble d’entrées de tests, de conditions d’exécution et de résultats attendus pour un objectif particulier tel que la conformité du programme Cours IGL, Copyright © 2011, ESI avec une spécification données 40
  41. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Anatomie d’un cas de test ID Description Cours IGL, Copyright © 2011, ESI Priorité Préconditions Scénario Résultats attendus Résultats actuels Remarques 41
  42. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Anatomie d’un cas de test  L’ID est un numéro unique qui permet la traçabilité des cas de test, les lier à des spécifications ou à d’autres cas de test  Les préconditions déterminent les conditions nécessaires à Cours IGL, Copyright © 2011, ESI un cas de test. Elles indiquent aussi les cas de test qui doivent être exécutés précédemment  La description est un texte décrivant le tests et ses attentes  Le scénario détermine les étapes détaillées à suivre par le testeur  Les résultats attendus sont attendus de l’exécution du scénario  Les résultats actuels sont les vrais résultats obtenus, s’ils sont différents des résultats attendus, une défaillance est signalée  Les remarques sont signalées par le testeur pour ajouter des information concernant une exécution donnée 42
  43. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Anatomie d’un cas de test  Le scénario est composé de plusieurs actions numérotées Cours IGL, Copyright © 2011, ESI  Chaque action peut avoir un résultat attendu  L’exécution de test affecte un résultat actuel à chaque étape attendant un résultat  Si chaque résultat actuel est conforme au résultat attendu alors le test réussit sinon le test échoue 43
  44. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Exemple ID Description Préconditions Scénario Résultats Résultats Remarques attendus actuels Cours IGL, Copyright © 2011, ESI 1 Ouverture d’un Existence d’un 1- Cliquez sur le 2- Une boîte document document bouton « Ouvrir » d’ouverture de 2- Sélectionnez le fichiers s’affiche fichier désiré 3- Le Document 3- Appuyez sur OK est ouvert et prêt à être manipulé 2 Impression TC 1 1- Cliquez sur le 1- La boîte de d’un document bouton imprimer configuration 2- Sélection la d’imprimante config puis cliquer s’affiche sur « Imprimer » 2- Le document sort sous format papier 44
  45. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Campagne de tests  Une campagne de tests sélectionne un certain nombre de cas de tests sémantiquement relatifs et les exécute Cours IGL, Copyright © 2011, ESI  Chaque campagne de tests a un objectif tracé : validation du produit, performance, … etc. 45
  46. SECTION 3 – TESTS EN Cours 8 – Tests BOÎTE NOIRE Qu’est-ce qu’un bon plan de tests ?  Un bon plan de tests minimise les cas de tests et maximise la probabilité de détection des défaillances Cours IGL, Copyright © 2011, ESI 46
  47. COURS IGL Cours N° 8 Section 3 : Tests en boîte Tests noire, débat 10 mns 47 Cours IGL, Copyright © 2011, ESI
  48. COURS IGL Cours N° 8 Tests Section 4 : Tests unitaires 48 Cours IGL, Copyright © 2011, ESI
  49. S EC T I O N 4 – T E S T S Cours 8 – Tests U N I TA I R ES Introduction  Les tests unitaires sont des tests en boîte blanche  Les tests unitaires sont composé d’un ensemble de Cours IGL, Copyright © 2011, ESI classes appelées « classes de test »  Ces classes valident que des portions de code répondent à un certain besoin  Les tests unitaires sont importants car ils permettent de détecter le maximum de défaillance avant les tests en boîte noire et qu’ils peuvent s’exécuter d’une manière automatique 49
  50. S EC T I O N 4 – T E S T S Cours 8 – Tests U N I TA I R ES Objectifs  Les tests unitaires ont deux objectifs : « couverture de code » et « couverture de données » Cours IGL, Copyright © 2011, ESI  La couverture du code stipule de tester chaque ligne de code écrite (appel de fonction, boucles, décisions, décisions multiples,…)  La couverture des données oriente les tests vers les données (données valides, données invalides, accès aux éléments en dehors de la capacité d’un tableau, peu de données, trop de données,… etc) 50
  51. S EC T I O N 4 – T E S T S Cours 8 – Tests U N I TA I R ES Caractéristiques  Les tests unitaires doivent être conforme à l’acronyme FIRST: Cours IGL, Copyright © 2011, ESI  FAST : un test unitaire doit s’exécuter rapidement  INDEPENDANT: chaque test doit être indépendant des autres  REPEATABLE: chaque test peut être répété autant de fois que voulu  SELF-VALIDATING: Un test se valide lui-même par un succès ou par un échec  TIMELY: On écrit les tests quand on en a besoin 51
  52. S EC T I O N 4 – T E S T S Cours 8 – Tests U N I TA I R ES Exemple public class Calculator { public int add(int x, int y) Cours IGL, Copyright © 2011, ESI { return x + y; } public int multi(int x, int y) { return x*y; } } 52
  53. S EC T I O N 4 – T E S T S Cours 8 – Tests U N I TA I R ES Exemple // tester la classe public class CalculatorTest { Cours IGL, Copyright © 2011, ESI // tester l’addition public int addTest() { // valeurs en entrée int a = 15; int b = 18; Calculator calc = new Calculator(); int c = calc.Add(a,b); // résultat attendu et résultat actuel assertEquals(33, c); } } 53
  54. COURS IGL Cours N° 8 Section 4 : Tests unitaires, Tests débat (05 mns) 54 Cours IGL, Copyright © 2011, ESI
  55. Cours 6 – Introduction aux BIBLIOGRAPHIE architectures de logiciels Bibliographie  Software Development and Professional Practice, John Dooley, APress, 2010 Cours IGL, Copyright © 2011, ESI  Software Testing Fundamentals —Concepts, Roles, and Terminology - John E. Bentley, Wachovia Bank, Charlotte NC, 2002  Testing Overview and Black-Box Testing Techniques, Laurie Williams 2006 55
Publicité