Your SlideShare is downloading. ×
  • Like
Génie Logiciel : les tests
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Génie Logiciel : les tests

  • 12,953 views
Published

Cette présentation est une introduction aux tests logiciels

Cette présentation est une introduction aux tests logiciels

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
12,953
On SlideShare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
632
Comments
0
Likes
13

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. COURS IGL Cours 8 : COURS 8 Tests TESTSMostefai Mohammed Amine – m_mostefai@esi.dzBatata 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 3Cours IGL, Copyright © 2011, ESI
  • 4. COURS IGL Cours N° 8 Tests Section 1 : Introduction 4Cours 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é dufonctionnelle 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 INTRODUCTIONObjectifs des tests Cours IGL, Copyright © 2011, ESIVé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 14Cours IGL, Copyright © 2011, ESI
  • 15. COURS IGL Cours N° 8 Section 2 : Le processus de Tests tests 15Cours 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 enboî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 TestsTests unitaires système et de d’intégration fonctionnement Tests Tests de Béta-Testsd’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 testsTest Portée Catégorie ExécutantUnitaires Petites portions du code Boîte blanche Développeur Cours IGL, Copyright © 2011, ESI source MachineIntégration Classes / Composants Blanche / noire DéveloppeurFonctionnel Produit Boîte noire TesteurSystème Produit / Environnement Boîte noire Testeur simuléAcceptation Produit / Environnement Boîte noire Client réelBeta Produit / Environnement Boîte noire Client réelRé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 ObjectifResponsabilités Acteurs et affectation Décrit qui fait quoi dans les tests. Cours IGL, Copyright © 2011, ESI Assure le suivi et les affectationsTests Portée de tests, plannings, Définit le processus et détaille les durées et priorités actions à entreprendreCommunication 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 testsAnalyse de Éléments critiques à Identification des domaines quirisques tester sont critiques dans le projetTraçage des Documentation des Documenter les défaillances et lesdé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, ESIPriorité Description1 – Fatal Impossible de continuer les tests à cause de la sévérité des défaillances2- Critique Les tests peuvent continuer mais l’application ne peut passer en mode production3- Majeur L’application peut passer en mode production mais des exigences fonctionnelles importantes ne sont pas satisfaites4- 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, ESIPriorité Description5- Mineur L’application peut passer en mode production, la défaillance doit être corrigée mais elle est sans impact sur les exigences métier6- 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 36Cours IGL, Copyright © 2011, ESI
  • 37. COURS IGL Cours N° 8 Section 3 : Tests en boîte Tests noire 37Cours 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 NOIREAnatomie 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 ExempleID Description Préconditions Scénario Résultats Résultats Remarques attendus actuels Cours IGL, Copyright © 2011, ESI1 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 NOIREQu’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 47Cours IGL, Copyright © 2011, ESI
  • 48. COURS IGL Cours N° 8 Tests Section 4 : Tests unitaires 48Cours 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 Exemplepublic 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 classepublic class CalculatorTest{ Cours IGL, Copyright © 2011, ESI// tester l’additionpublic 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) 54Cours 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