Académique Documents
Professionnel Documents
Culture Documents
Chapitre 3 : Le Test
Responsable du cours :
Dr. Afef Jmal
Sommaire
• Introduction
• Définition du test
• Processus de test simplifié
• Classification des tests
• Difficulté des tests
• Méthodes de tests
▫ Test fonctionnel
▫ Test structurel
78
Introduction
• Validation
▫ a-t-on décrit le « bon » système ?
▫ est-ce que le logiciel fait ce que le client veut ?
80
• Test dynamique
▫ Exécuter le code pour s’assurer d’un fonctionnement
correct
▫ Exécution sur un sous-ensemble fini de données possibles
• Vérification symbolique
▫ Run-time checking
▫ Exécution symbolique
• Vérification formelle
▫ Preuve ou model-checking d’un modèle formel
▫ Raffinement et génération de code
81
Terminologie
• Une faute est la cause adjugée ou supposée d’une erreur
Définitions du test
• Définition de IEEE
« Le test est l’exécution ou l’évaluation d’un système ou d’un composant par des moyens
automatiques ou manuels, pour vérifier qu’il répond à ses spécifications ou identifier les
différences entre les résultats attendus et les résultats obtenus ».
(Standard Glossary of Software Engineering Terminology)
Objectifs du test
• Le test vise à mettre en évidence les erreurs d’un logiciel
Cas de test
Cas de test
Cas de test
Black-box testing
102
Test de performance
107
Test de stress
• Consiste à exciter le système au
delà de ses capacités nominales
Test de sécurité
Application
Remplir ce tableau
Unitaire
Intégration
Fonctionnel
Système
Acceptation
Bêta
Régression
110
Application
Test Portée Catégorie Exécutant
Unitaire Petites portions de code blanche Développeur/
source Machine
Intégration Classe/Composant/ Blanche/noire Développeur
service
Fonctionnel Produit Noire Testeur
Méthodes de tests
• Analyse • Couverture
partitionnelle structurelle
• Test aux limites • Flot de contrôle
• Test combinatoire • Flot de données
• MBT
114
Analyse partitionnelle
• Principe : diviser le domaine des entrées en un nombre
fini de classes tel que le programme réagisse de la même
façon pour toutes les valeurs d’une classe
Analyse partitionnelle
116
Analyse partitionnelle
Procédure :
1.Analyser les exigences pour identifier d’une part les
entrées du programme et leurs domaines, et d’autre
part les fonctionnalités réalisées
Test combinatoire
• Les combinaisons de valeurs de domaines d’entrée donne
lieu à une explosion combinatoire
• Exemple : Options d’une boite de dialogue MS Word
124
XP IP HP35 Word
Test combinatoire
• L’approche Pairwise se décline avec des triplets, des
quadruplets, …. mais le nombre de tests augmente très vite
• Problème du Pairwise:
▫ Le choix de la combinaison de valeurs n’est peut-être pas
celle qui détecte le bug …
▫ Le résultat attendu de chaque test doit être fourni
manuellement
128
Méthodes de tests
• Analyse • Couverture
partitionnelle structurelle
• Test aux limites • Flot de contrôle
• Test combinatoire • Flot de données
• MBT
131
Question :
• Etablir le graphe de flot de contrôle de ce programme
• Fournir l’expression des chemins
138
not
139
Question :
• Etablir le graphe de flot de contrôle de ce programme
• Fournir l’expression des chemins
140
Tous les
Tous les arcs
nœuds
Tous les
chemins
indépendants
145
• Sur le programme P7, l’arc [b-c] est sensibilisé lorsque i > sup à la
fois dans le contexte sum= 0 (la boucle n’est pas activée) et sum ≠0
(la boucle est activée)
151
V(G)
153