55

Click here to load reader

Génie Logiciel : les tests

Embed Size (px)

Citation preview

Page 1: Génie Logiciel : les tests

1

Cours 8 :Tests

COURS IGL

COURS 8TESTS

Mostefai Mohammed Amine – [email protected] Sofiane – [email protected]

Page 2: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

2

Présenter l’activité de testsDonner les différents types de testsIntroduire les tests en boîte noireIntroduire les tests unitaires

O B J EC T I FS D U C O U RSCours 8 – Tests

Objectifs du cours

Page 3: Génie Logiciel : les tests

3

Cours IGL, Copyright © 2011, ESI

Cours 8Tests

INTRODUCTION AU GÉNIE LOGICIELSection 1 :

Introduction

Section 2 : Le Processus de

Tests

Section 3 : Tests en

boîte noire

Section 4 : Tests

unitaires

Page 4: Génie Logiciel : les tests

4

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 1 : Introduction

Page 5: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

5

Les tests sont le procédé de validation et de vérification d’un logiciel

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

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Qualité d’un logci

Page 6: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

6

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Qualité de logiciels

Qualité fonctionnelle

Qualité structurelle

Qualité du logiciel

Page 7: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

7

La qualité fonctionnelle assure que le produit est conforme à ses spécifications fonctionnelle.

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

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Qualité d’un logiciel

Page 8: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

8

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Objectifs des tests

Vérification Validation

Recensement des

défaillances

Page 9: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

9

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 » à « 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.

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Objectifs des tests

Page 10: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

10

Les tests répondent aux questions suivantes :

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Objectifs des tests

Est-ce que ça marche comme

prévu ?

Est-ce que c’est conforme aux

spécifications ?

Est-ce que ça correspond aux

attentes du client ?

Est-ce que le client apprécie ?

Est-ce que c’est compatible avec

les autres systèmes ?

Est-ce que ça s’adapte à un

nombre important d’utilisateurs ?

Quels sont les points à

améliorer ?

Est-ce que c’est prêt pour le

déploiement ?

Page 11: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

11

Les réponses à ces questions vont servir à :

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Objectifs des tests

Economiser le temps et l’argent en

identifiant rapidement les

défaillances

Rendre le développement plus

efficace

Augmenter la satisfaction du client

Correspondre le résultats aux attentes

Identifier les modifications à inclure dans les

prochaines versions

Identifier les composants et les

modules réutilisables

Identifier les lacunes des développeurs

Page 12: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

12

Commencer par les cas généraux avant les cas particuliers

Commencer par les cas prioritairesQuand une fonction est signalée défaillante, la cause n’est

pas forcément le code

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Principes de tests

Page 13: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

13

Les tests doivent concerner les éléments suivants :

S EC T I O N 1 - I N T RO D U C T I O NCours 8 – Tests

Portée des tests

Conformité aux spécifications fonctionnelles

Conformité aux spécifications

techniques

Exigences juridiques

Le code source

Les restriction et recommandations

des administrateurs du système

Culture et standards de l’entreprise

La configuration matérielle

Propriétés culturelles et linguistiques

Page 14: Génie Logiciel : les tests

14

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 1 : Introduction, débat 05 mns

Page 15: Génie Logiciel : les tests

15

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 2 : Le processus de tests

Page 16: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

16

Les tests ne sont pas le travail d’un seul homme mais celui d’une équipe

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

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

L’équipe de testeurs

Page 17: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

17

Les testeurs doivent poser des questions que les développeurs peuvent trouver embarrassantes

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

L’équipe de testeurs

Comment pouvez-vous dire que ça marche ?

Que veut dire pour vous « ça

marche » ?

Pourquoi ça marchait et que

ça ne marche plus ?

Qu’est-ce qui a causé le mauvais fonctionnement ?

Page 18: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

18

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

Les testeurs exécutent les tests et documentent les résultats

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

L’équipe de testeurs

Page 19: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

19

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Catégories de tests

Tests en boîte noire

Tests en boîte blanche

Page 20: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

20

Les test en boîte noire s’exécutent en ignorant les mécanismes internes du produit

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

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Catégories de tests

Page 21: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

21

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Types de tests

Tests unitaires Tests d’intégration

Tests du système et de

fonctionnement

Tests d’acceptation

Tests de régression Béta-Tests

Page 22: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

22

Les tests unitaires sont les tests de blocs individuels (par exemple des blocs de code)

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

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Tests unitaires

Page 23: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

23

Exécuté en boîte noire ou boîte blancheLes tests d’intégration vérifient que les composants

s’intègrent bien avec d’autres composants ou systèmesLes tests d’intégration vérifient aussi que le produit est

compatible avec l’environnement logiciel et matériel du client

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Tests d’intégration

Page 24: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

24

S’exécute en boîte noireVérifie que le produit assure les fonctionnalités

spécifiées dans les spécifications fonctionnelles

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Tests fonctionnels

Page 25: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

25

S’exécute en boîte noireS’oriente vers les spécifications non fonctionnellesComposé 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.

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Tests système

Page 26: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

26

Tests de chargement : vérifie que l’application fonctionne dans des conditions normales (contraire aux tests de stress)

Tests d’utilisabilité : vérifier les exigences d’apprentissage demandées à un utilisateur normal pour pouvoir utiliser le produit

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Tests système

Page 27: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

27

S’exécute en boîte noireLes tests d’acceptation sont des tests formalisés par le

client qui sont exigés par le client pour qu’il accepte le produit

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Tests d’acceptation

Page 28: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

28

Les tests de régression sont un sous-ensemble des tests originaux

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

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Tests de régression

Page 29: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

29

Quand un produit est quasiment terminé , il est distribué gratuitement à certains de ses utilisateurs

Ces utilisateurs sont appelés testeurs bétaCes utilisateurs vont utiliser le produit et reporter tout

éventuel disfonctionnement de celui-ci

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Béta-Tests

Page 30: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

30

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Comparaison entre les tests

Test Portée Catégorie Exécutant

Unitaires Petites portions du code source

Boîte blanche DéveloppeurMachine

Intégration Classes / Composants Blanche / noire Développeur

Fonctionnel Produit Boîte noire Testeur

Système Produit / Environnement simulé

Boîte noire Testeur

Acceptation Produit / Environnement réel

Boîte noire Client

Beta Produit / Environnement réel

Boîte noire Client

Régression N’importe lequel Blanche / noire N’importe

Page 31: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

31

La planification des tests doit se faire dans les premières phases du projet

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”

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Le plan de tests

Page 32: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

32

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Le plan de tests

Élément Description Objectif

Responsabilités Acteurs et affectation Décrit qui fait quoi dans les tests. Assure le suivi et les affectations

Tests Portée de tests, plannings, durées et priorités

Définit le processus et détaille les 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 risques

Éléments critiques à tester

Identification des domaines qui sont critiques dans le projet

Traçage des défaillance

Documentation des défaillances

Documenter les défaillances et les détails les concernant

Page 33: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

33

Le plan de tests détermine la priorisation des défaillances

La priorisation facilite la communication entre développeurs et testeurs ainsi que l’affectation et la planification des tâches

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Priorisation des défaillances

Page 34: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

34

Par exemple, une priorisation de 1 à 6 est souvent adoptée

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Priorisation des défaillances

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

Page 35: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

35

Par exemple, une priorisation de 1 à 6 est souvent adoptée

S EC T I O N 2 – L E P RO C E S S U S D E T E S TSCours 8 – Tests

Priorisation des défaillances

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

Page 36: Génie Logiciel : les tests

36

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 2 : Le processus de tests, débat 10 mns

Page 37: Génie Logiciel : les tests

37

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 3 : Tests en boîte noire

Page 38: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

38

Les tests en boîte noire détermine si un produit fait ce qu’on attend de lui indépendamment de sa structure interne

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

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

Introduction

Page 39: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

39

Il vaut mieux que les testeurs soient des personnes différentes des programmeurs

Les testeurs s’intéressent à une fonction en terme d’entrée et de sorties

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

Introduction

Entrée Test Sortie

Page 40: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

40

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 avec une spécification données

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

Cas de test (Test Case)

Page 41: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

41

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

Anatomie d’un cas de test

ID

Description

Priorité

Préconditions

Scénario

Résultats attendus

Résultats actuels

Remarques

Page 42: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

42

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

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 à 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 attentesLe scénario détermine les étapes détaillées à suivre par le

testeurLes résultats attendus sont attendus de l’exécution du scénarioLes résultats actuels sont les vrais résultats obtenus, s’ils sont

différents des résultats attendus, une défaillance est signaléeLes remarques sont signalées par le testeur pour ajouter des

information concernant une exécution donnée

Page 43: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

43

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

Anatomie d’un cas de test

Le scénario est composé de plusieurs actions numérotées

Chaque action peut avoir un résultat attenduL’exécution de test affecte un résultat actuel à chaque

étape attendant un résultatSi chaque résultat actuel est conforme au résultat

attendu alors le test réussit sinon le test échoue

Page 44: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

44

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

Exemple

ID Description Préconditions Scénario Résultats attendus

Résultats actuels

Remarques

1 Ouverture d’un document

Existence d’un document

1- Cliquez sur le bouton « Ouvrir »2- Sélectionnez le fichier désiré3- Appuyez sur OK

2- Une boîte d’ouverture de fichiers s’affiche3- Le Document est ouvert et prêt à être manipulé

2 Impression d’un document

TC 1 1- Cliquez sur le bouton imprimer2- Sélection la config puis cliquer sur « Imprimer »

1- La boîte de configuration d’imprimante s’affiche2- Le document sort sous format papier

Page 45: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

45

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

Campagne de tests

Une campagne de tests sélectionne un certain nombre de cas de tests sémantiquement relatifs et les exécute

Chaque campagne de tests a un objectif tracé : validation du produit, performance, … etc.

Page 46: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

46

S EC T I O N 3 – T E S T S E N B O Î T E N O I R ECours 8 – Tests

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

Page 47: Génie Logiciel : les tests

47

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 3 : Tests en boîte noire, débat 10 mns

Page 48: Génie Logiciel : les tests

48

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 4 : Tests unitaires

Page 49: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

49

SEC T I ON 4 – TESTS UNI TA I RESCours 8 – Tests

Introduction

Les tests unitaires sont des tests en boîte blancheLes tests unitaires sont composé d’un ensemble de

classes appelées «  classes de test  »Ces classes valident que des portions de code répondent à

un certain besoinLes 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

Page 50: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

50

SEC T I ON 4 – TESTS UNI TA I RESCours 8 – Tests

Objectifs

Les tests unitaires ont deux objectifs : «  couverture de code  » et « couverture de données  »

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)

Page 51: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

51

SEC T I ON 4 – TESTS UNI TA I RESCours 8 – Tests

Caractéristiques

Les tests unitaires doivent être conforme à l’acronyme FIRST:

FAST : un test unitaire doit s’exécuter rapidementINDEPENDANT : chaque test doit être indépendant des

autresREPEATABLE : chaque test peut être répété autant de fois

que vouluSELF-VALIDATING : Un test se valide lui-même par un

succès ou par un échecTIMELY: On écrit les tests quand on en a besoin

Page 52: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

52

SEC T I ON 4 – TESTS UNI TA I RESCours 8 – Tests

Exemple

public class Calculator{public int add(int x, int y){return x + y;}

public int multi(int x, int y){return x*y;}}

Page 53: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

53

SEC T I ON 4 – TESTS UNI TA I RESCours 8 – Tests

Exemple

// tester la classepublic c lass CalculatorTest{// tester l ’addit ionpublic int addTest(){// valeurs en entréeint a = 15;int b = 18;Calculator calc = new Calculator() ;int c = calc .Add(a ,b) ;// résultat attendu et résultat actuelassertEquals(33, c) ;}

}

Page 54: Génie Logiciel : les tests

54

Cours IGL, Copyright © 2011, ESI

Cours N° 8Tests

COURS IGL

Section 4 : Tests unitaires, débat (05 mns)

Page 55: Génie Logiciel : les tests

Cours IGL, Copyright ©

2011, ESI

55

Software Development and Professional Practice, John Dooley, APress, 2010

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

B I B L I O G R A P H I ECours 6 – Introduction aux architectures de logiciels

Bibliographie