More Related Content
Similar to Génie Logiciel : les tests (20)
More from Mohammed Amine Mostefai (20)
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