Support de Cours Test Logiciel M2 UFR MI
Support de Cours Test Logiciel M2 UFR MI
Support de Cours Test Logiciel M2 UFR MI
DU LO GI CI E L
ASSOHOUN E. Stanislas
- UFR ENVIRONNEMENT (UJLoG)
PLAN
BLANCHE
50% des start-up échouent à cause du trop grand nombre de bugs (mauvaise
campagne de test, maintenance difficile, pas de non régression)
On ne peut pas tester tout le temps ni tous les cas possibles. Cependant
prouver l’absence d’erreurs dans un programme est un problème indécidable.
CHI
GENERALITES SUR TESTS LOGICIELS
vocabulaire et principaux concepts
Introduction
Le test est une activité importante dont le but est d’arriver à un produit
« zéro défaut ». C'est la limite idéaliste vers laquelle on tend pour la
qualité du logiciel.
Un test logiciel désigne une procédure de vérification partielle d'un
système logiciel . Son objectif principal est d'identifier les
comportements problématiques du logiciel afin d'en augmenter la
qualité (si les problèmes identifiés lors des tests sont corrigés) et
d’apporter des informations quant à cette qualité.
I- TERMINOLOGIE (1)
- Des erreurs peuvent être commises lors des différentes
activités réalisées pour obtenir le code exécutable
(spécification, conception, documentation, codage, etc.).
- Du fait de certaines de ces erreurs, le code peut
exécutable peut contenir des fautes.
À l’exécution, certaines de ces fautes peuvent entraîner une
défaillance
du programme.
erreur faute défaillance
I- TERMINOLOGIE (2)
• - SPECIFICATION (ISO 8402): Document qui prescrit les exigences
auxquelles le produit ou le service doit se conformer.
• Dans cette définition, le test n’est pas restreint à une simple vérification de
l’étape de codage :
- participe à l’activité de qualité logicielle
- peut être vu comme un guide pour l’étape de développement
(l’objectif est alors d’écrire du code « qui passe les tests »)
Scénario, jeu de test, oracle
•
VI- NIVEAUX DE TEST : CLASSIFICATION SELON LES
CIBLES(1)
• Les techniques de test sont utilisées à différentes étapes du
développement d’un logiciel et sont donc appliquées à des cibles de
natures différentes. Selon ce critère, on aboutit aux 3 grandes classes
suivantes :
- tests unitaires
- tests d’intégration
- tests systèmes
Tests unitaires : Les tests unitaires visent à vérifier le fonctionnement en
isolation de portions de code testables séparément.
• exemple:
• L’une des difficultés du test réside dans la sélection d’un ensemble fini de
données de test pertinentes . Pour surmonter cette difficulté, des approches
systématiques ont été proposées. Elles sont généralement classées en 2
catégories :
* test en boite noire : sélection des cas de test sans rien connaître
de la façon dont l’entité testée est réalisée.
* test en boîte blanche : sélection des cas de test basée sur la connaissance
de la façon dont l’entité testée est réalisée.
CHII
LES TECHNIQUES DE TESTS DE
BOITE NOIRE ET DE BOITE
BLANCHE
I- TECHNIQUES DE TESTS DE BOITE NOIRE
Le test porte sur le fonctionnement externe du système. La façon dont le système
réalise les traitements n'entre pas dans le champ du test.
– évaluation de l'extérieur (sans regarder le code), uniquement en fonction des
entrées et des sorties
– sur le logiciel ou un de ses composants
• - Limites:
• Permet de limiter le nombre des cas de test à 1 cas par classe d’équivalence
du domaine d’entrée : permet de déterminer si cette classe est correctement
traitée
• Mais : ne permet pas de vérifier si les frontières entre les classes sont
correctement établies; ne tient pas compte des éventuelles différences de
traitement entre les éléments appartement à la même classe (nécessite de
prendre en compte la relation entrées / sorties)
I- TECHNIQUES DE TESTS DE BOITE NOIRE
• Proposez des cas de test qui permettent de réaliser une étude aux limites.
- limite pour le paramètre mois : entre 0 et 1 (limite basse) et entre 12 et 13
(limite haute)
- limite pour le paramètre année : entre 2000 et 2001 (limite basse) et entre
2100 et 2101 (limite haute)
• Mais :
- multiplie les cas de tests : à utiliser uniquement aux endroits utiles (basés sur
l’expérience du développeur / testeur)
- ne tient pas compte des éventuelles différences de traitement entre les
éléments appartement à la même classe nécessite de prendre en compte la
relation entrées / sorties
I- TECHNIQUES DE TESTS DE BOITE NOIRE
• - d’un ensemble de cas de test (à compléter (ou pas) par une étude aux
limites).
I- TECHNIQUES DE TESTS DE BOITE NOIRE
• Avec bissextile =
• {x ∈ [2001, 2100] : (x mod 4=0 Et x mod 100 <>0 ) OU (x mod 400 = 0}
On en déduit par exemple les cas de test suivants :
(mois, anne) ∈ {(−3, 2050), (15, 2050), (3, 1930), (3, 2111), (3, 2010), (4,
2010), (2, 2004), (2, 2005)}
I- TECHNIQUES DE TESTS DE BOITE NOIRE
•
II- TECHNIQUES DE TESTS DE BOITE BLANCHE
• II-2. Mesure de complexité de Mac Cabr (2)
exemple 4 : (2) On en déduit le graphe de flot suivant :